8.1 For dövrü
Şərtə uyğun olaraq bir neçə əmri icra etmək əlaydı. Amma əgər mən hansısa əməliyyatı 100 dəfə icra etmək istəyirəmsə? Bunu necə edim?
Bunun üçün Python dilində dövrlər mövcuddur. Və bizim məsələmiz üçün mükəmməl seçim dövr for
-dur. for
operatorunun ümumi yazılışı belədir:
for dəyişən in dəyərlərin_siyahısı:
əmr1
əmr2
əmrN
Burada dəyərlərin_siyahısı — müəyyən dəyərlər yığınıdır: siyahı, sətir, ya da dictionary (onlardan daha sonra danışacağıq).
Dəyişən ardıcıllıqla dəyərlərin_siyahısı-dan dəyər alır və hər biri üçün əmr blokunu icra edir.
Nümunə:
Nümunə | İzah |
---|---|
|
1. fruit dəyişəninə "alma" dəyəri təyin olunur və print(fruit ) əmri icra olunur. 2. fruit dəyişəninə "banan" dəyəri təyin olunur və print(fruit ) əmri icra olunur. 3. fruit dəyişəninə "albalı" dəyəri təyin olunur və print(fruit ) əmri icra olunur. |
Belə işləyir for dövrü:
Əgər in
sözündən sonra olan siyahıda 10 dəyər varsa, blok komandası 10 dəfə icra olunur.
dəyərlərin_siyahısı-nın hər bir elementi üçün iki şey baş verir:
- Dövr dəyişəninə (söz
for
-dan sonra göstərilən dəyişkən) siyahıdan növbəti dəyər təyin olunur. - Daha sonra əmrlər bloku icra olunur.
Başqa bir misal:
Nümunə | İzah |
---|---|
|
Dövr ekrana bu ədədləri çıxaracaq: 1 2 3 4 5 6 7 8 9 10 |
8.2 Aralığın təyin edilməsi — range
Son nümunədə görə bildiniz ki, ekranda 10 ədəd göstərmək çox sadədir. Amma 100 dəfə döngü yerinə yetirmək istəyirik? Bəs 1000 dəfə?
Təbii ki, bunun üçün həll yolu var. Python dilində xüsusi bir funksiya range()
var ki, bu, ədədlər ardıcıllığını generasiya etməyə imkan verir və döngü for
ilə birləşdirildikdə təkrarlanan tapşırıqların idarə edilməsi üçün güclü bir alətə çevrilir.
Funksiya range()
müxtəlif yollarla istifadə oluna bilər, bu da onun aldığı arqumentlərin sayından asılıdır.
range()
-in əsas tətbiqlər:
Bir arqument: range(n)
ardıcıllıq 0-dan n-1-ə qədər genrasiya edir. Bu, bir əməliyyatı müəyyən sayda dəfə yerinə yetirmək lazım olduqda faydalıdır.
for i in range(5):
print(i) # 0-dan 4-ə qədər ədədləri göstərəcək
İki arqument: range(start, stop)
ardıcıllıq start
-dan stop-1
-ə qədər ədədləri generasiya edir. Bu, iterasiyanı müəyyən bir ədəddən başlamaq üçün faydalıdır.
for i in range(1, 6):
print(i) # 1-dən 5-ə qədər ədədləri göstərəcək
Üç arqument: range(start, stop, step)
üçüncü step
arqumenti əlavə edir, bu isə ardıcıllıq arasındakı addımı müəyyən edir.
for i in range(0, 10, 2):
print(i) # 0-dan 8-ə qədər cüt ədədləri göstərəcək
Geri sayan döngülər: range()
ədədləri tərs ardıcıllıqda generasiya edə bilər, bu isə tərs iterasiyalar aparmaq imkanı verir.
for i in range(10, 0, -1):
print(i) # 10-dan 1-ə qədər ədədləri göstərəcək
range()
funksiyası və for
döngüsü ilə birlikdə Python-da iterasiyalar üzərində nəzarət etmək üçün çevik bir alətdir. Onun imkanlarını anlamaq daha effektiv və aydın döngülərin yaradılmasına kömək edir ki, bunlar da hər bir proqramın ayrılmaz hissəsidir.
8.3 Siyahı üzrə dövr
Əgər fərqli dəyərlər üzərində bir neçə əməliyyat yerinə yetirmək istəyirsənsə, range()
funksiyası uyğun gəlməyə bilər. Bu dəyərləri kvadrat mötərizə ilə bir siyahıya toplamaq olar. Bu əməliyyatın ümumi görünüşü belədir:
for dəyişən in [val1, val2, …, valN]:
əmr1
əmr1
əmrN
Sadəcə dəyərləri vergüllə ayırıb siyahıya daxil edirsən, və dövr hər bir dəyərə görə bir dəfə işləyir, dəyişən isə ardıcıl olaraq hər bir dəyəri qəbul edir. Məsələn:
Nümunə | İzah |
---|---|
|
Dövr ekran üzrə bu sətirləri yazacaq: apple banana cherry |
Siyahıda ədədləri göstərmək mümkündür, hətta dövr daxilində, sözün in
arxasında qeyd edilə bilər:
Nümunə | İzah |
---|---|
|
Dövr ekran üzrə bu ədədləri yazacaq: 0.99 2.75 0.25 |
Siyahıda ümumiyyətlə istənilən tipdən obyektləri sadalamaq olar:
Nümunə | İzah |
---|---|
|
Dövr ekran üzrə bu sətirləri yazacaq: 0.99 apple -1 True |
GO TO FULL VERSION