piton

Sayaçlarla Döngüler Oluşturmak için Python'da Numaralandırma İşlevini Kullanın

Sayaçlarla Döngüler Oluşturmak için Python'da Numaralandırma İşlevini Kullanın

Bu makale Python'un standart modül kitaplığında bulunan "numaralandırma" işlevinin kullanımını açıklayacaktır. Numaralandırma işlevi, yinelenebilir herhangi bir nesnedeki öğelere bir "indeks" veya "sayım" atamanıza olanak tanır. Daha sonra, hem değerlere hem de onunla eşlenen bir sayıya erişebileceğiniz için bunlara daha fazla mantık uygulayabilirsiniz.

Sözdizimi ve Temel Örnek

Diğer programlama dillerinde, özellikle “C” dilinde ve “C” tarzı sözdizimine sahip diğer dillerde “for” döngüsü kullandıysanız, döngüde bir başlangıç ​​indeksi belirtmiş olabilirsiniz. Başvuru için, "C"de ve benzer sözdizimine sahip diğer dillerde "for" döngüsü nasıl görünür:

for (int ben = 0; ben < 10; i++)

printf("%d\n", ben);

Döngü ifadesi, sıfır değerine sahip bir değişken başlatır, bir eşikten küçük olup olmadığını kontrol eder ve döngü bloğu içindeki mantığı değerlendirdikten sonra (durma koşulu karşılanırsa) bir sayıyla artırır. Bu şekilde bir dizin kullanabilir ve onu döngü bloğunuzda referans verilen herhangi bir nesneye atayabilirsiniz. Buna karşılık, Python'da aynı sonuca sahip bir for döngüsü şöyle görünür:

i aralığında (0, 10):
(i) yazdır

Python'daki "aralık" işlevi, varsayılan adımı 1 olan bir sayı aralığı dizisi belirlemenize olanak tanır. Üçüncü bir argüman sağlayarak adım değerini değiştirebilirsiniz. “Aralık” işlevindeki ikinci argüman, durma koşulu eşiğini ayarlamak için kullanılır. Her iki kod örneği de aşağıdaki çıktıyı üretir:

0
1
2
3
4
5
6
7
8
9

Bu döngüler, sadece bir sayı dizisi oluşturmak ve bunları döngü ifadesinin içindeki bir mantıkla ilişkilendirmek istiyorsanız iyi çalışır. Ancak, bunlara bir tür izlenebilir sayı atamak için başka bir iç içe döngü kullanmanız veya yinelenebilir herhangi bir türde “verim” işlevini kullanmanız gerekebilir. "Enumerate" yöntemi, tek bir ifadede yinelenebilirlere dizin atamayı kolaylaştırır, böylece birden çok iç içe döngü çalıştırma ihtiyacını ortadan kaldırır. Bu kod örneğine bir göz atın:

sayılar = ["sıfır", "bir", "iki", "üç", "dört", "beş"]
numaralandırılmış_sayılar = numaralandır(sayılar)
dizin için, numaralandırılmış_sayılardaki öğe:
yazdır (dizin, öğe)

İlk ifade "numbers" adında yeni bir değişken tanımlar ve buna yinelenebilir (liste tipi) bir değişken atar. İkinci ifade, zorunlu bir argüman olarak yinelenebilir bir şey sağladığınız “enumerate” işlevinin kullanımını gösterir. Üçüncü ifade, "enumerated_numbers" değişkenini liste tipi bir nesneye dönüştürür. Varsayılan olarak, "numaralandır" işlevi yinelenebilir bir tür değil, "numaralandır" türünde bir nesne oluşturur, bu nedenle onu dönüştürmeniz gerekir. Yukarıda bahsedilen kod örneğini çalıştırdıktan sonra aşağıdaki çıktıyı almalısınız:

[(0, 'sıfır'), (1, 'bir'), (2, 'iki'), (3, 'üç'), (4, 'dört'), (5, 'beş')]

"Enumerate" işlevi, yinelenebilir bir türdeki her öğeye bir sayı atar ve eşleştirilmiş değerlere sahip demetler oluşturur. Varsayılan olarak, sayım sıfırdan başlar.

Artık yinelenebilir bir türdeki her öğeye bir sayı atadığınıza göre, iç içe ifadeler yazmadan kolayca döngüye girebilirsiniz:

sayılar = ["sıfır", "bir", "iki", "üç", "dört", "beş"]
numaralandırılmış_sayılar = numaralandır(sayılar)
dizin için, numaralandırılmış_sayılardaki öğe:
yazdır (dizin, öğe)

