11. Variables dan tipe data — Solusi pekerjaan rumah
File solusi .py ada di
exercises/11/homework/solutions/. Penjelasan di bawah
menjabarkan cara berpikirnya.
Soal 1 — Data karakter
Soal. Deklarasikan empat variable dengan tipe yang tepat dan cetak masing-masing dengan label.
Cara berpikir. Empat deklarasi, empat baris print.
Cocokkan tipe dengan nilai: string untuk name, bilangan
bulat untuk level dan hit_points, boolean
untuk alive. Setiap label adalah string biasa, digabungkan
dengan f-string atau dilewatkan sebagai argumen kedua ke
print.
Solusi yang dikerjakan.
name = "Keiko"
level = 7
hit_points = 95
alive = True
print(f"Name: {name}")
print(f"Level: {level}")
print(f"Hit points: {hit_points}")
print(f"Alive: {alive}")F-string mengonversi boolean True ke teks
True secara otomatis, jadi tidak perlu langkah konversi
tambahan.
Bentuk koma juga bekerja:
print("Alive:", alive)Kesalahan umum.
- Memberi tanda kutip pada
TrueatauFalse. Itu menjadikannya string, sehingga ujitype()pada soal berikutnya melaporkanstrbukanbool. - Menulis
trueataufalsedengan huruf kecil. Python akan memunculkanNameErrorkarenatruebukan nama yang dikenal.
Soal 2 — Pemeriksa tipe
Soal. Cetak type(x).__name__ dari lima
nilai.
Cara berpikir. Lima pemanggilan print,
masing-masing membungkus type().__name__ di sekitar sebuah
literal; tidak perlu variable.
Solusi yang dikerjakan.
print(type("world").__name__)
print(type(42).__name__)
print(type(3.14).__name__)
print(type(False).__name__)
print(type(None).__name__)Outputnya adalah:
str
int
float
bool
NoneType
Kesalahan umum.
- Menggunakan
type(x)tanpa.__name__. Itu mencetak<class 'str'>bukan kata sederhanastr. Keduanya mendeskripsikan hal yang sama, tapi.__name__lebih bersih untuk ditampilkan. - Membungkus pemanggilan dalam tanda kutip:
print("type(42).__name__"). Itu mencetak teksnya secara harfiah. Tanpa tanda kutip, Python menjalankannya dan mencetak nama tipe.
Soal 3 — Ganti nama dan reassign
Soal. Ganti nama tiga variable yang namanya kurang baik, cetak, reassign, cetak lagi.
Cara berpikir. Ini tentang membaca kode. Nilai-nilai
di starter memberi petunjuk tentang makna setiap variable:
a = "Sword of Light" adalah nama item, jadi ganti namanya
menjadi item_name. Kemudian reassign dan cetak.
Solusi yang dikerjakan. Diberikan starter:
a = "Sword of Light"
b = 12
c = TruePenulisan ulang yang masuk akal:
item_name = "Sword of Light"
item_level = 12
is_equipped = True
print("Before:", item_name, item_level, is_equipped)
item_name = "Shield of Ages"
item_level = 5
is_equipped = False
print("After: ", item_name, item_level, is_equipped)Kesalahan umum.
- Memberi nama variable dengan reserved word seperti
FalseatauNone. Python memunculkanSyntaxErrorkarena nama-nama itu punya makna khusus.
Tantangan — Misteri None
Soal. Assign None ke sebuah variable,
konfirmasi tipenya, lalu assign nilai dan konfirmasi tipe berubah.
Cara berpikir. Assign None langsung:
treasure = None. Cetak
type(treasure).__name__, set
treasure = "Gold Coin", lalu cetak tipenya lagi.
Solusi yang dikerjakan.
# None is Python's way of saying "there is no value here at all".
# It is not the same as 0 or "" or False. It is the absence of a value.
# A variable can be assigned None explicitly to show it has no
# meaningful value yet.
treasure = None
print("Before assignment:", type(treasure).__name__) # NoneType
treasure = "Gold Coin"
print("After assignment: ", type(treasure).__name__) # strKesalahan umum.
- Menulis
nonedengan huruf kecil. Python memunculkanNameError; ejaan yang benar adalahNonedengan huruf N kapital. - Mengira
Nonesama denganFalse. Keduanya berbeda tipe. Konsep terkait namun terpisah tentang "truthy dan falsy" akan datang di Bab 16 tentangif.
Selesai?
Selanjutnya — Strings — menggali lebih dalam tipe yang paling banyak kamu gunakan. Lalu angka, input keyboard, dan mini-project Bagian 3.