You are on page 1of 13

პროგრამირების საწყისები

Python
ლ ე ქ ც ი ა 4 : ც ი კ ლ ის ო პ ე რ ატო რე ბი

ლიკა სვანაძე
lika.s v anadze@bt u.edu.ge
while  ციკლის ოპერატორი
while ციკლის(იტერაციის) ოპერატორის მეშვეობით შესაძლებელია
ოპერაციების (ბრძანებების) განმეორებით შესრულება.  while  ციკლის
ოპერაციები სრულდება მანამ, სანამ ციკლის პირობა ჭეშმარიტია.

while-­‐ის სტრუქტურა

while პირობა:
ოპერაცია 1
ოპერაცია 2
.......

21.10.19 lika.svanadze@btu.edu.ge 2
while  ციკლის ოპერატორი
მაგალითი: 1-დან 10-მდე რიცხვების დაბეჭდვა

n  =  0 n  არის ციკლის პარამეტრი


False
while  n <  10: n<10
ციკლის ტანი
n  +=  1
print(n) True

შედეგი n  +  =  1
print(n)
1
2
3
4
შენიშვნა: გაითვალისწინეთ, while  ციკლის
5 პარამეტრის ცვლილება უნდა მოხდეს ციკლის
6 ტანში. წინააღმდეგ შემთხვევაში, ციკლის
7 პირობა ყოველთვის ჭეშმარიტი (True) იქნება
8 და არასდროს არ დასრულდება ციკლის
9 ტანის ოპერაციების შესრულება, რაც
10 გამოიწვევს while-­‐ის ჩაციკვლას.

21.10.19 lika.svanadze@btu.edu.ge 3
range() ფუნქცია
range()  ფუნქცია აბრუნებს მთელი რიცხვების მიმდევრობას. ფუნქციაში
შესაძლებელია 3 პარამეტრის მითითება: start,  stop   და step.   ფუნქციაში
შესაძლებელია მითითებული იყოს მხოლოდ ერთი, ორი ან სამივე პარამეტრი.
სინტაქსი

range(start,   stop,  step)

v ერთი პარამეტრით: range(x) -­‐ წარმოადგენს დიაპაზონს 0-დან x-­‐1-­‐ის ჩათვლით.

მაგ: range(5)  არის შემდეგი დიაპაზონი: 0,  1,  2,  3,  4

v ორი პარამეტრით: range(x,  y)    -­‐ წარმოადგენს დიაპაზონს x-დან y-­‐1-­‐ის ჩათვლით.

მაგ:  range(2,  7)  არის შემდეგი დიაპაზონი: 2,  3,  4,  5,  6

v სამი პარამეტრით: range(x,  y,  z)-­‐ წარმოადგენს დიაპაზონს x-დან y-­‐1-­‐ის ჩათვლით ბიჯით z.

მაგ: range(1,  9,  2)  არის შემდეგი დიაპაზონი: 1,  3,  5,  7

range(10,  1,-­‐2)  არის შემდეგი დიაპაზონი: 10,  8,  6,  4,  2

21.10.19 lika.svanadze@btu.edu.ge 4
for  ..   in   ციკლის ოპერატორი

მაგალითი 1 ციკლის პარამეტრი მაგალითი 2

for  x  in  range(1,11): for  x  in  range(1,11,2):


print(x) print(x)

შედეგი შედეგი
1 1
2 3
3 5
4 7
5 9
6
7
8
9
10

21.10.19 lika.svanadze@btu.edu.ge 5
break  ოპერატორი
break ოპერატორი გამოიყენება ციკლის შიგნით, როდესაც საჭიროა მისი
შეწყვეტა, მიუხედავად იმისა, რომ ციკლის პირობა ჭეშმარიტია:

მაგალითი შედეგი

n=0 1
while  n<=10: 2
n  +=  1 3
print(n)
if  n  ==  3:  break

21.10.19 lika.svanadze@btu.edu.ge 6
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

21.10.19 lika.svanadze@btu.edu.ge 7
print() ფუნქცია
v print()   ფუნქცია წარმოადგენს ბეჭდვის ოპერაციას, რომელიც ბეჭდავს ფრჩხილებში
მითითებულ ინფორმაციას ახალ ხაზზე:
მაგალითი შედეგი
a=5 5
print(a)
print('Hello   World!') Hello  World!

v print()  ფუნქციის შესრულებისას, მონაცემების დაბეჭდვა სრულდება ’\n’-­‐ით. რომელიც


წარმოადგენს შემდეგ ხაზზე გადასვლას. შესაბამისად, ყოველი ახალი print()  ბრძანება
იბეჭდება მომდევნო ხაზზე. print()  ფუნქციაში შესაძლებელია მიუთითოთ ნებისმიერი რამ,
რითიც გინდათ რომ დასრულდეს ბეჭდვის ოპერაცია, რაც უნდა მიუთითოთ end=‘ ’  
პარამეტრად.

მაგალითი შედეგი

print('Hi',   end='-­‐') Hi-­‐Everyone-­‐


print('Everyone',   end='-­‐')

21.10.19 lika.svanadze@btu.edu.ge 8
print() ფუნქცია
v 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

21.10.19 lika.svanadze@btu.edu.ge 9
print() ფუნქცია - ფორმატირებული ბეჭდვა
v ფორმატირებული ბეჭდვა:
მაგალითი შედეგი
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 ციფრის გამოტანას
ათწილად ნაწილში

v რამდენიმე ცვლადის ფორმატირებული ბეჭდვა:

მაგალითი შედეგი
name  =  'Alice'
Hi  Alice,  I  have  5  donuts
a=5
print("Hi   %s,  I  have  %d  donuts"   %(name,  a))

