13. Angka dan matematika — Solusi pekerjaan rumah
File solusi .py ada di
exercises/13/homework/solutions/.
Soal 1 — Luas persegi panjang
Soal. Kalikan lebar dan tinggi; cetak hasilnya dengan label.
Cara berpikir. Perkalian adalah *.
Simpan hasilnya di variable ketiga, atau gunakan langsung di dalam
print dengan f-string.
Solusi yang dikerjakan.
width = 6
height = 4
area = width * height
print(f"Area: {area}")Kesalahan umum.
- Menulis
width x heightatauwidth times height. Keduanya bukan Python; operator perkalian adalah*.
Soal 2 — Floor dan ceil
Soal. Tampilkan 3.7,
math.floor(3.7), dan math.ceil(3.7) di tiga
baris, ditambah komentar yang menjelaskan perbedaannya.
Cara berpikir. floor membulatkan ke
bawah; ceil membulatkan ke atas. Keduanya
mengembalikan integer. Untuk angka positif, floor membuang
desimalnya; ceil menambah satu kecuali angkanya sudah
bulat.
Solusi yang dikerjakan.
import math
x = 3.7
print(x) # 3.7
print(math.floor(x)) # 3
print(math.ceil(x)) # 4
# floor rounds DOWN to the next integer; ceil rounds UP. For 3.7
# they sit on either side: 3 and 4.Kesalahan umum.
- Mengharapkan
math.floormengubahx. Itu tidak terjadi. Seperti.upper(), ia mengembalikan nilai baru dan membiarkan yang asli tidak berubah. - Lupa
import math. Python memunculkanNameError: name 'math' is not defined.
Soal 3 — Lempar dua dadu
Soal. Lempar dua dadu enam sisi secara independen. Cetak masing-masing ditambah totalnya.
Cara berpikir. random.randint(1, 6)
menghasilkan angka dari 1 sampai 6. Panggil dua kali — sekali per dadu —
lalu tambahkan dua variablenya.
Solusi yang dikerjakan.
import random
die1 = random.randint(1, 6)
die2 = random.randint(1, 6)
total = die1 + die2
print(f"Die 1: {die1}")
print(f"Die 2: {die2}")
print(f"Total: {total}")Kesalahan umum.
- Memanggil
random.randint(1, 6)sekali dan menggunakan kembali angkanya untuk kedua dadu. Dua lemparan harus berupa pemanggilan terpisah. - Lupa
import randomdi bagian atas file.
Tantangan — Hipotenusa
Soal. Diberikan dua sisi pendek segitiga siku-siku,
hitung hipotenusa dengan math.sqrt, dan cetak ketiga nilai
dengan hipotenusa dibulatkan ke dua desimal.
Cara berpikir. Matematikanya adalah
c = sqrt(a*a + b*b). Baik a*a maupun
a**2 bekerja. math.sqrt mengembalikan float.
Untuk tampilan yang dibulatkan, gunakan f-string dengan
:.2f.
Solusi yang dikerjakan.
import math
a = 3
b = 4
c = math.sqrt(a * a + b * b)
print(f"a = {a}")
print(f"b = {b}")
print(f"c = {c:.2f}")Untuk a = 3, b = 4 outputnya adalah:
a = 3
b = 4
c = 5.00
Kesalahan umum.
- Menulis
math.sqrt(a**2 + b**2)dan melihat5.0bukan5.00. Matematikanya benar; formatting yang mengontrol tempat desimal.:.2fselalu menampilkan dua. - Lupa
import math. Python memunculkanNameError.
Selesai?
Dua bab lagi sebelum mini-project: Bekerja dengan teks memungkinkan kamu memotong, mencari, dan mengganti di dalam string, dan Mendapatkan input mengubah keyboard menjadi nilai. Lalu project character sheet menyatukan Bagian 3.