15. Mendapatkan input
Sejauh ini kamu menulis sendiri setiap nilai: bisa diprediksi, tapi
tidak interaktif. Bab ini memperkenalkan input(), yang
menunggu pengguna mengetik ke terminal.
input() — membaca satu
baris
input(prompt) mencetak prompt opsional, lalu menunggu
pengguna mengetik sebuah baris dan menekan Enter. Ia
mengembalikan apapun yang diketik sebagai string, tanpa
baris baru.
name = input("What is your name? ")
print("Hello, " + name)Jalankan. Ia mencetak pertanyaan di baris yang sama dengan kursor, menunggu namamu dan Enter, mencetak salam, lalu keluar.
Buka exercises/15/01-read-name.py dan jalankan dua kali
dengan nama yang berbeda. Perhatikan sapaan berubah mengikutinya.
Prompt berada di baris yang sama
input() Python meletakkan prompt dan kursor pengguna di
baris yang sama secara otomatis. Kamu tidak perlu fungsi terpisah untuk
ini. Teks yang kamu lewatkan ke input() adalah
promptnya:
name = input("What is your name? ")
print(f"Hello, {name}")Output:
What is your name? Keiko
Hello, Keiko
Membaca angka
input() selalu mengembalikan string,
bahkan untuk digit. Untuk melakukan matematika, bungkus dengan
int() untuk bilangan bulat atau float() untuk
desimal:
text = input("Enter a number: ")
n = int(text)
print(f"Twice that is {n * 2}")Dua langkah (baca, lalu konversi) bisa ditulis dalam satu baris:
n = int(input("Enter a number: "))
print(f"Twice that is {n * 2}")Pemanggilan dalam dijalankan terlebih dahulu dan mengembalikan string; yang luar mengubahnya menjadi integer.
Jika pengguna mengetik sesuatu yang bukan angka, int()
memunculkan ValueError dan program crash. Kamu akan
memperbaiki ini di bab selanjutnya menggunakan
try/except. Untuk sekarang, cukup ketik angka
ketika program memintanya.
Membaca beberapa nilai
Untuk membaca beberapa nilai, panggil input() sekali per
nilai:
a = int(input("First number: "))
b = int(input("Second number: "))
print(f"Sum: {a + b}")Setiap pemanggilan berhenti dan menunggu secara terpisah. Program tidak melanjutkan ke baris berikutnya sampai Enter ditekan.
Pekerjaan Rumah
Soal 1 — Sapa dengan nama
Buka exercises/15/homework/01-greet-by-name.py. Minta
nama depan dengan input(), baca, lalu cetak
Hello, <name>!. Tanda seru adalah bagian dari
outputnya.
Soal 2 — Jumlah dua angka
Buka exercises/15/homework/02-sum-of-two.py. Minta dua
angka (prompt terpisah), konversi masing-masing dengan
int(), lalu cetak jumlahnya seperti ini:
a + b = c
di mana a, b, c adalah nilai
sebenarnya.
Soal 3 — Tahun menuju pensiun
Buka exercises/15/homework/03-retirement.py. Tanyakan
usia pengguna dan hitung sisa tahun sampai usia 65. Cetak:
You have N years until retirement.
(Jika seseorang sudah di atas 65, angkanya negatif. Itu tidak masalah — belum perlu menangani kasus itu.)
Tantangan — BMI
Buka exercises/15/homework/04-bmi.py. Minta tinggi dalam
meter (desimal seperti 1.78) dan berat dalam kilogram
(seperti 72.5). Gunakan float() untuk
mengonversi keduanya. Hitung Body Mass Index:
bmi = weight / (height * height)
Cetak hasilnya dibulatkan ke satu tempat desimal menggunakan f-string
dengan :.1f. Beri label yang jelas.
Buntu atau sudah selesai? Buka halaman solusi pekerjaan rumah.