20. Pola loop — Solusi Pekerjaan Rumah

File solusi .py ada di exercises/20/homework/solutions/.

Soal 1 — Faktorial

Soal. Kalikan 1 sampai 5 bersama-sama.

Cara memikirkannya. Akumulasi, tapi dengan * bukan +. Mulai produk dari 1 — mulai dari 0 dan jawabannya adalah 0, karena apa pun dikali nol adalah nol.

Solusi.

product = 1
for i in range(1, 6):
    product = product * i
print(product)     # 120

Soal 2 — Hitung kelipatan

Soal. Hitung angka dari 1 sampai 50 yang habis dibagi 7.

Solusi.

hits = 0
for i in range(1, 51):
    if i % 7 == 0:
        hits = hits + 1
print(hits)        # 7   (7, 14, 21, 28, 35, 42, 49)

Soal 3 — Kuadrat besar pertama

Soal. Temukan angka pertama yang kuadratnya lebih dari 200.

Solusi.

first = None
for i in range(1, 101):
    if i * i > 200:
        first = i
        break
print(first)       # 15   (14×14 = 196, 15×15 = 225)

Kesalahan umum.

  • Melupakan break, sehingga loop terus berjalan dan first mendarat di kecocokan terakhir, bukan yang pertama.

Tantangan — Statistik rentang dalam satu kali jalan

Soal. Total, hitungan genap, dan penanda habis-dibagi-9 dari satu loop.

Solusi.

total = 0
evens = 0
has_nine = False

for i in range(1, 21):
    total = total + i
    if i % 2 == 0:
        evens = evens + 1
    if i % 9 == 0:
        has_nine = True

print("total", total)              # 210
print("evens", evens)              # 10
print("divisible by 9", has_nine)  # True   (9 and 18)

Kesalahan umum.

  • Menulis tiga loop terpisah untuk rentang yang sama. Satu kali jalan mengerjakan ketiga pekerjaan — itulah mengapa kamu belajar mengenali pola-polanya.

Selesai?

Itu mengakhiri Bagian 4. Kamu bisa membuat cabang dengan if, bernalar tentang kebenaran dengan and/or/not, mengulang dengan setiap jenis loop, menyarangkan loop untuk grid, dan memilih pola loop yang tepat langsung. Bagian 4 memiliki dua proyek mini untuk menyatukan semuanya: Permainan Tebak Angka dan Rock-Paper-Scissors.