18. Loop
Cara lain untuk menghindari pengulangan diri sendiri adalah
loop: sebuah blok kode yang berjalan berulang-ulang.
Python memiliki dua bentuk loop utama — while dan
for — ditambah break untuk berhenti lebih
awal. Semua dibahas di sini.
while — ulangi
selama kondisi benar
while adalah loop yang paling umum. Ia memeriksa sebuah
kondisi, menjalankan blok jika benar, lalu memeriksa lagi — berulang
sampai kondisinya salah.
count = 10
while count > 0:
print(count)
count = count - 1
print("Blast off!")Urutan eksekusi:
- Periksa
count > 0. Nilainya10, jadi True. - Cetak
10, setelcountke9. - Kembali ke langkah 1.
countadalah9, masih True. Cetak, kurangi. - Ulangi sampai
countadalah0. Kondisi gagal, loop keluar, danprint("Blast off!")berjalan sekali.
Di dalam isi loop, ubah nilai yang bergantung pada kondisi, atau loop tidak akan pernah berakhir. Infinite loop mengunci terminal. Hentikan dengan Ctrl + C.
for —
ulangi sejumlah kali yang diketahui
Loop for adalah alat yang tepat ketika kamu tahu berapa
kali harus mengulang, atau ketika kamu ingin melangkah melalui sebuah
urutan. Bentuknya menggunakan range():
for i in range(1, 6):
print(i)Output:
1
2
3
4
5
range(start, stop) menghasilkan angka dari
start sampai — tapi tidak termasuk —
stop. Jadi range(1, 6) memberikan
1, 2, 3, 4, 5. Ini adalah salah satu kejutan pertama dalam
Python: nilai akhir tidak termasuk.
Untuk loop dari 1 sampai 10, tulis range(1, 11).
Sebuah langkah
Argumen ketiga ke range() adalah
langkah — seberapa banyak counter berubah setiap
putaran. Defaultnya adalah 1; ubah untuk melewati atau
menghitung mundur:
for i in range(0, 101, 10): # 0, 10, 20, ... 100
print(i, end=" ")
print() # a blank line at the end
for i in range(10, 0, -1): # 10, 9, 8, ... 1
print(i, end=" ")
print()Langkah membutuhkan tanda yang tepat — positif ke atas,
negatif ke bawah. Langkah 0 menimbulkan
ValueError.
print(i, end=" ") memberitahu Python untuk mencetak
spasi setelah setiap nilai daripada baris baru. print()
biasa di akhir memulai baris baru.
Buka exercises/18/01-for-table.py. Program ini mencetak
tabel perkalian 7, dari 7 * 1 sampai 7 * 10.
Ubah untuk mencetak tabel angka lain.
while True: dengan
break
Loop apa pun bisa dipotong lebih awal dengan break, yang
langsung melompat ke apa pun yang datang setelah loop. Loop
while True: tidak memiliki jalan keluar bawaan;
satu-satunya jalan keluar adalah break:
n = 1
while True:
if n * n > 100:
break
n = n + 1
print("First number whose square is over 100 is", n)Gunakan while True: ketika pengujian keluar terlalu
rumit untuk satu perbandingan di bagian atas.
Berjalan
setidaknya sekali dengan while True:
Terkadang kamu perlu isi loop berjalan setidaknya sekali sebelum
memeriksa kondisi. Gunakan while True: dan
break di akhir:
# runs at least once, stops when count > 5
count = 1
while True:
print(count)
count = count + 1
if count > 5:
breakbreak di bagian bawah keluar segera setelah kondisi
terpenuhi.
Pekerjaan Rumah
Soal 1 — Hitung sampai 20
Buka exercises/18/homework/01-count-to-20.py. Gunakan
loop while untuk mencetak 1 sampai 20, masing-masing di
baris tersendiri.
Soal 2 — Tabel perkalian 7
Buka exercises/18/homework/02-mult-table-7.py. Gunakan
loop for dengan range() untuk mencetak tabel
perkalian 7, dari 7 * 1 sampai 7 * 12, dalam
bentuk ini:
7 * 1 = 7
7 * 2 = 14
...
7 * 12 = 84
Soal 3 — Berhenti di ambang batas
Buka exercises/18/homework/03-stop-at-threshold.py. Loop
dari 1, tambahkan setiap angka ke total yang berjalan. Berhenti setelah
total melebihi 100, lalu cetak total dan nilai counter saat itu.
Tantangan — Jumlah 1..N
Buka exercises/18/homework/04-sum-1-to-n.py. Minta
bilangan bulat positif n. Hitung
1 + 2 + 3 + ... + n dengan loop for dan total
berjalan. Cetak:
Sum from 1 to N is S
Lalu cetak rumus n * (n + 1) // 2 di baris berikutnya —
jawaban bentuk tertutup. Keduanya harus sama.
Buntu atau sudah selesai? Buka halaman solusi pekerjaan rumah.