/ / For döngüsü: örnekler ve olası hatalar

Döngü için: örnekler ve olası hatalar

В информатике цикл 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:

  • ifadesi için;
  • atanan değişkenin adı;
  • işlenmiş liste;
  • vücut fonksiyonları ve ek operatörler.

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.

Döngü için

Bu döngü koleksiyonun tüm öğelerini yinelemek için kullanılır. Biçiminde ayarla

listedeki değişken için: ifade

Döngü düzeni

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.

sürdürmek

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ç

mola

Operatör if koşulu ile birlikte kullanılır. Bu tasarım, bir faktör oluştuğunda çevrimi tamamen keser.

Döngü iptali ifadesi
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.

Geçiş

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.

diziler

For döngüsü olan programlar, bazı değerler dizisi oluşturmaya ve bunları değişkenlere atamaya yardımcı olur.

Diziler ve Döngü

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

Satır Listeleri

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
Dizi oluşturma

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.

Listeler ve Dizinler

Python, dizi indeksleriyle çalışmak için yerleşik enumerate () işlevlerine sahiptir. Python'da döngüler için yararlıdırlar.

Diziler ve Dizin

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 ()

İki liste

Birden çok listenin üyelerini kullanmanız gerektiğinde, zip () işlevi kullanılır.

Dizi birleştirme

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)]

Anahtar Sıralama

Yalnızca bir dizinin öğelerinde gezinmek değil, onu değiştirmek istediğinizde, keys () işlevi kullanılır.

Anahtar değerdir

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.

Listeleri Birleştirme

İ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ı

Üye listesini say

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.

sevdim:
0
Popüler Gönderiler
Manevi gelişim
gıda
y