21.10.19 lika.svanadze@btu.edu.ge 10
სავარჯიშოები:
1. დაბეჭდეთ 5-ის ჯერადი რიცხვები 20-დან 125-ის ჩათვლით.

2. დაბეჭდეთ 8-ის ჯერადი რიცხვები 200-დან 25-ის ჩათვლით კლებადობით.


3. შეიყვანთ 2 რიცხვი. ციკლის გამოყენებით დაბეჭდეთ შეყვანილი რიცხვების საერთო გამყოფები. მაგ. 15-ის და
18-ის საერთო გამყოფებია: 1, 3

4. შეიყვანეთ 10 რიცხვი კლავიატურიდან ციკლის გამოყენებით. დაითვალეთ შეყვანილი რიცხვების საშუალო


არითმეტიკული.

5. დაითვალეთ 1-დან 100-ის ჩათვლით ლუწი რიცხვების ჯამი და დაბეჭდეთ შედეგი.

6. დაბეჭდეთ 1500-დან 2100-ის ჩათვლით რიცხვები რომლებიც არიან 7-ის და 5-ის ჯერადი ერთდროულად.
7. დაითვალეთ 1500-დან 2100-ის ჩათვლით რიცხვების ჯამი რომლებიც არიან 7-ის და 5-ის ჯერადი
ერთდროულად. დაბეჭდეთ მიღებული შედეგი.
8. დაითვალეთ 1500-დან 2100-ის ჩათვლით რიცხვების ჯამი რომლებიც არიან 7-ის და 5-ის ჯერადი
ერთდროულად. როგორც კი რიცხვების ჯამი გადააჭარბებს 20 000-ს, შეწყვიტეთ ციკლი. დაბეჭდეთ მიღებული
ჯამი ეკრანზე.

9. დაითვალეთ 1500-დან 2100-ის ჩათვლით 5-ის ჯერადი რიცხვების რაოდენობა. დაბეჭდეთ შედეგი.
10. დაბეჭდეთ ეკრანზე 15-დან 150-მდე 5-ის ჯერადი რიცხვები გარდა 50-ის, 75, 80-ისა. გამოიყენეთ continue  
ოპერატორი.

21.10.19 lika.svanadze@btu.edu.ge 11
სავარჯიშოები:
11. შეიყვანეთ 2 დადებითი მთელი რიცხვი. იპოვეთ ამ ორი რიცხვის უდიდესი საერთო გამყოფი.

12. შეიყვანეთ 2 დადებითი მთელი რიცხვი. იპოვეთ ამ ორი რიცხვის უმცირესი საერთო ჯერადი.
13. შეიყვანეთ 10 რიცხვი ციკლის გამოყენებით. იპოვეთ რიცხვებს შორის უდიდესი კენტი რიცხვი და დაბეჭდეთ.
თუ კენტი რიცხვი არ შეგხვდათ, გამოიტანეთ შესაბამისი შეტყობინება.

14. შეიყვანეთ რიცხვი კლავიატურიდან. პროგრამამ უნდა დაბეჭდოს შეყვანილი რიცხვის ყველა გამყოფი. (მაგ.
18-ის გამოყოფებია: 1, 2, 3, 6, 9, 18)

15. შეიტანეთ რიცხვი. დაადგინეთ შეტანილი რიცხვი არის თუ არა მარტივი რიცხვი და გამოიტანეთ შესაბამისი
შეტყობინება (გაითვლისწინეთ: მარტივია რიცხვი, რომელსაც აქვს მხოლოდ ორი გამყოფი: ერთი და თავისი
თავი).

16. დაბეჭდეთ 2-დან 1000-მდე ყველა მარტივი რიცხვი.


17. დაბეჭდეთ 0-დან 100-მდე არსებული ფიბონაჩის რიცხვები (ფიბონაჩის რიცხვებია 1, 1, 2, 3, 5, 8, 13, ...).

18. შეიყვანეთ ნებისმიერი რიცხი. იპოვეთ ამ რიცხვის ციფრთა რაოდენობა და დაბეჭდეთ.

19. შეიყვანეთ ნებისმიერი რიცხი. იპოვეთ ამ რიცხვის ციფრთა ჯამი და დაბეჭდეთ.


20. შეიყვანეთ ნებისმიერი რიცხი. დაბეჭდეთ შეტანილი რიცხვი შებრუნებული სახით. (მითითება: მაგ. თუ შეიტანთ
1254-ს, დაბეჭდოს 4521)

21.10.19 lika.svanadze@btu.edu.ge 12
სავარჯიშოები:
21. შეიყვანეთ ნებისმიერი რიცხი. დაადგინეთ არის თუ არა შეტანილი რიცხვი პალინდრომი.
(მითითება: პალინდრომია რიცხვი, რომელიც მარჯვნიდან და მარცხნიდან ერთნაირად
იკითხება). მაგ. 12521

22. შეიყვანეთ რიცხვი. დათვალეთ ამ რიცხვის ფაქტორიალი და დაბეჭდეთ. მაგ. 5-ის


ფაქტორიალი იგივია რაც 1 ∗ 2 ∗ 3 ∗ 4 ∗ 5

23. დაწერეთ პროგრამა რომელიც ეკრანზე გამოიტანს შემდეგ გამოსახულებას. მითითება:


გამოიყენეთ 2 ჩადგმული for  ციკლი.
შედეგი
*  
*  *  
*  *  *  
*  *  *  *  
*  *  *  *  *  
*  *  *  *  
*  *  *  
*  *  
*  

21.10.19 lika.svanadze@btu.edu.ge 13

You might also like