Bagaimana saya bisa menghentikan perulangan While?
Saya menulis sebuah while loop
dalam sebuah fungsi, tetapi tidak tahu bagaimana cara menghentikannya. Ketika tidak memenuhi kondisi akhir, perulangan hanya berjalan selamanya. Bagaimana saya bisa menghentikannya?
def determine_period(universe_array):
period=0
tmp=universe_array
while True:
tmp=apply_rules(tmp)#aplly_rules is a another function
period+=1
if numpy.array_equal(tmp,universe_array) is True:
break #i want the loop to stop and return 0 if the
#period is bigger than 12
if period>12: #i wrote this line to stop it..but seems it
#doesnt work....help..
return 0
else:
return period
12
3
cukup indentasi kode Anda dengan benar:
Anda perlu memahami bahwa pernyataan
break
dalam contoh Anda akan keluar dari infinite loop yang telah Anda buat denganwhile True
. Jadi ketika kondisi break adalah True, program akan keluar dari infinite loop dan melanjutkan ke blok indentasi berikutnya. Karena tidak ada blok berikut dalam kode Anda, fungsi berakhir dan tidak mengembalikan apapun. Jadi saya telah memperbaiki kode Anda dengan mengganti pernyataanbreak
dengan pernyataanreturn
.Mengikuti ide Anda untuk menggunakan infinite loop, ini adalah cara terbaik untuk menulisnya:
Operator
is
dalam Python mungkin tidak melakukan apa yang Anda harapkan. Bukannya seperti ini:Saya akan menuliskannya seperti ini:
Operator
adalah
menguji identitas objek, yang merupakan sesuatu yang sangat berbeda dari kesetaraan.