Neden python 'başka' sonra ve döngüleri sırasında mı?
Bu yapıyı nasıl işlediğini anlıyorum:
for i in range(10):
print(i)
if i == 9:
print("Too big - I'm giving up!")
break;
else:
print("Completed successfully")
Ama anlamıyorum neden else
olarak kullanılır burada anahtar kelime, bu yana öneriyor kodu soru sadece çalışan for
engellemediği tam, tam tersi ne yapar! Düşünüyorum da nasıl olursa olsun, benim beyin else
blok for
deyimi sorunsuz bir şekilde devam edemez. Bana, continue
continuewith
daha mantıklı (ve benim gibi okumak için eğitmeye çalışıyorum) olur.
Python kodlama bu onların kafa (veya yüksek sesle, Eğer isterseniz) inşa okuyun nasıl merak ediyorum. Belki de böyle kod blokları daha kolay decipherable yapacak bir şey kaçırıyorum?
CEVAP
Bir ortak bir şey bulunana kadar çalışacak bir döngü için ve daha sonra döngü dışında kırmak için inşa. Sorun alakam sonu veya döngü sona erer neler olduğunu belirlemek gerekiyor. Bir yöntem, bana ikinci bir test döngüden çıkıldı nasıl olduğunu görmek için izin veren bayrak veya mağaza bir değişken oluşturmak için.
Bir liste arama ve Bayrak bir öğe bulunana kadar her öğe ve süreci durdurmak işleme gerek bu örneğin varsayalım. Eğer bayrak öğe eksikse bir istisna artırılmalıdır.
...Başka Python kullanarak inşa
...
for i in mylist:
if i == theflag:
break
process(i)
else:
raise ValueError("List argument missing terminal flag.)
...
Bu sözdizimsel şeker kullanmayan bir yöntem ile karşılaştırın:
...
flagfound = False
for i in mylist:
if i == the flag:
flagfound = True
break
process(i)
if not flagfound:
raise ValueError("List argument missing terminal flag.)
...
İlk durumda raise
sıkı çalışır döngü bağlıdır. İkinci olarak bağlayıcı değil, güçlü ve hatalara bakım sırasında ortaya çıkabilir.
Neden bazı fonksiyonlar&;__" ve i...
Neden Perl ile Python senaryomu yürütm...
Neden JSLint şikayet "Beklenmedik...
Neden &; başka"&; x sonra dönüş" n...
Neden Standart girdiden okuma satır Py...