Perulangan for & range
Mengulang pekerjaan dengan for, range, enumerate, dan zip.
for: menelusuri koleksi
buah = ["apel", "jeruk", "mangga"]
for b in buah:
print(b)
for di Python menelusuri apa pun yang bisa diulang (iterable): list, string, tuple, dict, range, file.
for huruf in "Py":
print(huruf) # P lalu y
range(): deretan angka
range(5) # 0, 1, 2, 3, 4
range(2, 6) # 2, 3, 4, 5
range(0, 10, 3) # 0, 3, 6, 9
range(5, 0, -1) # 5, 4, 3, 2, 1
range berhenti sebelum angka akhir, dan tidak membuat semua angka di memori sekaligus (hemat).
for i in range(1, 6):
print(i)
Menjumlahkan dengan loop
total = 0
for n in range(1, 11):
total += n
print(total) # 55
(Ada juga sum(range(1, 11)).)
enumerate: index + nilai
for idx, b in enumerate(buah, start=1):
print(idx, b) # 1 apel, 2 jeruk, ...
zip: menelusuri dua list bersamaan
nama = ["Ani", "Budi"]
nilai = [90, 80]
for n, v in zip(nama, nilai):
print(n, v)
break, continue, dan else pada loop
for n in range(1, 10):
if n == 3:
continue # lompat ke putaran berikutnya
if n == 6:
break # berhenti total
print(n) # 1 2 4 5
Loop juga boleh punya else yang dijalankan bila loop selesai tanpa break — berguna untuk pencarian.
Loop bersarang
for i in range(1, 4):
for j in range(1, 4):
print(i * j, end=" ")
print()
Jangan memodifikasi list saat menelusurinya
Menghapus elemen dari list yang sedang di-loop menyebabkan elemen terlewat. Buat list baru atau telusuri salinan (for x in lst[:]).