Python dərs 3 — şərt ifadələri və döngülər
Python dərs 3 — Şərt ifadələri və döngülər
Pythonda şərt ifadələri ilə bir və ya bir neçə şərtdən alınan True və ya False dəyərinə görə proqramın fərqli kodları çalışdırmasına kömək edir. Pythonda if elif else şərt ifadəsi üzərində nümunələrə baxaq. İf-elif-else istifadəsi aşağıdakı kimidir.
if(şərt və ya şərtlər):
ediləcəklər
…
elif(şərt və ya şərtlər):
ediləcəklər
…
…
else:
ediləcəklər
…
Əgər if şərti (və ya şərtlər) ödənərsə həmin kodlar çalışacaq əks halda elif şərtlərinə baxır əgər hər hansı şərt doğru olarsa o elif altındakı kodlar çalışacaq. elif istənilən sayda ola bilər. Əgər bunlardan da heç bir şərt doğru olmazsa onda else altındakı kodlar çalışacaq. elif və ya else hissəsini yazmaq məcburi deyil.
if hava_yaxsidi
getparka()
elif biletinvarsa:
getkinoya()
elif yemekhazirdirsa:
getyemekye()
else:
evdeqal()
İstifadəçinin daxil etdiyi rəqəmin tək və ya cüt olduğunu deyən proqram yazaq. input() istifadəçidən məlumat almaq üçün istifadə olunur. Geriyə həmişə string dəyər qaytarır.
a=int(input(“Ədədi daxil edin: ”)) #input bizə string verdiyi üçün integerə çeviririk
if(a%2==0): #2-yə bölünürsə cütdür
print(“Ədəd cütdür”)
else:
print(“Ədəd təkdir”)
Başqa bir nümunəyə baxaq istifadəçiyə 3 dənə rəqəm daxil etsin və biz ən böyüyünü ekrana yazdıraq.
Bu məsələni nested if yəni iç içə if elə də həll edə bilərik. Nested if istifadəsini başa düşmək üçün yuxarıdakı məsələni nested if ilə yazaq.
if şərt operatorunun qısa yazılışı da var. Aşağıdakı nümunəyə baxaq.
x=1
y=5
s=(‘x böyükdür’ if (x>y) else ‘y böyükdür’) # mötərizənin qoyulması vacibdir əks halda xəta verəcək
print(s)
Proqramlaşdırma ilə məşğul olanlar bilir ki əksər dillərdə şərt operatorlar sadəcə if-else ilə məhdud deyil. switch-case operatoru da bir çox proqramlama dilində var. Ancaq pythonda switch case operatoru yoxdur. switch-case məntiqini istifadə etmək üçün müxtəlif üsullar var.
Pythonda döngü ifadələri eyni əməliyyatı bir neçə dəfə təkrarlamaq lazım olduqda işlənilir. Pythonda while və for döngüləri var. while döngüsü yazılışı aşağıdakı kimidir.
while(şərt vəya şərtlər):
kodlar
…
else:
kodlar
…
Sadə nümunəyə baxaq. 1-dən 5ə qədər ədədlərin cəmini while ilə tapaq.
i=0
s=0
while (i<5):
s+=i
i+=1 #i++ pythonda yoxdur
print(i,”dəfə while çalışdı”)
print(s)
while istifadəsi üçün aşağıdakı nümunəyə da baxaq. İstifadəçi ədədlər daxil edir və 0 daxil etdikdə proqram sona çatır və ekrana daxil edilən ədədlərin neçəsi tək neçəsi cütdür onu ekrana yazır.
number!=0 əvəzinə number, number%2==1 əvəzinə number%2 yazmaq olar.
while number:
if number % 2:
odd_numbers += 1
else:
even_numbers += 1
İç-içə(nested) while döngüsü üçün aşağıdakı nümunəyə baxaq.
for döngüsü istifadəsi ümumi şəkildə belədir.
for i in collections(iterable):
kodlar
…
Else:
Kodlar
…
Hələki kolleksiyaları başa düşmək bir qədər çətin olacağı üçün sadəcə ədədlər üzərində nümunələrə baxaq. Əvvəlcə range nədir ona baxaq.
range([start,] stop [, step]) -> range object
range nümunələri. Daha yaxşı başa düşmək üçün range üzərində dəyişiklik edib nəticələr baxın.
>>> x=range(5)
>>> print(x)
range(0, 5)
>>> print(list(x))
[0, 1, 2, 3, 4]
>>> print(list(range(5)))
[0, 1, 2, 3, 4]
>>> x=range(2,5)
>>> print(x)
range(2, 5)
>>> print(list(range(2,5)))
[2, 3, 4]
>>> x=range(2,8,3)
>>> print(x)
range(2, 8, 3)
>>> print(list(x))
[2, 5]
>>> print(list(range(2,8,3)))
[2, 5]
>>> x=range(2,1)
>>> print(x)
range(2, 1)
>>> print(list(x))
[]
>>> x=range(5,1,-1)
>>> print(x)
range(5, 1, -1)
>>> print(list(x))
[5, 4, 3, 2]
For ilə bağlı nümunələrə baxaq.
#1-dən 100-ə qədər ədədlərin cəmini hesablayaq.
s=0
for i in range(1,100):
s+=i
print(s) #4950
#1-dən 100-ə tək ədədlərin cəmi
s=0
for i in range(1,100,2):
s+=i
print(s) #2500
#1-dən 100-ə cüt ədədlərin cəmi
s=0
for i in range(0,100,2):
s+=i
print(s)#2450
Başqa nümunələr
#10-a qədər olan ədədlərin kvadratları. 10 daxil
for x in range(11):
print(x, x**2)
#Tutaqki kvadratları yazdırdıqdan sonar yazmaq istiyirik bitdi
for x in range(11):
print(x, x**2)
else:
print(“bitdi”)
#Əlimizdə olan ədədlərin cəmi
cem=0
for x in (5,6,7,8,-2,-14,-25,9,11):
cem+=x
else:
print(cem) #5
İç içə (nested) for nümunəsinə baxaq.
for i in range(1,6):
for j in range(i):
print(“*”,end=’ ‘)#15 dənə * yazdıracaq. 1+2+3+4+5
#string numunesi
for c in “Salam Python”:
print(c,end=”,”) #S,a,l,a,m, ,P,y,t,h,o,n,
Döngülərlə bağlı son olaraq onu qeyd etmək lazımdır ki bəzən hər hansı bir şərt ödəndikdə döngüyə qayıtmaq vəya döngüdən tamamilə çıxmaq tələb olunur bu vaxt continue və break keywordlərindən istifadə olunur. Məsələn 1-dən 100-ə qədər tək ədədləri yazdıraq (continue istifadə edərək).
for i in range(1,100):
if i%2==0:
continue #cütdürsə döngüyə qayıt və davam et
else:
print(i) #təkdirsə ekrana yaz
Eyni nümunədə sadəcə 50yə qədər tək ədədləri yazdıraq.
for i in range(1,100):
if(i>50):
break #döngüdən çıx
elif i%2==0:
continue #cütdürsə döngüyə qayıt və davam et
else:
print(i) #təkdirsə ekrana yaz
Yuxarıdakı nümunələrdə break və continue istifadə edərək fərqli nəticələr əldə etməyə çalışın. Həmçinin for nümunələrini while ilə və ya while nümunələrini for ilə əvəz edərək yazmağa çalışın. Bu şəkildə daha yaxşı yadda qalacaq.