10. Membaca pesan error — Solusi pekerjaan rumah

File solusi .py ada di exercises/10/homework/solutions/. Soal-soal ini melatih loop: jalankan, baca error pertama, perbaiki satu hal, jalankan lagi.

Soal 1 — Namai error-nya

Soal. Identifikasi tipe error, lalu perbaiki.

Cara memikirkannya. Jalankan file, baca pesannya, dan cocokkan dengan salah satu dari empat tipe: unterminated string literal, NameError, IndentationError, atau missing colon.

Solusi yang dikerjakan. Baris starter-nya adalah:

print("Hello, " + player_name)

tanpa player_name yang didefinisikan. Error-nya adalah NameError: name 'player_name' is not defined — variable tersebut tidak punya nilai. Sebuah perbaikan:

player_name = "Keiko"
print("Hello, " + player_name)
# error type: NameError

Soal 2 — Perbaiki tanda kutipnya

Soal. Perbaiki unterminated string literal.

Solusi yang dikerjakan.

print("A wizard is never late.")

Satu-satunya perubahan adalah penutup " yang hilang sebelum ).

Kesalahan umum.

  • Menambahkan tanda kutip setelah ). Tanda kutip penutup ada di akhir teks, sebelum tanda kurung penutup.

Soal 3 — Perbaiki typo-nya

Soal. Nama function yang salah eja menyebabkan NameError.

Solusi yang dikerjakan. Starter-nya punya prnt("Fixed!"). Pesannya menyebut pelakunya: name 'prnt' is not defined. Perbaiki ejaannya:

print("Fixed!")

Kesalahan umum.

  • "Memperbaiki" dengan menciptakan nama lain. Python hanya mengenal nama-nama yang dikenalnya. Ketika pesannya mengatakan 'prnt', perbaikannya hampir selalu function yang sebenarnya dieja dengan benar — print.

Tantangan — Tiga sekaligus

Soal. Tiga kesalahan, masing-masing satu jenis, diperbaiki satu per satu.

Cara memikirkannya. Jalankan. Error pertama adalah yang pertama muncul dalam file. Perbaiki. Jalankan lagi — error berikutnya muncul. Perbaiki. Jalankan lagi untuk yang terakhir. Loop, bekerja sebagaimana mestinya.

Solusi yang dikerjakan.

print("Starting up")
print("Working")
print("done")

Starter-nya punya tanda kutip penutup yang hilang di baris satu, prnt di baris dua, dan indentasi tak terduga di baris tiga. Diperbaiki dalam tiga langkah, program mencetak:

Starting up
Working
done

Kesalahan umum.

  • Memperbaiki ketiganya sekaligus dan kehilangan jejak perubahan mana yang berhasil. Satu error, satu perbaikan, jalankan lagi — bahkan ketika kamu pikir kamu melihat semuanya.

Selesai?

Itulah akhir dari Bagian 2. Kamu bisa menginstall dan menjalankan Python, mencetak tepat apa yang kamu inginkan, memberi comment pada kode, dan membaca error Python. Mini-project Bagian 2 — ASCII Name Banner — memanfaatkan kemampuan print-mu untuk membangun gambar dari teks. Lalu Bagian 3 menggali lebih dalam tentang variable, string, angka, dan input.