Pelajaran modul (3/4)
istirahat, lanjutkan dan lainnya dalam loop
Di dalam satu lingkaran (baik for dan while) Anda dapat mengubah aliran normal dengan
tiga konstruksi:
break— segera keluar dari loop.continue— melewati bagian tubuh lainnya dan melompat ke iterasi berikutnya.else(pada loop) — dieksekusi ketika loop berakhir tanpabreak.
break
for n in [3, 7, 11, 4, 9]:
if n % 2 == 0:
primo_pari = n
break
primo_pari # 4break menghentikan perulangan sesegera mungkin. Apa pun setelah break di
badan iterasi saat ini TIDAK dijalankan.
continue
risultati = []
for n in range(1, 11):
if n % 2 == 0:
continue # skip evens
risultati.append(n * n)
risultati # [1, 9, 25, 49, 81]Pikirkan continue sebagai "lanjutkan ke iterasi berikutnya". Ini digunakan untuk memfilter item
tanpa menambahkan satu tingkat lekukan lagi.
else pada loop (idiom Python)
Keunikan Python: loop juga dapat memiliki else, dieksekusi hanya jika
loop dihentikan secara alami (tanpa break). Ini sempurna untuk pencarian:
target = 7
for n in [2, 4, 6, 8]:
if n == target:
trovato = True
break
else:
trovato = False
trovato # FalseBacalah sebagai: "untuk setiap n dalam daftar; jika Anda mengambil cabang break, lewati
yang lain; jika tidak, jalankan yang lain".
Loop bersarang: break keluar hanya yang paling dalam
for x in range(3):
for y in range(3):
if x == y == 1:
break
print(x, y)break hanya keluar dari for y, bukan for x. Untuk keluar dari keduanya Anda harus menggunakan a
bendera atau fungsi + return.
Konstruksi loop...else yang tidak biasa
Dalam Python, loop for dan while dapat menampilkan klausa else opsional. Blok else dieksekusi hanya jika loop selesai secara normal (yaitu tanpa menemui pernyataan break). Ini sangat membantu untuk algoritma pencarian (misalnya "mencari suatu elemen: jika ditemukan, hancurkan; jika tidak, laporkan bahwa elemen tersebut tidak ditemukan").
Cobalah sendiri
Diberikan daftar `angka = [10, 15, 20, 25, 30, 35]`, carilah bilangan pertama yang habis dibagi 7 dan tetapkan ke `hasil`. Jika tidak ada, tetapkan -1.
Tunjukkan petunjuk
35 adalah angka pertama (dan satu-satunya) yang habis dibagi 7 dalam daftar.
Solusi tersedia setelah 3 upaya
Tinjau latihan
Buat daftar `angka_ganjil` dengan angka ganjil dari 1 hingga 20 (inklusif) menggunakan perulangan for pada rentang (1, 21) dan terus lewati angka genap.
Tunjukkan petunjuk
Jika n genap, lanjutkan; jika tidak, tambahkan.
Solusi tersedia setelah 3 upaya
Tantangan tambahan
Given the list `numbers = [7, 11, 14, 21, 25]`, write a `for` loop to find the first number that is divisible by 7 and also strictly greater than 10. When you find it, store it in `found` and exit the loop using `break`. Finally, evaluate `found`.
Tunjukkan petunjuk
Inside the loop, check if num % 7 == 0 and num > 10:, assign it to found and trigger break.
Solusi tersedia setelah 3 upaya