6.1 for
dövrü
Python-da siyahının elementləri üzrə dövrləri çox vaxt for
dövrü ilə həyata keçirirlər. Bu siyahı üzrə iterasiya etmək üçün ən çox istifadə olunan yanaşmalardan biridir, və siyahıdakı hər bir element üçün kod blokunu yerinə yetirməyə imkan verir.
for
dövrünün əsasları
Python-da for
dövrü siyahının hər bir elementi üzrə keçir, müvəqqəti olaraq cari elementin dəyərini for
açar sözündən sonra göstərilən dəyişənə təyin edir. Məsələn:
fruits = ["alma", "banan", "gilas"]
for fruit in fruits:
print(fruit)
Siyahını tərsinə keçmək üçün isə sətir kəsimlərindən istifadə etmək olar:
fruits = ["alma", "banan", "gilas"]
for fruit in fruits[::-1]:
print(fruit)
6.2 for
döngəsi indekslərlə
Klassik for
döngəsi ilə siyahını keçməyin yanında, range()
funksiyası ilə birlikdə for
döngəsindən istifadə edərək də siyahını keçə bilərsiniz. Bu, yalnız elementlərlə deyil, həm də onların mövqeləri ilə işləməyə imkan verir, bu da daha kompleks məlumat manipulyasiyaları zamanı lazım ola bilər.
İndeksləşdirilmiş iterasiya əsasları
Hər bir elementin indeksinə çıxışla siyahı üzərində iterasiya etmək üçün aşağıdakı yanaşmadan istifadə edə bilərsiniz:
my_list = ['a', 'b', 'c', 'd']
for i in range(len(my_list)):
print(f'İndeks: {i}, Element: {my_list[i]}')
İndekslərdən istifadə etməyin üstünlükləri
Döngələrdə indekslərdən istifadə edərək hər bir elementə çıxış əldə etməklə yanaşı, siyahıdakı elementləri yerindəcə dəyişdirmək də mümkündür. Bu xüsusilə, iterasiya zamanı siyahını dəyişdirmək lazım olduqda faydalıdır.
Misal:
my_list = ['a', 'b', 'c', 'd']
for i in range(len(my_list)):
my_list[i] = my_list[i] * 2
Mürəkkəb manipulyasiyalara nümunələr
İndekslərlə bir neçə elementə eyni anda çıxış tələb edən alqoritmləri həyata keçirmək asandır, məsələn, cari elementi əvvəlki və ya növbəti elementlə müqayisə etmək üçün:
Misal:
my_list = [3, 5, 2, 9, 4]
for i in range(1, len(my_list)):
if my_list[i] > my_list[i - 1]:
print(f'{my_list[i]} əvvəlkindən ({my_list[i - 1]}) daha böyükdür')
6.3 enumerate()
funksiyasının istifadəsi
Python-da enumerate()
funksiyası siyahı elementlərinə döngü ilə keçərkən, həm də onların indekslərinə rahatlıqla çıxış əldə etməyə imkan verir. Bu xüsusilə həm indeks, həm də siyahı elementinin dəyərini bir döngü çərçivəsində işləmək lazım olduqda faydalıdır.
enumerate()
funksiyasının əsasları
enumerate()
funksiyası siyahını xüsusi bir obyektə çevirir və indeks və siyahı elementinin dəyərindən ibarət tuple-lar (iki dəyərdən ibarət cütlər) yaradan iterator qaytarır:
my_list = ["alma", "banan", "albalı"]
for index, element in enumerate(my_list):
print(f'İndeks: {index}, Element: {element}')
İndi sizdə sadəcə element yox, həm də onun indeksi var.
enumerate()
funksiyasının üstünlükləri
enumerate()
funksiyasının istifadəsi kodu daha oxunaqlı edir və indeksləri əl ilə idarə etməyin range(len(...))
vasitəsilə ehtiyacını aradan qaldırır. Bu, siyahı elementləri ilə manipulyasiyanı sadələşdirir, məsələn dəyişiklik, giriş əldə etmə və şərt yoxlamalarının yerinə yetirilməsi.
İstifadə nümunələri
enumerate()
siyahı elementlərini dəyişdirmək və ya onların indeksləri ilə müqayisə aparmaq lazım olan tapşırıqlar üçün ideal seçimdir:
my_list = ["alma", "banan", "albalı"]
for index, element in enumerate(my_list):
if index % 2 == 0:
print(f'Cüt indeks {index} olan element {element}')
6.4 while
dövrü
for
haqqında danışdıq, indi isə while
dövrü haqqında danışaq. Bu dövr də dizim elementləri ilə işləyərkən faydalı ola bilər.
Xatırladıram ki, while
dövrü öz işinə şərti yoxlamaqla başlayır. Əgər şərt doğrudursa, dövrün gövdəsi icra olunur və sonra şərt yenidən yoxlanılır. Proses şərt yanlış olana qədər təkrarlanır.
Dizim üzrə iterasiya nümunəsi
Fərz edək ki, sizdə rəqəmlərdən ibarət bir dizim var və müəyyən bir dəyərə çatanadək onun ilə iterasiya etmək istəyirsiniz:
numbers = [1, 2, 3, 4, 5, -1, 6]
i = 0
while i < len(numbers) and numbers[i] != -1:
print(numbers[i])
i += 1
for
dövründən o qədər də fərqlənməyib, deyilmi? Amma elə hallar olur ki, indeksdən istifadə etmədən dizim elementləri ilə işləməliyik. Məsələn, dizimdə bəzi tapşırıqlar saxlanılıb və onları bir-bir dizimdən götürüb icra etmək və siyahıdan silmək lazımdır.
Bu kodu sxematik olaraq belə yazmaq olardı:
tasks = [1, 2, 3, 4, 5, -1, 6]
while len(tasks) > 0:
task = tasks.pop()
print(task)
GO TO FULL VERSION