You are on page 1of 14

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

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=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
ციკლის პირობა ყოველთვის ჭეშმარიტი
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(start, stop, step)

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

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

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

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

❖ სამი პარამეტრით: 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

23.10.2020 lika.svanadze@btu.edu.ge 5
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

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!')

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


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

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

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


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

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-ის ჩათვლით.

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

3. დაბეჭდეთ 1500-დან 2100-ის ჩათვლით რიცხვები, რომლებიც არიან 7-ის და 5-ის ჯერადი ერთდროულად.

4. დაითვალეთ 1500-დან 2100-ის ჩათვლით რიცხვების ჯამი რომლებიც არიან 7-ის და 5-ის ჯერადი
ერთდროულად. დაბეჭდეთ მიღებული შედეგი.

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

6. დაითვალეთ 1500-დან 2100-ის ჩათვლით 5-ის ჯერადი რიცხვების რაოდენობა. დაბეჭდეთ შედეგი.

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


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

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

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. შეიტანეთ რიცხვი. დაადგინეთ შეტანილი რიცხვი არის თუ არა მარტივი რიცხვი და გამოიტანეთ შესაბამისი შეტყობინება
(გაითვლისწინეთ: მარტივია რიცხვი, რომელსაც აქვს მხოლოდ ორი გამყოფი: ერთი და თავისი თავი).

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

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

19. შეიყვანეთ ნებისმიერი რიცხვი. იპოვეთ ამ რიცხვის ციფრთა რაოდენობა და დაბეჭდეთ. (len ფუნქციის გარეშე)

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

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

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

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

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


*
* * * * *
**
* *
ა) ბ) ** *
* *
** **
* * * * *
** ***
* *
** **
* *
** *
* * * * *
**
*

25. შეიყვანეთ ორი რიცხვი. დაბეჭდეთ ამ ორ რიცხვს შორის არსებული ყველა „სარკისებური მარტივი“
რიცხვები (Mirror Prime Numbers). რიცხვი „სარკისებურად მარტივია“ თუ იგი არის მარტივი და მისი
შებრუნებული მნიშვნელობაც მარტივია.

23.10.2020 lika.svanadze@btu.edu.ge 14

You might also like