Python'da Döngüler İçin: Bilmeniz Gereken Her Şey
Yayınlanan: 2022-08-18Bu eğitim size Python'da for döngülerini kod örnekleriyle birlikte kullanmayı öğretecek.
Programlamada döngüler, belirli bir dizi ifadeyi tekrarlamanıza yardımcı olur. Kesin yinelemeler için for döngülerini şu durumlarda kullanacaksınız:
- sonlu sayıda elemana sahip bir diziyle çalışacağınızı biliyorsunuz
- önceden tekrar sayısını görüyorsun
Bu eğitim size Python'da for döngüleriyle çalışma hakkında her şeyi öğretecek. Bir for döngüsü kullanarak sözdizimini ve basit yinelemeleri öğrenerek başlayacaksınız. Ardından, komut satırı bağımsız değişkenlerini işlemeyi, döngü kontrol deyimlerini kullanmayı ve daha fazlasını öğreneceksiniz.
Başlayalım…
Döngü için Python Sözdizimi

Python'da for döngüsünü kullanmak için genel sözdizimi aşağıdaki gibidir:
for item in iterable: # do something on item statement_1 statement_2 . . . statement_n
Yukarıdaki sözdiziminde:
- item döngü değişkenidir.
- yinelenebilir, listeler, demetler ve dizeler gibi yinelenebilir herhangi bir Python'u belirtir.
- deyim_1'den deyim_n'ye kadar, döngü gövdesindeki deyimleri belirtir .
Not : Yinelenebilirin adından sonra iki nokta üst üste ( :
) eklediğinizden ve döngü gövdesindeki tüm ifadeleri dört boşlukla girintilediğinizden emin olun.
Python'da Döngü Yapıları için Ortak

Bir for döngüsü kullanırken:
- Önceki bölümde tartışılan sözdizimini kullanarak öğelere doğrudan erişebilirsiniz.
- for döngüsünü,
range()
veenumerate()
gibi Python yerleşik işlevleriyle birlikte kullanabilirsiniz.
Bunları bu bölümde ele alacağız.
Öğelere Erişmek için Döngü Kullanımı
Okunabilirliği artırmak için listenin ne içerdiğini gösteren bir döngü değişkeni seçmelisiniz. Örneğin, aşağıdaki örnekte nums
, döngü değişkeni olarak num
kullandığımız sayıların bir listesidir. for num in nums:
nasıl olduğuna dikkat edin: sezgiseldir ve okunması kolaydır.
nums = [4,5,9,1,3] for num in nums: print(num) # Output 4 5 9 1 3
Birkaç örnek daha ekleyerek, for fruit in fruits:
ve for student in students:
sırasıyla fruits
ve students
listesi arasında dolaşırken kullanabilirsiniz.
for Loop'u range() Fonksiyonu ile kullanma
Dizini aracılığıyla bir liste öğesine erişmek istediğinizde, range()
işlevini kullanabilirsiniz.
Python'da,
range(start, stop, step)
bir aralık nesnesi döndürür; bu, dizinleri almak için döngüye girebilirsiniz:start
,start + step
, vb.,stop
dahil değildir.
for i in range(len(nums)): print(nums[i]) # Output 4 5 9 1 3
Ayrıca, döngü içinde bir sayı dizisi oluşturmak için range()
işlevini de kullanabilirsiniz. Aşağıdaki örnekte, isteğe bağlı step
parametresini 2'ye ayarladık. Böylece, 2'lik adımlarla 10'dan 20'ye kadar ancak dahil olmayan sayılar elde ederiz.
for i in range(10,20,2): print(i) # Output 10 12 14 16 18
enumerate() işleviyle for Loop'u kullanma
Yinelenebilir bir döngüde dolaşmak ve öğelere ve bunların dizinlerine aynı anda erişmek istediğinizde, enumerate() işlevini kullanabilirsiniz.
İşte bir örnek.
for idx, num in enumerate(nums): print(f"{idx}:{num}") # Output 0:4 1:5 2:9 3:1 4:3

Python'da For Loop Kullanan Listelerdeki Öğeler Nasıl Okunur?
For döngüsünü kullanarak Python listeleri arasında dolaşmak için önceki bölümdeki genel sözdizimini kullanabilirsiniz.
Aşağıdaki örnekte, nums
yinelenebilir ve num döngü değişkenidir.
nums = [4,5,9,1,3] for num in nums: print(f"{num} times 3 is {num*3}") # action on each num # Output 4 times 3 is 12 5 times 3 is 15 9 times 3 is 27 1 times 3 is 3 3 times 3 is 9
Python'da for Loop Kullanarak Dizeler Arasında Döngü Nasıl Yapılır?
Python dizeleri yinelenebilirdir ve döngü, dizin oluşturma, dilimleme ve daha fazlasını gerçekleştirebilirsiniz.
Not : Python'un yerleşik bir karakter veri türü yoktur. Böylece bir karaktere bir uzunlukta bir dize olarak davranabilirsiniz.
my_string = "Code" for char in my_string: print(char) # Output C o d e
Python'da For Loop Kullanarak Diziler Arasında Döngü Nasıl Yapılır?

