11. Variables dan tipe data
Bab 7 menulis teks langsung di dalam pemanggilan print.
Itu bisa dipakai, tapi kalau ada informasi yang perlu dipakai di lebih
dari satu tempat, kamu harus mengetiknya ulang setiap kali. Variable
mengatasi masalah itu. Sebuah variable adalah nama yang
mewakili sebuah nilai, jadi kamu cukup menulis nilainya sekali dan bisa
memakainya lagi.
Mendeklarasikan sebuah variable
Bentuk paling umum dari deklarasi variable di Python:
name = "Keiko"
print(name)Ada dua hal yang terjadi di baris pertama itu:
nameadalah nama variablenya. Kamu yang menentukan.=adalah operator assignment. Ia memasukkan nilai di sebelah kanan ke dalam variable di sebelah kiri. Ini bukan berarti "sama dengan" seperti dalam matematika.
Sekarang name mewakili string "Keiko", jadi
print(name) mencetak Keiko.
Python tidak punya keyword local. Setiap variable yang
kamu deklarasikan di dalam sebuah function milik function itu, dan
variable di tingkat atas sebuah file milik file itu. Kamu akan belajar
tentang function di bab berikutnya; untuk sekarang, semua variable kamu
hidup di tingkat atas.
Mengubah sebuah variable
Nilai sebuah variable bisa berubah. Pakai = lagi:
score = 0
print(score) # prints 0
score = 50
print(score) # prints 50Buka exercises/11/01-variables.py. Ubah nilai awal
score dan jalankan filenya. Kedua pemanggilan
print harus berubah serentak.
Tipe data
Di Python, sebuah nilai juga punya tipe, bukan hanya data. Lima tipe yang kamu butuhkan sekarang:
- str — teks, ditulis di antara tanda kutip:
"hello",'a',""(string kosong). - int — bilangan bulat tanpa titik desimal:
0,-7,42. - float — bilangan dengan titik desimal:
3.14,0.5,-1.0. - bool — tepat dua nilai:
TruedanFalse. Tanpa tanda kutip. Perhatikan huruf kapital —true(huruf kecil) adalah error di Python. - NoneType — tipe dari
None, yang mewakili ketiadaan nilai apapun.
type() adalah built-in function yang mengembalikan objek
yang mendeskripsikan tipe sebuah nilai. Untuk mendapatkan nama tipenya
saja sebagai string pendek, pakai type(x).__name__:
print(type("hello").__name__) # str
print(type(7).__name__) # int
print(type(3.14).__name__) # float
print(type(True).__name__) # bool
print(type(None).__name__) # NoneTypetype(x) sendirian mencetak sesuatu seperti
<class 'str'>. Bagian .__name__
mengambil hanya kata str. Kedua bentuk bekerja untuk
memahami; .__name__ lebih mudah dibaca pada output.
Nama variable
Kamu yang memilih nama variable, tapi Python punya aturan tentang mana yang diperbolehkan:
- Boleh mengandung huruf, digit, dan underscore
_. - Tidak boleh dimulai dengan digit.
level1boleh;1leveltidak. - Bersifat case sensitive.
Score,score, danSCOREadalah tiga nama yang berbeda. - Tidak boleh menggunakan salah satu reserved word Python:
and,as,assert,async,await,break,class,continue,def,del,elif,else,except,False,finally,for,from,global,if,import,in,is,lambda,None,nonlocal,not,or,pass,raise,return,True,try,while,with,yield. Kamu akan bertemu sebagian besar ini nanti.
Di luar aturan itu, ikuti kebiasaan berikut:
- Pilih nama yang bermakna.
player_namelebih baik darin.hit_pointslebih baik darihpketika kode sudah panjang, meskihpmasih oke untuk skrip pendek. - Huruf kecil dengan underscore adalah gaya Python
standar:
max_score,enemy_count. Konvensi ini disebut snake_case.
Mencetak sebuah variable
print tidak butuh tanda kutip di sekeliling nama
variable. Tanda kutip hanya untuk teks yang kamu ketik langsung. Untuk
menggabungkan label dengan variable, kamu bisa memberikannya sebagai
argumen terpisah (Python menambahkan spasi di antaranya) atau
menggunakan f-string:
level = 7
print("Level:", level) # Level: 7
print(f"Level: {level}") # Level: 7Sebuah f-string dimulai dengan f sebelum tanda kutip
pembuka. Semua variable atau ekspresi di dalam {}
dievaluasi dan disisipkan ke dalam string. Ini adalah cara standar
Python untuk membangun string yang mengandung nilai.
Bentuk koma print("Level:", level) mencetak spasi di
antara setiap argumen secara otomatis. F-string
f"Level: {level}" membangun satu string, jadi kamu
mengontrol setiap karakter. Keduanya benar; f-string memberi kontrol
lebih.
Multiple assignment
Python memungkinkan kamu mendeklarasikan beberapa variable dan mengassign beberapa nilai dalam satu baris. Nama di sebelah kiri berpasangan dengan nilai di sebelah kanan berdasarkan posisi:
name, level = "Keiko", 7
print(name, level) # Keiko 7Ini mengelompokkan deklarasi yang berkaitan dengan rapi. Ini juga memungkinkan trik yang berguna — menukar dua variable dalam satu langkah:
a, b = 1, 2
a, b = b, a
print(a, b) # 2 1Python membaca seluruh sisi kanan terlebih dahulu, lalu mengassign.
Jadi a, b = b, a mengambil b dan
a saat ini dan memasukkannya ke slot yang
berlawanan.
Pekerjaan Rumah
Starter pekerjaan rumah ada di
exercises/11/homework/.
Soal 1 — Data karakter
Buka exercises/11/homework/01-player-vitals.py.
Deklarasikan empat variable bernama name,
level, hit_points, dan alive,
dengan nilai pilihanmu. Yang pertama harus berupa string, dua berikutnya
angka, dan yang keempat boolean. Cetak masing-masing di baris sendiri
dengan label, seperti Name: Keiko.
Soal 2 — Pemeriksa tipe
Buka exercises/11/homework/02-type-checker.py. Gunakan
type(x).__name__ untuk mencetak nama tipe dari
masing-masing lima nilai ini, satu per baris:
- string
"world", - integer
42, - float
3.14, - boolean
False, None.
Soal 3 — Ganti nama dan reassign
Buka exercises/11/homework/03-rename-and-reassign.py.
File starter memiliki tiga variable a, b, dan
c dengan nilai-nilai yang terlihat acak. Ganti namanya
menjadi sesuatu yang bermakna untuk nilainya, cetak yang asli, ubah
ketiganya, lalu cetak lagi.
Tantangan — Misteri None
Buka exercises/11/homework/04-none-mystery.py.
Deklarasikan sebuah variable dan assign None ke dalamnya,
lalu cetak nama tipenya. Kemudian beri nilai string dan cetak nama
tipenya lagi. Tambahkan blok komentar singkat (beberapa baris diawali
#) yang menjelaskan, dengan kata-katamu sendiri, apa arti
None.
Buntu atau sudah selesai? Buka halaman solusi pekerjaan rumah.