Python'da Döngüler İçin: Bilmeniz Gereken Her Şey

Yayınlanan: 2022-08-18

Bu 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

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

Döngü Yapıları için

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() ve enumerate() 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
döngü için piton

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?

For Döngü Kullanan Dizilerde Döngü

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

Komut satırı

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
python-for-loop-komut satırı argümanları

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

Döngü İçin İçerideki Açıklamayı break

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?

Döngü için Sonsuz

Ş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 belirtmeden double() 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ğeri sentinel 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?

sonsuz döngü için piton

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...")
sonsuz döngü için piton

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.

Örnekleri deneyin

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.