Döngüleri kullanarak diziler arasında döngü yapabilir ve döngüler için yuvalayabilirsiniz.
Aşağıdaki kod parçacığında dizi1, öğeleri olarak daha küçük listeler içeren iç içe geçmiş bir listedir. Böylece dizi1 üzerinden döngü yapmak, aşağıda gösterildiği gibi her satırı verir.
array1 = [[2,3],[7,8]] for row in array1: print(row) # Output [2, 3] [7, 8]
Her satırdaki tek tek öğelere erişmek için başka bir for
döngüsü kullanabilirsiniz.
array1 = [[2,3],[7,8]] for row in array1: for elt in row: print(elt)
Yukarıdaki kod hücresinde:
- Dış for döngüsü, satırları indekslemenize yardımcı olur.
- İçteki for döngüsü, her satırdaki öğelere dokunmanızı sağlar.
İşte ilgili çıktı.
Output 2 3 7 8
Döngü Kullanarak Komut Satırı Bağımsız Değişkenleri Nasıl Okunur

Bir geliştirici olarak, komut satırından Python komut dosyalarını çalıştırmakta ve komut satırınızla etkileşim kurmak için komut satırı bağımsız değişkenlerini kullanmakta rahat olmalısınız.
Komut satırı bağımsız değişkenlerini ayrıştırmak ve okumak için Python'un sys ve argparse gibi yerleşik modüllerini kullanabilirsiniz.
Bu bölümde, sys
modülünün nasıl kullanılacağını ve komut satırı argümanları listesinde dolaşmak için bir for
döngüsünün nasıl kullanılacağını gözden geçireceğiz.
sys modülünde sys.argv
, ilettiğiniz komut satırı argümanlarının listesidir. Böylece sys.argv
herhangi bir Python listesinde yaptığınız gibi döngü yapabilirsiniz.
# main.py import sys for arg in sys.argv: print(arg)
Artık programı aşağıda gösterildiği gibi komut satırından çalıştırabilirsiniz.
$ python main.py Hello Python3 main.py Hello Python3
Varsayılan olarak, modülün adı ilk argümandır ve sys.argv
içinde sıfır dizinindedir.
İndekslere ve ilgili argümanlara erişmek istiyorsanız, range()
işlevini kullanabilirsiniz.
# main.py import sys for i in range(len(sys.argv)): print(f"arg{i} is {sys.argv[i]}")
️ Ardından, main.py'yi yeniden çalıştırın.
$ python main.py Hello Python3 arg0 is main.py arg1 is Hello arg2 is Python3
Modül adından başka argümanları ayrıştırmak ve işlemek istediğinizi varsayalım. Aşağıdaki kod hücresinde olduğu gibi başlangıç değerini 1 olarak ayarlayabilirsiniz.

# main.py import sys for i in range(1,len(sys.argv)): print(f"arg{i} is {sys.argv[i]}")
$ python main.py Hello Python3 arg1 is Hello arg2 is Python3

Hepsini bir araya getirirsek, main.py dosyası aşağıdaki kodu içerir.
# main.py import sys print("\nPrinting all command-line arguments...") for arg in sys.argv: print(arg) print("\nPrinting all command-line arguments with index...") for i in range(len(sys.argv)): print(f"arg{i} is {sys.argv[i]}") print("\nPrinting command-line arguments except arg0: module_name...") for i in range(1,len(sys.argv)): print(f"arg{i} is {sys.argv[i]}")
Modülü çalıştırdığınızda çıktısı aşağıdadır.
$ python main.py Hello Python3 Printing all command-line arguments... main.py Hello Python3 Printing all command-line arguments with index... arg0 is main.py arg1 is Hello arg2 is Python3 Printing command-line arguments except arg0: module_name... arg1 is Hello arg2 is Python3
Döngü İçin İçinde Break İfadesi Nasıl Kullanılır

