Professional Documents
Culture Documents
4-ციკლის ოპერატორები
4-ციკლის ოპერატორები
Python
ლექცია 4: ციკლის ოპერატორები
ლიკა სვანაძე
lika.svanadze@btu.edu.ge
while ციკლის ოპერატორი
while ციკლის(იტერაციის) ოპერატორის მეშვეობით შესაძლებელია
ოპერაციების (ბრძანებების) განმეორებით შესრულება. while ციკლის
ოპერაციები სრულდება მანამ, სანამ ციკლის პირობა ჭეშმარიტია.
while-ის სტრუქტურა
while პირობა:
ოპერაცია 1
ოპერაცია 2
.......
23.10.2020 lika.svanadze@btu.edu.ge 2
while ციკლის ოპერატორი
მაგალითი: 1-დან 10-მდე რიცხვების დაბეჭდვა
შედეგი n+=1
print(n)
1
2
3
4
შენიშვნა: გაითვალისწინეთ, while ციკლის
5
პარამეტრის ცვლილება უნდა მოხდეს
6
ციკლის ტანში. წინააღმდეგ შემთხვევაში,
7
ციკლის პირობა ყოველთვის ჭეშმარიტი
8
(True) იქნება და არასდროს არ დასრულდება
9
ციკლის ტანის ოპერაციების შესრულება, რაც
10
გამოიწვევს while-ის ჩაციკვლას.
23.10.2020 lika.svanadze@btu.edu.ge 3
23.10.2020 lika.svanadze@btu.edu.ge 4
range() ფუნქცია
range() ფუნქცია აბრუნებს მთელი რიცხვების მიმდევრობას. ფუნქციაში
შესაძლებელია 3 პარამეტრის მითითება: start, stop და step. ფუნქციაში
შესაძლებელია მითითებული იყოს მხოლოდ ერთი, ორი ან სამივე პარამეტრი.
სინტაქსი
❖ სამი პარამეტრით: range(x, y, z)- წარმოადგენს დიაპაზონს x-დან y-1-ის ჩათვლით ბიჯით
z.
23.10.2020 lika.svanadze@btu.edu.ge 5
for .. in ციკლის ოპერატორი
შედეგი შედეგი
1 1
2 3
3 5
4 7
5 9
6
7
8
9
10
23.10.2020 lika.svanadze@btu.edu.ge 6
break ოპერატორი
break ოპერატორი გამოიყენება ციკლის შიგნით, როდესაც საჭიროა
მისი შეწყვეტა, მიუხედავად იმისა, რომ ციკლის პირობა ჭეშმარიტია:
მაგალითი შედეგი
n=0 1
while n<=10: 2
n += 1 3
print(n)
if n == 3: break
23.10.2020 lika.svanadze@btu.edu.ge 7
continue ოპერატორი
continue ოპერატორი გამოიყენება ციკლის შიგნით. continue
ოპერატორის შემდეგ დაწერილი ციკლის ოპერაციები (ბრძანებები) არ
შესრულდება და ციკლის შესრულება გადადის შემდეგ იტერაციაზე
(ბიჯზე).
მაგალითი შედეგი
1
n=0 2
while n<=10: 3
n += 1 4
6
if n == 5: continue 7
print(n) 8
9
10
23.10.2020 lika.svanadze@btu.edu.ge 8
print() ფუნქცია
❖ print() ფუნქცია წარმოადგენს ბეჭდვის ოპერაციას, რომელიც ბეჭდავს
ფრჩხილებში მითითებულ ინფორმაციას ახალ ხაზზე:
მაგალითი შედეგი
a=5 5
print(a)
Hello World!
print('Hello World!')
მაგალითი შედეგი
23.10.2020 lika.svanadze@btu.edu.ge 9
print() ფუნქცია
❖ print() ფუნქციაში შესაძლებელია რამდენიმე ცვლადის (მონაცემის)
მითითება, რომლის დაბეჭდვაც მოხდება ერთ ხაზზე დაბეჭდვა.
თითოეული მათგანი print ფუნქციაში უნდა იყოს მძიმით გამოყოფილი.
შედეგად, თითოეული მონაცემი გამოყოფილი იქნება space-ით (სივრცით).
ასევე შესაძლებელია sep ატრიბუტის გამოყენება, რომელშიც მიეთითება
სიმბოლო(ები), რითაც მოხდება მონაცემების ერთმანეთისგან გამოყოფა:
მაგალითი
შედეგი
name = 'Alice'
a=5 Hi Alice . I have 5 donuts
print('Hi', name, '. I have', a, 'donuts')
print("Hello", name, "Ann", "James", sep="! ") Hello! Alice! Ann! James
23.10.2020 lika.svanadze@btu.edu.ge 10
print() ფუნქცია - ფორმატირებული ბეჭდვა
❖ ფორმატირებული ბეჭდვა:
მაგალითი შედეგი
a=5.3
print('%d' %a) 5
print('%4d' %a) 5
print('%f' %a) 5.300000
print('%.2f' %a) 5.30
• %d - მთელი რიცხვის ფორმატი; %5d - 5 ერთეულის (space) გამოყოფა (შევსება იწყება მარცხნიდან)
• %s - სტრიქონის (string) ტიპის ფორმატი
• %f - ათწილადი რიცხვის ფორმატი, %.3f - წერტილის შემდეგ რიცხვი მიუთითებს 3 ციფრის
გამოტანას ათწილად ნაწილში
მაგალითი შედეგი
name = 'Alice'
a=5 Hi Alice, I have 5 donuts
print("Hi %s, I have %d donuts" %(name, a))
23.10.2020 lika.svanadze@btu.edu.ge 11
სავარჯიშოები - მარტივი
1. დაბეჭდეთ 5-ის ჯერადი რიცხვები 20-დან 125-ის ჩათვლით.
3. დაბეჭდეთ 1500-დან 2100-ის ჩათვლით რიცხვები, რომლებიც არიან 7-ის და 5-ის ჯერადი ერთდროულად.
4. დაითვალეთ 1500-დან 2100-ის ჩათვლით რიცხვების ჯამი რომლებიც არიან 7-ის და 5-ის ჯერადი
ერთდროულად. დაბეჭდეთ მიღებული შედეგი.
5. დაითვალეთ 1500-დან 2100-ის ჩათვლით რიცხვების ჯამი რომლებიც არიან 7-ის და 5-ის ჯერადი
ერთდროულად. როგორც კი რიცხვების ჯამი გადააჭარბებს 20 000-ს, შეწყვიტეთ ციკლი. დაბეჭდეთ
მიღებული ჯამი ეკრანზე.
6. დაითვალეთ 1500-დან 2100-ის ჩათვლით 5-ის ჯერადი რიცხვების რაოდენობა. დაბეჭდეთ შედეგი.
9. დაბეჭდეთ ეკრანზე 15-დან 150-მდე 5-ის ჯერადი რიცხვები გარდა 50-ის, 75, 80-ისა. გამოიყენეთ continue
ოპერატორი.
10. შეიყვანეთ რიცხვი. დაითვალეთ ამ რიცხვის ფაქტორიალი და დაბეჭდეთ. მაგ. 5-ის ფაქტორიალი იგივია
რაც 1 ∗ 2 ∗ 3 ∗ 4 ∗ 5
23.10.2020 lika.svanadze@btu.edu.ge 12
სავარჯიშოები - საშუალო სირთულის
11. შეიყვანეთ რიცხვი კლავიატურიდან. პროგრამამ უნდა დაბეჭდოს შეყვანილი რიცხვის ყველა გამყოფი. (მაგ. 18-ის
გამოყოფებია: 1, 2, 3, 6, 9, 18)
12. შეიყვანეთ ნებისმიერი 2 რიცხვი. ციკლის გამოყენებით დაბეჭდეთ შეყვანილი რიცხვების საერთო გამყოფები. მაგ. 15-ის და
18-ის საერთო გამყოფებია: 1, 3
13. შეიყვანეთ 2 დადებითი მთელი რიცხვი. იპოვეთ ამ ორი რიცხვის უდიდესი საერთო გამყოფი.
14. შეიყვანეთ 2 დადებითი მთელი რიცხვი. იპოვეთ ამ ორი რიცხვის უმცირესი საერთო ჯერადი.
15. შეიყვანეთ 10 რიცხვი ციკლის გამოყენებით. იპოვეთ რიცხვებს შორის უდიდესი კენტი რიცხვი და დაბეჭდეთ. თუ კენტი
რიცხვი არ შეგხვდათ, გამოიტანეთ შესაბამისი შეტყობინება.
16. შეიტანეთ რიცხვი. დაადგინეთ შეტანილი რიცხვი არის თუ არა მარტივი რიცხვი და გამოიტანეთ შესაბამისი შეტყობინება
(გაითვლისწინეთ: მარტივია რიცხვი, რომელსაც აქვს მხოლოდ ორი გამყოფი: ერთი და თავისი თავი).
18. დაბეჭდეთ 0-დან 100-მდე არსებული ფიბონაჩის რიცხვები (ფიბონაჩის რიცხვებია 1, 1, 2, 3, 5, 8, 13, ...).
19. შეიყვანეთ ნებისმიერი რიცხვი. იპოვეთ ამ რიცხვის ციფრთა რაოდენობა და დაბეჭდეთ. (len ფუნქციის გარეშე)
22. შეიყვანეთ ნებისმიერი რიცხვი. დაბეჭდეთ შეტანილი რიცხვი შებრუნებული სახით. (მითითება: მაგ. თუ შეიტანთ 1254-ს,
დაბეჭდოს 4521). შენიშვნა: არ გააკეთოთ სტრიქონის ტიპის მონაცემისთვის.
23.10.2020 lika.svanadze@btu.edu.ge 13
სავარჯიშოები - რთული**
23. შეიყვანეთ ნებისმიერი რიცხვი. დაადგინეთ არის თუ არა შეტანილი რიცხვი პალინდრომი.
(მითითება: პალინდრომია რიცხვი, რომელიც მარჯვნიდან და მარცხნიდან ერთნაირად იკითხება).
მაგ. 12521 არის პალინდრომი
25. შეიყვანეთ ორი რიცხვი. დაბეჭდეთ ამ ორ რიცხვს შორის არსებული ყველა „სარკისებური მარტივი“
რიცხვები (Mirror Prime Numbers). რიცხვი „სარკისებურად მარტივია“ თუ იგი არის მარტივი და მისი
შებრუნებული მნიშვნელობაც მარტივია.
23.10.2020 lika.svanadze@btu.edu.ge 14