(Python) Döngüler. Sayaçlı döngü - için


Döngüler

"Merhaba" 10 kere. Ne yapmalıyız?
10 defa print("Merhaba") komutunu alıp yazabilirsiniz.
print("Merhaba")
print("Merhaba")
print("Merhaba")
print("Merhaba")
print("Merhaba")
print("Merhaba")
print("Merhaba")
print("Merhaba")
print("Merhaba")
print("Merhaba")

Peki ya 10 defaya değil de 20, 30, 40 defaya ihtiyacınız varsa? Ve eğer 200 kez? Bu durumda kopyalama çok uzun zaman alacaktır. Ve kullanıcının ekranda bazı bilgileri kaç kez görüntülemesi gerektiğini kendisinin seçmesi gerekiyorsa? 

Özel bir yapı, bu görevin üstesinden gelmemize yardımcı olacaktır, buna döngü
denir.  
Döngü - belirli bir komut dizisinin birkaç kez tekrarlandığı algoritmik bir yapıdır.< /div>
Çoğu programlama dilinde iki tür döngü vardır: değişkenli bir döngü (for) ve koşullu bir döngü (while)
İlk türden döngülerle tanışmaya başlayalım.
 

Bir değişkenle veya bilinen adım sayısıyla döngü (for için döngü)

Genellikle herhangi bir eylemin tekrar sayısını biliriz veya bildiğimiz verileri kullanarak tekrar sayısını hesaplayabiliriz. Bazı programlama dillerinde Rusça olarak yazılmış bir komut vardır.
REPEAT (tekrar_sayısı).

Bu durumda, belirli bir tekrar sayısı belirtebiliriz. 
Bu döngünün makine seviyesinde nasıl çalıştığını görmek ilginç:
1. Hafızada belirli bir hafıza hücresi tahsis edilir ve tekrar sayısı ona yazılır,
2. program döngü gövdesini bir kez çalıştırdığında, bu hücrenin (sayaç) içeriği bir azaltılır.
3. döngü yürütme, bu hücre sıfır olduğunda sona erer.

Python'da böyle bir yapı yoktur, ancak için vardır.
 
Hatırlamanız gerekiyor!
for döngü operatörünün genel biçimi aşağıdaki gibidir:
<sayım değişkeni>  içinde:
    # döngü gövdesi

1. Sayaç değişkeninin adı herhangi bir şey olabilir (genellikle i harfini kullanırlar)
2. Döngü gövdesi, döngü başlığına (for) sahip satıra göre sağa kaydırılarak yazılır. PEP8 standardı 4 boşluk kaydırır.
 
Şimdi, "Merhaba" kelimesinin çıktısını nasıl yazabileceğinize dair örnekler görelim. 10 kez.
 
Örnek 1
for i in range(10): # i değişkeni için aralıkta değişebilir (aralıkta)
  # 0 - 10 (10 dahil değildir)
    print("Merhaba") # print Merhaba
  değişkeni, döngünün tamamlanan yinelemelerinin (adımlarının) bir sayacıdır. Bu durumda, döngü i = 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 için çalışır. Bu tam olarak 10 defadır.
Aynı program farklı yazılabilir.
 
Örnek 2
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] içindeki i için:
    print("Merhaba")
Örnek 2'de, döngüye almamız gereken i değişkeninin tüm değerlerini listeliyoruz. Çok sayıda değer söz konusu olduğunda, yerleşik işlevi range() kullanmak daha uygundur.
 range() fonksiyonu tarafından oluşturulan değer dizisi sonludur. Döngü her zaman sona erecek. 

for

döngüsünün özellikleri Değerler sırasındaki adım nasıl değiştirilir ve sıfırdan başlamaz?  range() işlevi, varsayılan olarak, sonraki her sayının bir öncekinden 1 büyük olduğu bir dizi oluşturur. Başka bir girişte aralık işlevini kullanabilirsiniz.

İşlev girişinin genel biçimi aşağıdaki gibidir:
aralık([başlangıç], dur[, adım])
  • start: dizinin başlangıç ​​numarası.
  • stop: verilen sayıya kadar olan ancak bu sayıyı içermeyen sayıları üretir.
  • adım: dizideki (adım) her sayı arasındaki fark

Hatırlamak zorundasın!
  • Tüm parametreler tamsayı olmalıdır:
  • Parametrelerin her biri pozitif veya negatif olabilir.
  • aralık() (ve genel olarak Python) 0 dizinini temel alır. Bu, dizin listesinin 1'den değil 0'dan başladığı anlamına gelir.  İşlev tarafından oluşturulan son tamsayı  range() stop'a bağlıdır ancak onu içermez. Örneğin, aralık(0, 5) 5 hariç 0, 1, 2, 3, 4 tamsayılarını oluşturur.


Örnek 1
(10, 0, -1) aralığında i için:
    yazdır(i*i)
Program, 10'dan 1'e kadar olan doğal sayıların karelerini azalan sırada görüntüler.
  • 10: Dizideki ilk sayı.
  • 0: dizinin bitiş numarası (bu sayı hariç).
  • -1: adım


Örnek 2
aralıktaki i için (0, 101, 5):
    yazdır(ı)
Program, 0'dan 100'e kadar tüm sayıları 5'lik artışlarla görüntüler.
  • 0: Dizideki ilk sayı.
  • 101: dizinin bitiş numarası (bu sayı hariç).
  • 5: adım

N kez tekrarla

Şimdiye kadar yazdığımız for döngüsüne sahip tüm programlara evrensel denemez. Çünkü döngü gövdesinin tekrar sayısını kendimiz ayarlıyoruz. 
Peki ya tekrar sayısı başka bir değere bağlıysa? Örneğin, kullanıcının kendisi döngünün tekrar sayısını ayarlamak istiyor.
Bu durumda ne yapmalı?
Her şey çok basit. Sayısal başlangıç ​​ve bitiş değerleri yerine kullanıcı tarafından hesaplanabilen veya ayarlanabilen herhangi bir değişkeni kullanabiliriz.

Örneğin, N değişkeninin değerinin klavyeden girildiği 1 ile N arasındaki sayıların karelerini göstermemiz gerekir. kullanıcı.
Program şöyle görünecek:
N = int(input()) # klavyeden N girin
for i in range(1, N+1): # döngü: 1'den N'ye kadar tüm i'ler için  - i değişkeni
                           # sıralı olarak 1'den N'ye kadar değerler alacaktır
  print("kare", i, "=", i*i)  # sayının karesini yazdır

Döngüye girerken i = 1 atama ifadesi yürütülür ve ardından i değişkeni her adımda bir artırılır (i += 1). i <= N koşulu doğruyken döngü yürütülür. Döngü gövdesinde sadece çıktı deyimi belirtilen formata göre sayının kendisini ve karesini ekrana yazdırır.
Kare alma veya diğer küçük üsler için çarpmayı kullanmak daha iyidir.

Programı çalıştırın ve N değişkeninin farklı değerleri ile çalışmasının sonucunu görün.