Diğer programlama dilleri gibi Python da break
ve continue
döngü kontrol ifadelerinin kullanımını destekler. Bu ifadeler, bazı koşullara bağlı olarak döngülerdeki kontrol akışını değiştirmeye yardımcı olabilir. Bunları bir for döngüsü içinde nasıl kullanacağımızı görelim.
break
ifadesi, belirli bir koşul True
olduğunda bir döngüden çıkmak için kullanılabilir.
Aşağıdakileri yapmak için bir program yazmak istiyoruz:
- Sabit
k
, giriş sayısı. - Kullanıcı girişlerini okumak için bir
for
döngüsü kullanın; her seferinde bir basamak ve negatif olmayan sayıları (sıfırdan büyük veya sıfıra eşit) toplayın. - Bu işlem, kullanıcı negatif olmayan sayılar girdiği sürece devam etmelidir.
- Kullanıcı negatif bir sayı girdiğinde, döngüden çıkın ve toplamı yazdırın.
İşte yukarıdaki görevi gerçekleştiren kod.
k= 5 sum = 0 for i in range(k): num = int(input("\nEnter a number: ")) if num<0: break # exit loop when num < 0 sum += num print(sum)
Kullanıcı sıfırdan küçük bir sayı girerse, kontrol for döngüsünden çıkar ve döngüden sonraki ilk ifadeye geçer.
Enter a number: 2 Enter a number: 3 Enter a number: 5 Enter a number: -1 10
Devam İfadesi İçinde Döngü İçin Nasıl Kullanılır
continue
ifadesi, belirli bir koşula bağlı olarak belirli yinelemeleri atlamak için kullanılabilir.
Aynı örnekleri önceki bölümde kullanalım.
- Kullanıcı girişini okuyun ve negatif olmayan sayıların toplamını hesaplayın.
- Kullanıcı negatif bir sayı girerse, o yinelemeyi atlayın ve bir sonraki yinelemeye geçin ve sonraki sayıyı okuyun.
k = 5 sum = 0 for i in range(k): num = int(input("\nEnter a number: ")) if num<0: continue sum += num print(sum)
İşte bir örnek çıktı.
Enter a number: 2 Enter a number: 3 Enter a number: 5 Enter a number: -1 Enter a number: 3 13
Dördüncü sayı, negatif olan -1'dir. Ancak bu sefer for döngüsü, belirtilen giriş sayısına ulaşana kadar devam eder ve negatif girişleri yok sayar. Esasen, k giriş numaralarından tüm negatif olmayan sayıların toplamını döndürür.
Python'da Bir Sonsuz Döngüye Girebilir misiniz?

Şimdiye kadar tartıştığımız tüm örneklerde ve kullanım durumlarında, hiçbir zaman sonsuz bir for döngüsü sorunuyla karşılaşmadık. Ancak Python'da sonsuz bir for döngüsüne sahip olabilir miyiz?
Aşağıdaki double()
işlevini göz önünde bulundurun.
def double(x = 1): return x*2
-
x
değerini belirtmedendouble()
işlevini çağırdığınızda, varsayılan 1 değeri kullanılır. - İşlev çağrısında
x
için bir değer belirttiğinizde, o değer kullanılır.
double() # Returns: 2 double(20) # Returns: 40
Python'da iter() işlevi bir yineleyici nesnesi döndürür. Sırayı yinelemek ve sonraki öğelere erişmek için next(iter-obj)
öğesini kullanabilirsiniz.
– Çağrılabilir bir nesne ve bir değer düşünün, sentinel .
–
iter(callable-object, sentinel)
callable-object
dönüş değerisentinel
eşit olana kadar yineleme yapmak için kullanılabilir.
Bu durumda neden sonsuz bir for döngüsüne sahip olabileceğimizi anlıyor musunuz?

Eh, callable-object
ve bir sentinel
değeriniz var. Çağrılabilir değerden dönüş değeri hiçbir zaman nöbetçiye eşit değilse, döngü sonsuza kadar devam eder!
Yukarıdaki işlevi çağrılabilir olarak double
kullanalım ve sentinel değerini 0 olarak ayarlayalım.
Not : double()
işlev çağrısının değil, double
işlevinin adını belirtin.
double
fonksiyonunun dönüş değeri her zaman 2 olduğundan ve asla 0'a eşit olmadığından, sonsuz bir döngümüz var!
️ Aşağıdaki kod hücresini çalıştırmayı deneyin. Döngü için sonsuzdur ve programı durdurmaya zorlamanız gerekir.
for _ in iter(double,0): print("Running...")

Döngüler İçin Python: Alıştırma Soruları
#1 . 0 ile 20 arasındaki tüm çift sayıları yazdırmak için for döngüsü kullanın.
İpucu : range()
işlevini doğru step
değeriyle kullanın.
# 2 . 20'den 0'a kadar tüm çift sayıları yazdırın.
İpucu : range()
işlevindeki step
parametresi için negatif değer kullanın.
#3 Üç boyutlu bir NumPy dizisi oluşturun.
İpucu : Dizideki satırlara ve tek tek girişlere erişmek için gerektiği gibi for döngüsü ve iç içe for döngülerini kullanın.
Toplama
İşte bu eğitimde öğrendiklerinizin bir özeti.
- Range() ve enumerate() işlevleriyle birlikte Python for döngüsünü kullanmak için sözdizimi
- Listeler, diziler ve dizeler arasında dolaşmak ve komut satırı bağımsız değişkenlerini okumak için for döngülerini kullanma
- Döngü kontrol deyimlerini kullanma: döngüden çıkmak için ara ve döngüler içinde belirli yinelemeleri (koşullara göre) atlamak için devam deyimi
- Python'da sonsuz for döngüleri olasılığını anlama
Ardından, Python'da split() yöntemini nasıl kullanacağınızı öğrenin.