Yukarıda belirtilen kod örneği aşağıdaki çıktıyı üretecektir:

0 sıfır
1 bir
2 iki
3 üç
4 dört
5 beş

Aşağıdaki örnekte gösterildiği gibi satır içi "enumerate" işlevini kullanarak kodu kısaltabilirsiniz:

sayılar = ["sıfır", "bir", "iki", "üç", "dört", "beş"]
dizin için, numaralandırmadaki öğe (sayılar):
yazdır (dizin, öğe)

Numaralandırmayı Farklı Bir Başlangıç ​​Dizini ile Kullanma

"numaralandır" işlevi, bir başlangıç ​​dizini belirtebileceğiniz isteğe bağlı bir bağımsız değişken alır. Varsayılan olarak sıfırdır, ancak "start" argümanını kullanarak değiştirebilirsiniz:

sayılar = ["bir", "iki", "üç", "dört", "beş"]
dizin için, numaralandırmadaki öğe(sayılar, başlangıç=1):
yazdır (dizin, öğe)

İkinci ifadede, başlangıç ​​noktasını değiştirmek için “start=1” argümanı kullanılır. Yukarıda belirtilen kod örneğini çalıştırdıktan sonra aşağıdaki çıktıyı almalısınız:

1 bir
2 iki
3 üç
4 dört
5 beş

Adımlarla Dizin Atama

Bu makalenin ilk bölümünde, "C" dilindeki "for" döngüsünün sözdizimi, sonraki her sayım veya dizin arasındaki adımları tanımlayabileceğiniz yerde gösterilir. Python'daki "enumerate" işlevinde böyle bir argüman yoktur, bu nedenle sayımlar arasında bir adım belirleyemezsiniz. Numaralandırılmış “for” döngü bloğu içindeki adımları uygulamak için gerçekten kendi mantığınızı yazabilirsiniz. Ancak, minimum kod yazarak özel adımları uygulamanın bir yolu vardır. Aşağıdaki örnek, "zip" ve "range" işlevlerini kullanan adımların uygulanmasını göstermektedir:

sayılar = ["sıfır", "iki", "dört", "altı"]
dizin için, zip'teki öğe(aralık(0, 7, 2), sayılar):
yazdır (dizin, öğe)

"Zip" işlevi, iki veya daha fazla yinelenebilir öğeden aynı dizine sahip öğeleri alarak çiftler oluşturmanıza olanak tanır. Yani buradaki "zip" işlevi, "range(0, 7, 2)" işlevinden döndürülen yinelenebilir öğeden ve "sayılar" listesinden başka bir öğe alır ve ardından ikisini bir demet halinde eşleştirir. Nihai sonuç, "numaralandırma" işleviyle aynı bir uygulamadır, ancak "aralık(0, 7, 2)" işlevinde üçüncü bir bağımsız değişken olarak belirtilen özel adımlar (bu durumda 2). Yukarıda belirtilen kod örneğini çalıştırdıktan sonra aşağıdaki çıktıyı almalısınız:

0 sıfır
2 iki
4 dört
6 altı

Sonuç

Python'daki "enumerate" işlevi, yinelenebilir bir nesnedeki öğelere bir sayı dizisi atayarak kısa kod yazmanıza olanak tanır. Yinelenebilir bir tür içindeki öğelerin dizinini takip etmek istiyorsanız bu gerçekten yararlıdır. Yinelenebilir türleri özel adımlarla "numaralandırmak" istiyorsanız, son örnekte açıklanan "zip" işlevini kullanın.

Linux Oyuncuları için Faydalı Araçlar
Linux'ta oyun oynamayı seviyorsanız, oyun deneyimini geliştirmek için Wine, Lutris ve OBS Studio gibi uygulamaları ve yardımcı programları kullanmış o...
Daha Önce Bir Linux Sürümü Olmayan Linux için HD Remastered Oyunlar
Birçok oyun geliştiricisi ve yayıncısı, franchise'ın ömrünü uzatmak için eski oyunların HD remaster'ı ile geliyor, lütfen modern donanımla uyumluluk i...
Linux Oyunlarını Otomatikleştirmek için AutoKey Nasıl Kullanılır?
AutoKey, Linux ve X11 için Python 3, GTK ve Qt'de programlanmış bir masaüstü otomasyon aracıdır. Komut dosyası oluşturma ve MAKRO işlevselliğini kulla...