В информатике цикл for используется для того, Aynı tür eylemi birçok kez yapmak. Örneğin, malların listeden birer birer çekilmesi, sayıların belirli bir aralıkta sıralanması ve her biri için ilgili komut dosyasının yürütülmesi.
For döngüsü, aksine, çoğu kez kullanılır. Her iki sürüm de tüm programlama dillerinde bulunur. Bazı SP'lerde sözdizimsel ve semantik olarak aynıdır.
Python'da, for döngüsü şunlardan oluşur:
C gibi dillerden farklı olarak, talimatlarküme parantez {} ile ayrılır. Bunu yapmak için durum bloğundan sonra ":" operatörünü kullanın ve döngünün gövdesinde tablolayın. Girinti olmadan, sekme kodu çalışmaz ve bir hata görünecektir.
Ek operatörler devam ettiğinden, devam etmeyi, yinelemeyi atlamayı, döngüyü bitirmeyi, yinelemeyi atlamayı, geçiş göstergelerini atlamayı unutmayın. Bazı if-else koşullarından sonra belirtilirler.
Bu döngü koleksiyonun tüm öğelerini yinelemek için kullanılır. Biçiminde ayarla
listedeki değişken için: ifade
C ++'dan bir foreach döngüsünü andırıyor
foreach (küme içindeki öğe) {};
"merhaba dünyasında" için:
yazdır (i * 2, son = "")
hlockllloo wwoorrlldd
Python'da, for döngüsü bir ortaktır - vücuttaki talimatlar, dizinin açık bir belirtisi olmaksızın listenin her üyesi için yürütülür. Talimatın yürütülmesi en uygun düzende gerçekleşir.
Değişken i her bir nesneye atandıkoleksiyonu. Liste öğeleri sayısal ve dize olabilir, ancak bir tamsayı türü olmalıdır. I değişkeninin altında çok boyutlu dizilerle çalışırken, iç içe diziler kastediyoruz.
list_of_lists = [["çekiç başı", "harika beyaz", "köpek balığı"], [0, 1, 2], [9.9, 8.8, 7.7]]
list_of_lists listesinde liste için:
yazdır (liste)
["çekiç başı", "harika beyaz", "köpek balığı"]
[0, 1, 2]
[9.9, 8.8, 7.7]
Yuvalanmış bir dizinin her öğesini görüntülemek için iç içe döngüler kullanmalısınız.
Operatör for döngüsünün bir bölümünü atlamanıza izin verir veBir sonraki yinelemeye git. Bu harici bir faktör oluştuğunda yapılır. İsteğe bağlı if bloğundan sonra Devam gösterilir, ancak koşulun kendisi ana ifadeden önceki döngü içindedir.
sayı = 0
(10) aralığındaki numara için:
sayı = sayı + 1
sayı == 5 ise:
devam # işte devam ifadesi
yazdır (str (sayı))
yazdır ("Son")
0 ile 10 arasındaki değerler listesindeki her sayıbaşlangıçta sıfıra eşit olan sayı değişkenini artırır. Sayı 5 değerini aldığında, döngü duracak ve bir sonraki yineleme başlayacaktır. Görünüşe göre:
1
2
3
4
6
7
8
9
10
uç
Operatör if koşulu ile birlikte kullanılır. Bu tasarım, bir faktör oluştuğunda çevrimi tamamen keser.
sayı = 0
(10) aralığındaki numara için:
sayı + = 1
sayı == 5 ise:
break # break
print ("Number =" + str (sayı))
print ("Döngü dışı")
Burada if ifadesi bir koşulu tanımlar: değişken sayısının değeri 5 ise döngü kesilir. Her yinelemede, ilk print () yöntemi yürütülür ve bir bildirim görüntülenir
Sayı = 5.
Döngü break deyimi ile durdurulduğunda, aşağıdaki print () yöntemi yürütülür.
Başka bir örnek, ikinci sayının birinciye bölünmeden olup olmadığını kontrol eder.
(2, 10) aralığında n için:
(2, n) aralığında x için:
n% x == 0 ise:
yazdır (n, "eşittir", x, "*", n // x)
mola
başka:
# loop, bir faktör bulamadan düştü
print (n, "asal bir sayıdır")
Bu durumda, iç içe bir döngü kullanılır.İlk olarak, 2'den 10'a kadar çok sayıda sayının tüm üyeleri n olarak kabul edilir. Her n için, 2'den n'ye kadar öğeler içeren yeni bir liste tanımlanır. Böylece, farklı uzunluklarda 8 dizimiz var. Elde edilen koleksiyonlardaki tüm elemanlar x değişkeni tarafından ayarlanır. Şimdi if koşulu n / x sonucunun bir tamsayı olup olmadığını kontrol eder. Değer doğruysa, döngü kesilir ve bir ileti görüntülenir. N / x kalanla bölünürse, başka bir mesaj görüntülenir.
Operatörün ek koşulları göz ardı etmesi gerekir.
sayı = 0
(10) aralığındaki numara için:
sayı + = 1
sayı == 5 ise:
pas
yazdır (str (sayı))
yazdır ("Son")
Program, sayı == 5 mevcut değilse koşulu gibi çalışır. Monitörde görünüyor
1
2
3
4
5
6
7
8
9
10
uç
Geçiş operatörünün yürütülmesi sırasındahiçbir şey olmuyor. Sadece sözdizimsel olarak gerekli olduğunda bir saplama olarak kullanılır. Örneğin, uygulanması gerekmeyen yöntemlerle yeni bir sınıf geliştirirken.
sınıf MyClass (nesne):
def meth_a (öz):
pas
def meth_b (öz):
"I" m meth_b "yazdır
Meth_a işlevinin henüz kendi talimatı yoktur. Ancak Python, def dışında sınıf dışında kod bloklarının boş olmamasını gerektirir. Aksi takdirde, bir hata mesajı görüntülenir.
Girinti Hatası: girintili bir blok bekleniyordu.
Bunun yerine, geçiş belirtebilirsiniz.
class CompileError (İstisna):
pas
Pass deyimini kullanmanın bir diğer amacı, açıkça hiçbir şey yapmamaktır.
Bu for ve pass döngüsünün başka bir örneğinde görülebilir:
t (25) aralığında:
yapmak (t)
t == 20 ise:
pas
Bu kod snippet'i liste öğeleri üzerinde yinelenir.Bunlar t değişkeni olarak kabul edilir. Her yinelemede bazı do () işlevi yürütülür. Belli bir değerde hiçbir şeyin olmasını istemiyorsanız, geçiş belirtilir. Örneğin, do işlevi 24 kez bir mesaj görüntüler ve t = 20'deki talimatı atlar.
For döngüsü olan programlar, bazı değerler dizisi oluşturmaya ve bunları değişkenlere atamaya yardımcı olur.
Aşağıdaki kayıt mümkündür:
[0, 1, 2, 3, 4, 5] 'deki i için:
baskı i ** 2
Listede daha fazla öğe varsa, ayrı bir dizi oluşturmak daha mantıklı olur.
dizi = [1, 2, 3, 4, 5, 6, 7, 8, 9]
dizide için:
baskı ben
Gibi listeler oluşturmak için
dizi = [1, 2, 3, 4, 5, 6, 7, 8, 9]
, Python'da bir range () işlevi vardır.Parametre alanındaki range () yöntemi üç bağımsız değişken alır: başlangıç değeri, bitiş, adım. Listenin yalnızca son öğesi gereklidir. Böylece, aralık (5) dizinin 0 ile 5 arasında sayılar içerdiği anlamına gelir. Bir adım belirtirseniz, ilk öğeyi belirlemeniz gerekir.
aralık (0, 10, 2)
Biz:
0, 2, 4, 6, 8, 10
Bu tür listelerle çalışmak sayısalya benzer. Örneğin, bir liste var
renkler = ["kırmızı", "yeşil", "mavi", "sarı"]
C'ye alışkın olan geliştiriciler aşağıdaki işlevi yazabilir.
i aralığında (len (renkler)):
baskı renkleri [i]
Kod hatasız olarak yürütülür, ancak for döngüsünün daha doğru kullanımı şöyle görünür:
renkler = ["kırmızı", "yeşil", "mavi", "sarı"]
renkler için renk:
baskı rengi
Listeden sondan sıfıra gitmeniz gerekiyorsa, ters () işlevi kullanılır.
renkler = ["kırmızı", "yeşil", "mavi", "sarı"]
ters renk (renkler) için:
baskı rengi
Aşağıdaki giriş hatalı. Yine, bu C dilinden geldi.
Python, dizi indeksleriyle çalışmak için yerleşik enumerate () işlevlerine sahiptir. Python'da döngüler için yararlıdırlar.
Argüman bir değerler dizisidir. Enumerate () işlevi, aşağıdaki kodun kullanımını kolaylaştırır:
aralıktaki i için (len (L)):
madde = L [i]
# ... öğeye göre bazı sonuçları hesapla ...
Burada len () yöntemi kullanılmıştır. Bu durumda, bir dizi L öğesinin sayısını döndürür. Birçok öğe range () işlevine argüman olarak alınır. Böylece [0, ... n] listesini tanımlıyoruz.
L [i] kullanarak L dizisinin her bir elemanına erişebiliriz.
L [0], L [1], L [2] vb.
Enumerate () işlevi, sayaç değişkeni b'nin başlatılması gereğini ortadan kaldırır ve
sayaç için, numaralandırma (L) değeri:
print (“index:“ counter, “value:“ value)
Enumerate () öğesi bir sayaç öğesi çifti döndürür, böylece for döngüsü işleciyle iki değişken belirtilir.
Yöntem olarak kullanılan items () ve iteritems () işlevleri benzerdir.
d.items ()
d.iteritems ()
Birden çok listenin üyelerini kullanmanız gerektiğinde, zip () işlevi kullanılır.
A listesini ve B listesini alır, iç içe tuples içeren tek bir zip nesnesi haline getirir. Yeni nesnenin her bir elemanı A ve B listelerinin üyelerini birbirine bağlar ve bunları dizine göre sıralar.
zip_object [1] = [A [1], B [1]];
Giriş zip () 4 diziyse,zip dizi öğelerinin her biri 4 öğe içerir. Farklı uzunluklarda paketleme dizileri hataya neden olmaz. Yeni nesneye yalnızca bir çift değeri içeren öğeler yerleştirilir.
Demetteki her öğeyi, çift içermeyen bile olsa, zip_longest () kullanılır.
listesi (itertools.zip_longest ((1,2,3), [4]))
# [(1, 4), (2, Hiçbiri), (3, Hiçbiri)]
Yalnızca bir dizinin öğelerinde gezinmek değil, onu değiştirmek istediğinizde, keys () işlevi kullanılır.
Yöntem, kullanılabilir sözlük anahtarlarının listesini çoğaltır ve döndürür.
d.keys () içindeki k için:
k.startswith ("R") ise:
del d [k]
Bir dizi d var. Öğeleri keys () yöntemi kullanılarak kopyalanır. Her eleman k değişkenidir. Startwith kullanılarak işlenir; tesadüf üzerine eleman ana diziden silinir.
startswith (), satırın belirtilen önekle başlayıp başlamadığını kontrol eden bir bayrak döndürür. Fonksiyonun üç argümanı vardır: önek, başlangıç, bitiş.
str.startswith (önek [, başlangıç [, bitiş]]) -> bool
Yalnızca ilki gereklidir - önek. Bir dize veya bir demet olabilir.
my_str.startswith ("değer")
veya
my_str.startswith ((‘değer1’, ‘değer2’))
Parametre alanında birkaç satır belirtmeniz gerekiyorsa, öğeler ek parantez () içine alınır.
Başlangıç bağımsız değişkeni, öğenin dizinine işaret eder.geri sayımı başlar. Pozitif ve negatif değerler desteklenir. Start = -x ise, arama, endeksi x olan bir öğeyle başlar. End parametresi, satır analizinin durduğu son karakteri gösterir. Ayrıca negatif değerleri de destekler. End = -x ile listenin son üyesi baştan x indeksidir.
Startswith () işlevine benzer şekilde, endswith () işlevi de çalışır. Satırın belirtilen postfix ile bitip bitmediğini kontrol eder. Üç parametre sonekine sahiptir, start, end, ayrıca bir boolean değeri döndürür.
İki dizinin elemanlarını bağlamanız gerekiyorsa,en hızlı yol bir demet dikte yöntemi kullanmaktır (izip (dizi 1, dizi 1)). Bu durumda, elemanlar art arda sıralı olarak değil, formda düzenlenir:
"Dizi öğesi 1": "dizi öğesi 2"
isimler = ["raymond", "rachel", "matthew"]
renkler = ["kırmızı", "yeşil", "mavi"]
d = dict (zip (adlar, renkler))
# {"matthew": "mavi", "rachel": "yeşil", "raymond": "kırmızı"}
Dict () yöntemi, içinde bir sözlük oluştururDeğerler yukarıdaki şekilde “:” ile yerleştirilir. Dizi 2 öğesi ana değer olarak kullanılır, onu çağırmak için dizine (dizi 1 değeri) erişmeniz gerekir.
d [‘raymond’]
# kırmızı
Bir listenin kaç öğeden oluştuğunu bulmak için get () işlevi kullanılır.
d.get (anahtar, varsayılan = Yok)
Bu yöntem d sözlüğünde anahtar olup olmadığını kontrol eder, [index] dizin anahtarını döndürür.
renkler = ["kırmızı", "yeşil", "kırmızı", "mavi", "yeşil", "kırmızı"]
d = {}
renkler için renk:
d [renk] = d.get (renk, 0) + 1
Get () yöntemi, aşağıdaki kodun daha kullanışlı ve daha hızlı bir analogudur.
renkler = ["kırmızı", "yeşil", "kırmızı", "mavi", "yeşil", "kırmızı"]
d = {}
renkler için renk:
renk d değilse:
d [renk] = 0
d [renk] + = 1
Bunlar for döngüsünün ana örnekleri ve olası hatalarıdır.