Lompati ke konten utama
Modul 2 · Pelajaran 1 dari 45/36 dalam kursus~10 min
Pelajaran modul (1/4)

untuk loop dan rentang

Perulangan for dengan Python digunakan untuk mengulangi urutan item: daftar, string, rentang, dict… apa pun yang "dapat diubah".

Python
parole = ["ciao", "mondo", "!"]
for p in parole:
    print(p)
# ciao
# mondo
# !

Polanya selalu sama: for <variable> in <iterable>: diikuti oleh blok indentasi yang akan dieksekusi satu kali untuk setiap item.

range(...): menghasilkan interval bilangan bulat

range menghasilkan barisan bilangan bulat yang malas. Tiga bentuk:

Python
range(5)         # 0, 1, 2, 3, 4
range(2, 6)      # 2, 3, 4, 5
range(0, 10, 2)  # 0, 2, 4, 6, 8     (step)
range(5, 0, -1)  # 5, 4, 3, 2, 1     (negative step)

range eksklusif di sisi kanan, seperti slice. Ini adalah objek malas: ia tidak mengalokasikan memori untuk semua angka, ia menghasilkannya satu per satu.

Python
totale = 0
for i in range(1, 11):
    totale = totale + i
totale  # 55  (1+2+...+10)

Iterasi dengan indeks: enumerate

Saat Anda membutuhkan item dan indeksnya bersama, gunakan enumerate:

Python
parole = ["ciao", "mondo", "!"]
for i, p in enumerate(parole):
    print(i, p)
# 0 ciao
# 1 mondo
# 2 !

enumerate menghasilkan (index, value) pasangan yang kami tetapkan langsung ke dua variabel melalui tuple unpacking (kita akan melihatnya di modul yang didedikasikan untuk struktur data).

Mengulangi dua urutan secara paralel: zip

Python
nomi = ["Ada", "Linus", "Grace"]
anni = [36, 54, 79]
for n, a in zip(nomi, anni):
    print(f"{n} ha {a} anni")

zip berhenti pada urutan terpendek.

range() dan kemalasan Python

Dengan Python, fungsi range() tidak mengalokasikan daftar sebenarnya di memori: fungsi ini mengembalikan generator malas yang menghasilkan angka satu per satu sesuai permintaan (misalnya, dalam perulangan for). Hal ini memungkinkan iterasi jutaan bilangan bulat tanpa membuat RAM membengkak. Untuk memeriksa nilai rentang sebagai daftar, Anda dapat mentransmisikannya secara eksplisit dengan list(range(5)).

Cobalah sendiri

Latihan#python.m2.l1.e1
Upaya: 0Memuat…

Hitung jumlah angka dari 1 hingga 100 (inklusif) menggunakan perulangan for pada rentang(...), tetapkan ke `total` dan evaluasi.

Memuat editor…
Tunjukkan petunjuk

range(1, 101) menghasilkan 1, 2, ..., 100 (eksklusif di sebelah kanan).

Solusi tersedia setelah 3 upaya

Tinjau latihan

Latihan#python.m2.l1.e2
Upaya: 0Memuat…

Mengingat daftar `kata = ['uno', 'due', 'tre']`, buatlah daftar `pasangan` string seperti '0:uno', '1:due', '2:tre' menggunakan enumerate. Evaluasi `pasangan`.

Memuat editor…
Tunjukkan petunjuk

enumerate(words) mengembalikan (indeks, nilai) pada setiap iterasi.

Solusi tersedia setelah 3 upaya

Tantangan tambahan

Latihan#python.m2.l1.e3
Upaya: 0Memuat…

Calculate the sum of all even numbers from 2 to 20 inclusive using a `for` loop over a `range`. Store the final sum in `even_sum` and evaluate it.

Memuat editor…
Tunjukkan petunjuk

Gunakan range(2, 21, 2) untuk mengulangi hanya bilangan bulat genap dari 2 hingga 20.

Solusi tersedia setelah 3 upaya