15. Mendapatkan input — Solusi pekerjaan rumah
File solusi .py ada di
exercises/15/homework/solutions/.
Soal 1 — Sapa dengan nama
Soal. Minta dengan input(), baca nama,
sapa dengan tanda seru.
Cara berpikir. Dua baris: baca namanya (prompt
dilewatkan langsung ke input()), lalu cetak sapaannya.
Tanda seru ada di dalam string, setelah variablenya.
Solusi yang dikerjakan.
name = input("First name: ")
print(f"Hello, {name}!")Kesalahan umum.
- Lupa spasi di akhir prompt.
"First name:"merapatkan kursor ke titik dua;"First name: "memberi ruang.
Soal 2 — Jumlah dua angka
Soal. Baca dua angka; cetak
a + b = c.
Cara berpikir. Dua prompt, dua pembacaan,
masing-masing dibungkus dengan int(). Bangun outputnya
dengan f-string.
Solusi yang dikerjakan.
a = int(input("First number: "))
b = int(input("Second number: "))
c = a + b
print(f"{a} + {b} = {c}")Kesalahan umum.
- Melewatkan
int(). Nilainya tetap string, sehinggaa + bmenghasilkan concatenation string alih-alih penjumlahan:"3" + "4"adalah"34", bukan7. - Membungkus
int()di sekitar string prompt alih-alih hasil dariinput().int("First number: ")langsung memunculkanValueError.
Soal 3 — Tahun menuju pensiun
Soal. Hitung 65 - age dan cetak kalimat
dengan label.
Cara berpikir. Minta, baca, konversi, kurangi,
cetak. Perhatikan urutannya: 65 - age, bukan
age - 65.
Solusi yang dikerjakan.
age = int(input("Your current age: "))
years_left = 65 - age
print(f"You have {years_left} years until retirement.")Kesalahan umum.
- Melakukan
age - 65, yang mencetak negatif untuk semua orang di bawah 65. Pengurangan tidak komutatif — urutan penting.
Tantangan — BMI
Soal. Minta tinggi dan berat (desimal), hitung BMI, cetak ke satu tempat desimal.
Cara berpikir. Dua prompt, dua pembacaan, keduanya
melalui float() karena nilainya punya titik desimal.
weight / (height * height) menghasilkan float;
:.1f dalam f-string menampilkan satu digit setelah
desimal.
Solusi yang dikerjakan.
height = float(input("Height in metres (e.g. 1.78): "))
weight = float(input("Weight in kg (e.g. 72.5): "))
bmi = weight / (height * height)
print(f"BMI: {bmi:.1f}")Kesalahan umum.
- Menggunakan
int()alih-alihfloat(). Tinggi seperti1.78bukan integer;int("1.78")memunculkanValueError. - Lupa tanda kurung dalam
height * height. Tanpanya,weight / height * heightberjalan dari kiri ke kanan: bagi dengan tinggi, lalu kalikan lagi — tinggi saling menghilangkan dan kamu mendapatkan berat kembali. - Memasukkan tinggi dalam sentimeter (seperti
178) alih-alih meter (1.78). BMI menggunakan meter, seperti yang dikatakan prompt starter.
Selesai?
Semua bab Bagian 3 sudah selesai. Mini-project — Character Sheet — menggunakan semua hal dari bab 11 sampai 15.