6.10 სტრინგის გარჩევა
ხშირად გვინდა რომ სტრინგში ვიპოვნოთ ქვე-სტრინგი. თუ გვექნება ასეთი ფორმის უამრავი ხაზი:
From stephen.marquard@ uct.ac.za Sat Jan 5 09:14:16 2008
და თითო ხაზიდან სტრინგის მხოლოდ მეორე ნაწილი (მაგ: uct.ac.za გვჭირდება, ასეთი ხაზის მიღება
შეგვიძლია find მეთოდით და სტრინგის დაჭრით.
პირველად სტრინგში ვპოულობთ ეთ(@)
ნიშანის პოზიციას და შემდეგ ვჭრით
სტრინგს და გამოგვაქვს სტრინგის ის ნაწილი რომელიც გვინდა:
>>> data = 'From stephen.marquard@uct.ac.za Sat Jan 5
09:14:16 2008'
>>> atpos = data.find('@')
>>> print atpos
21
>>> sppos = data.find(' ',atpos)
>>> print sppos
31
>>> host = data[atpos+1:sppos]
>>> print host
uct.ac.za
>>>
გამოვიყენეთ find მეთოდი,
რომელიც საშუალებას გვაძლევს მივუთითოთ ის პოზიცია, საიდანაც find - მა უნდა მოძებნოს. როცა დავჭერით, გამოვაცალკევეთ სიმბოლოები ეთ ნიშანიდან ზემოთ; ჰარის გარეშე.
find მეთოდის დოკუმენტაცია შეგიძლია აქ ნახო docs.python.org/library/string.html
6.11
Format operator
ფორმატ ოპერატორი % სტრინგის
შედგენის საშუალებას გვაძლევს, სტრინგის
ნაწილების შეცვლა ცვლადებში შენახული მონაცემებით. როცა საქმე მიდგება მთელ რიცხვებზე
% არის მოდულის ოპერატორი, მაგრამ როცა პირველი ოპერანდი
სტრინგია, % არის ფორმატ ოპერატორი.
პირველი ოპერანდი არის ფორმატ სტრინგი, რომელიც შეიცავს 1 ან მეტ თანმიმდევრობას
(sequences) რომ მიუთითოს როგორ დაფორმატირდეს მეორე ოპერანდი.
შედეგი სტრინგია.
მაგალითად, ფორმატი '%d' ნიშნავს, რომ მეორე ოპერანდი უნდა დაფორმატირდეს როგორც მთელი რიცხვი
(d იშიფრება როგორც "ათობითი"
"decimal"):
>>> camels = 42
>>> '%d' % camels
'42'
შედეგია სტრინგი '42', რომელიც არაა მთელი რიცხვი 42.
ფორმატ სტრინგი შეიძლება გამოჩნდეს
ყველგან სტრინგში, ასე რომ შეგიძლია ჩასვა ყველგან წინადადებაში:
>>> camels = 42
>>> 'I have spotted %d camels.' % camels
'I have spotted 42 camels.'
სტრინგში ორზე მეტი ფორმატი თუ არის, მეორე არგუმენტი უნდა იყოს tuple. ყოველი ფორმატი შესაფერისია tuple - ის ელემენტთან რიგის მიხედვით.
შემდეგ მაგალითში ვიყენებთ '%d' მთელ რიცხვად გადასაფორმატებლად, '%g' - ს წილადად გადასაფორმატებლად (არ მკითხო რატო) და
'%s' სტრინგად გადასაფორმატებლად:
>>> 'In %d years I have spotted %g %s.' % (3, 0.1, 'camels')
'In 3 years I have spotted 0.1 camels.'
tuple - ში ელემენტების
რაოდენობა უნდა დაემთხვეს სტრინგში ფორმატების რაოდენობას. ასევე ელემენტის ტიპები
უნდა დაემთხვეს ფორმატებს:
>>> '%d %d %d' % (1, 2)
TypeError: not enough arguments for format string
>>> '%d' % 'dollars'
TypeError: illegal argument type for built-in operation
პირველ მაგალითში
არაა საკმარისი ელემენტები; მეორეში - ელემენტების არასწორი ტიპია.
ფორმატ ოპერატორი მაგარია, მაგრამ მისი გამოყენება ცოტა რთულია. ამის შესახებ
მეტის წაკითხვა შეგიძლია ამ მისამართზე: docs.python.org/lib/typesseq-strings.html
No comments:
Post a Comment