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.