Professional Documents
Culture Documents
Python
ლე ქ ცია 7 : ს ტრ იქ ო ნ ები დ ა მ ას თ ან ს ამ უ შაო ფ უ ნ ქციები, ს ტრ იქო ნის
ფ ო რ მ ატირ ება, ს ტრ იქ ონში ძ ე ბნ ის დ ა ჩ ან აცვლე ბის ფ უ ნ ქციები
ლიკა სვანაძე
lika.s v anadze@bt u.edu.ge
სტრიქონი (string)
• სტრიქონი არის სიმბოლოების მიმდევრობა,
რომელიც ჩაწერილი
უნდა იყოს ერთმაგ ან ორმაგ ბრჭყალებში.
H e l l o ინდექსი
[0] [1] [2] [3] [4]
შედეგი:
print(text[0]) #პირველი სიმბოლო
H
print(text[4]) #ბოლო სიმბოლო
o
print(text[-‐1]) #ბოლო სიმბოლო
o
15.11.19 lika.svanadze@btu.edu.ge 2
სტრიქონის ნაწილი (string slice)
• სტრიქონის ნებისმიერ ნაწილს (სეგმენტს) უწოდებენ slice-‐ს. მისზე წვდომა ხდება
ანალოგიურად როგორც სტრიქონის სიმბოლოებზე შემდეგნაირად:
15.11.19 lika.svanadze@btu.edu.ge 3
სტრიქონის სიგრძე - len()
• len()
არის ჩაშენებული ფუნქცია, რომელიც ითვლის სტრიქონში
სიმბოლოების რაოდენობას:
15.11.19 lika.svanadze@btu.edu.ge 4
ოპერაციები სტრიქონებზე (1)
• შესაძლებელია სტრიქონების შეერთება +
ოპერატორით
(გაითვალისწინეთ რომ ჩასვათ ცარიელი სივრცე - space,
წინააღმდეგ
შემთხვევაში გადააბამს ერთმანეთს ადგილის გამოტოვების გარეშე):
15.11.19 lika.svanadze@btu.edu.ge 5
ოპერაციები სტრიქონებზე (2)
• სტრიქონებთან ასევე შესაძლებელია * (გამრავლების) ოპერაციის
გამოყენება შემდეგნაირად:
15.11.19 lika.svanadze@btu.edu.ge 6
შედარების ოპერაციები სტრიქონებზე (1)
სტრიქონების შედარება:
• შედარების ოპერაციები გამოიყენება მაშინ, როდესაც გვინდა ორი
სტრიქონის ერთმანეთთან შედარება.
15.11.19 lika.svanadze@btu.edu.ge 7
შედარების ოპერაციები სტრიქონებზე (2)
სტრიქონების შედარება:
• შედარების ოპერაციების (>,
<) გამოყენების დროს, ხდება
სტრიქონების შედარება ალფაბეტის სიმბოლოების მიხედვით.
გაითვალისწინეთ, ალფაბეტის მიხედვით, ‘a’-‐სიმბოლო რადგან
მოთავსებულია ’b’
სიმბოლოს წინ, გამოდის რომ ’a’<‘b’,
’b’<‘c’,
ა.შ.
word1="Apple"
word2="Banana"
if word1>word2:
print(word2, "is first alphabetically")
else: შედეგი:
print(word1, "is first alphabetically") Apple is first alphabetically
15.11.19 lika.svanadze@btu.edu.ge 8
ერთმაგი და ორმაგი ბრჭყალები
• ზოგჯერ საჭირო ხდება სტრიქონის შიგნით ბრჭყალების გამოყენა.
მაგალითად, ცვლადს გვინდა მივანიჭოთ ტექსტი: He’s
a
person.
ამ
შემთხვევაში ერთმაგი ბრჭყალების გამოყენება პრობლემას შექმნის.
და უმჯობესია გამოვიყენოთ ორმაგი ბრჭყალები.
15.11.19 lika.svanadze@btu.edu.ge 9
Backslash
“\”
სინტაქსი აღწერა
\' ერთმაგი ბრჭყალი
\" ორმაგი ბრჭყალი
\\ დახრილი ხაზი (backslash)
\t Tab
\n ახალი ხაზი
მაგალითი
შედეგი:
text="one\ttwo\nthree\tfour"
print(text) one two
three four
15.11.19 lika.svanadze@btu.edu.ge 10
while() ოპერატორი სტრიქონებთან
• სტრიქონთან მუშაობისას ხშირად საჭიროა მისი წაკითხვა თითოეული
სიმბოლოს საშუალებით (პირველიდან ბოლო სომბოლომდე). ასეთ
დროს უმჯობესია გამოვიყენოთ ციკლი ოპერატორიები (while
ან for):
შედეგი:
text = 'Hello World!'
index=0
H
while index<len(text):
e
letter=text[index]
l
print(letter)
l
index += 1
o
W
o
r
l
d
!
15.11.19 lika.svanadze@btu.edu.ge 11
in
ოპერატორი
• in
არის ლოგიკური ტიპის ოპერატორი, რომელშიც მონაწილეობს
ორი სტრიქონი.
ის აბრუნებს მნიშვნელობა True-‐ს თუ პირველი
სტრიქონი გვხვდება მეორე სტრიქონში, წინააღმდეგ შემთხვევაში,
აბრუნებს მნიშვნელობას False
15.11.19 lika.svanadze@btu.edu.ge 12
for ოპერატორი სტრიქონებთან
• for
ციკლი გაირბენს სტრიქონს საწყისი სიმბოლოდან
ბოლო სიმბოლომდე
• თავდაპირველად letter
ცვლადს ენიჭება სტრიქონის
პირველი სიმბოლო შედეგი:
• ციკლის ყოველ ბიჯზე letter
ცვლადში ინახება სტრიქონის
შემდგომი სიმბოლო H
e
• ციკლი გრძელდება მანამ, სანამ ყველა სიმბოლოს l
წაკითხვა არ მოხდება l
o
text = 'Hello World!' W
for letter in text: o
print(letter) r
l
d
!
15.11.19 lika.svanadze@btu.edu.ge 13
Strings
are
immutable!
• სტრიქონის სიმბოლოების შეცვლა არ არის შესაძლებელი იმავე
ცვლადის გამოყენებით.
15.11.19 lika.svanadze@btu.edu.ge 14
ფუნქციები (მეთოდები) სტრიქონებზე (2)
text = 'hello world!'
str = "*****this is string example....*****"
print(dir(text))
დასახელება აღწერა გამოყენება
capitalize() სტრიქონის პირველი სიმბოლოს დიდ რეგისტრში text.capitalize()
გადაყვანა
upper() სტრიქონის ყველა სიმბოლოს დიდ რეგისტრში text.upper()
გადაყვანა
lower() სტრიქონის ყველა სიმბოლოს პატარა რეგისტრში text.lower()
გადაყვანა
find(substring, [ind]) სტრიქონში სიმბოლოს ან ქვესტრიქონის მოძებნა. text.find('o')
აბრუნებს ინდექსის ნომერს.
თუ მითითებულია მეორე text.find('o', 5)
არგუმენტი, მაშინ ძებნას ახორციელებს [ind] პოზიციიდან.
15.11.19 lika.svanadze@btu.edu.ge 15
ფუნქციები (მეთოდები) სტრიქონებზე (2)
15.11.19 lika.svanadze@btu.edu.ge 16
format() ფუნქცია
✲ format() ფუნქცია წარმოადგენს სტრიქონებთან სამუშაო ფუნქციას. მისი მეშვეობით
შესაძლებელია სტრიქონში სხვადასხვა კომპონენტების ჩასმა და შედეგედ მიიღება
დაფორმატებული სტრიქონი. format() ფუნქციის სინტაქსია:
str.format(.....)
მაგალითი
შედეგი:
name = "Adam"
val = 2.35
Hello Adam, your balance is 2.35
print("Hello {}, your balance is {}".format(name, val))
სტრიქონი ფორმატირება
15.11.19 lika.svanadze@btu.edu.ge 17
სავარჯიშოები:
1. რა განსხვავებაა შემდეგ სტიროქონებს შორის: 'n'
და '\n’
2. შეამოწმეთ კონსოლში შემდეგი გამოსახულებები:
a. ’Computer’
+’Science’
b. ’Darwin\’s’
c. ’H20’
*
3
d. ’C02’
*
0
3. დაწერეთ პროგრამა რომლის მეშვებით შეიტანთ ნებისმიერ სტრიქონს (input ბრძანების
გამოყენებით). დაბეჭდეთ შეყვანილი სტრიოქნის სიგრძე (სიმბოლოების რაოდენობა).
4. შეიყვანეთ ნებისმიერი ორი სტრიქონი. ახალ ცვლადში მოახდინეთ მათი შეერთება და
დაბეჭდეთ შედეგი.
5. შეიყვანეთ სტრიქონი. გადაიყვანეთ სტრიქონის ყველა სიმბოლო მაღალ რეგისტრში და
დაბეჭდეთ შედეგი.
6. შეიყვანეთ სტრიქონი. დაითვალეთ რამდენჯერ შეგხვდათ სიმბოლო “a”
დაბეჭდეთ
შედეგი.
7. შეიყვანეთ სამი სტრიქონი რომელიც წარმოადგენს სხვადასხვა ხილის დასახელებას
(მაგ. Banana,
Watermelon,
Apple). დაბეჭდეთ ისინი ალფაბეტის ზრდადობის მიხედვით
(თავდაპირველად წაიკითხეთ სლაიდი “შედარების ოპერაციები სტრიქონებზე”).
8. text
ცვლადს მიანიჭეთ სტრიქონი “სწავლის ძირი მწარე არის, კენწეროში
გატკბილდების”.
სტრიქონიდან წაიკითხეთ პირველი 20 სიმბოლო და დაბეჭდეთ
შედეგი. დაითვალეთ რამდენჯერ არის ნახსენები სიმბოლო ‘ს’.
15.11.19 lika.svanadze@btu.edu.ge 18
სავარჯიშოები:
9. text
ცვლადს მიანიჭეთ სტრიქონი “Hello,
this
is
example
of
string.
Please,
write
this
text
and
do
some
exercises.”.
თუ სტრიქონში გვხვდება ტექსტი “is“,
შეცვლეთ ის “were”-ით და დაბეჭდეთ შედეგი.
10. text
ცვლადს მიანიჭეთ სტრიქონი “Hello,
this
is
example
of
string.
Please,
write
this
text
and
do
some
exercises.”.
დაითვალეთ სტრიქონში სიტყვების რაოდენობა. გამოიყენეთ count
ფუნქცია.
11. text
ცვლადს მიანიჭეთ შემდეგი ტექსტი: “Have
a
nice
day”.
დაბეჭდეთ ტექსტის თითოეული სიმბოლო
ეკრანზე უკუ მიმართულებით ცალ-ცალკე ხაზზე (ანუ პირველად დაბეჭდავ ბოლო სიმბოლოს,
შემდეგ ბოლოს წინა სიმბოლოს, და ა.შ). გამოიყენეთ while
ციკლის ოპერატორი.
12. დაითვალეთ რამდენი ციფრისგან შედგება რიცხვი 237645. გამოიყენეთ len ფუნქცია. გამოიყენეთ
სტრიქონთან სამუშაო ფუნქციები.
13. დაითვალეთ რამდენი ციფრისგან შედგება 2132 (გაითვალისწინეთ წინა მაგალითი).
14. ტექსტურ ცვლადში ჩაწერეთ თქვენი ემაილი. სტრიქონის ფუნქციების გამოყენებით, იპოვეთ რომელ
პოზიციაზეა განთავსებული სიმბოლო @. დაბეჭდეთ შედეგი.
15. დაწერეთ პროგრამა, სადაც user
შეიყვანს თავის სახელს და გვარს და პროგრამა დაუბეჭდავს
შესაბამის იმეილის დასახელებას: მაგ: adam.giorgadze@btu.edu.ge
16. დაწერეთ პროგრამა, სადაც user
შეიყვანს (input ბრძანებით) სასურველ პაროლს (ტექსტურ
მონაცემს). დაადგინეთ შესაძლებელია თუ არა იგი ვარგისი იყოს პაროლად. დაბეჭდეთ შესაბამისი
პასუხი. გაითვალისწინეთ, პაროლი ვარგისია, თუ იგი შედგება მინიმუმ 8 სიმბოლოსგან,
აუცილებლად უნდა მონაწილეობდეს როგორც დიდი ლათინური სიმბოლო, ასევე პატარა
ლათინური სიმბოლო და ციფრი.
15.11.19 lika.svanadze@btu.edu.ge 19