2.2. Variabel dan tipe dasar¶
Sebuah variabel adalah nama yang Anda ikat ke sebuah nilai dengan operator =. Setelah penugasan, nama tersebut dapat digunakan di mana pun nilai tersebut dapat digunakan:
width = 320
height = 240
pixels = width * height
print(pixels) # prints 76800
Sisi kanan = dievaluasi terlebih dahulu, kemudian hasilnya diikat ke nama di sebelah kiri. Membaca nama yang belum pernah ditugaskan akan memunculkan NameError.
Variabel hanyalah sebuah label. Ia menunjuk pada sebuah nilai -- nilai tersebut berada di tempat lain, dan nilai yang sama dapat memiliki sejumlah label apa pun.
Variabel adalah label yang menunjuk pada nilai. Menugaskan ulang sebuah variabel memindahkan label; tidak mengubah nilai yang ditunjuk label tersebut sebelumnya.¶
2.2.1. Aturan penamaan¶
Nama dimulai dengan huruf atau garis bawah dan dapat berisi huruf, angka, dan garis bawah.
frame_countdan_internalvalid;1st_frameadalah kesalahan sintaks.Nama bersifat case-sensitive:
Widthdanwidthadalah dua variabel yang berbeda.Hindari menggunakan kembali nama bawaan seperti
list,str,id(), atauprint()-- membayangi mereka tidak menimbulkan kesalahan, tetapi bawaan aslinya menjadi tidak dapat diakses untuk sisa skrip.Konvensi:
snake_caseuntuk variabel dan fungsi,ALL_CAPSuntuk konstanta yang tidak dimaksudkan untuk diubah,CamelCaseuntuk nama kelas.
2.2.2. Tipe dasar¶
Setiap nilai di Python memiliki tipe yang menentukan operasi apa yang didukungnya. Empat tipe yang paling sering Anda tulis adalah:
int -- bilangan bulat, positif atau negatif. Bilangan bulat MicroPython dapat tumbuh sebesar yang diizinkan oleh memori. Literal ditulis sebagai digit biasa:
0,42,-7. Literal heks (0x1A), oktal (0o17), dan biner (0b1010) juga valid dan berguna untuk register dan bitmask.float -- angka dengan titik desimal atau eksponen:
3.14,1.0,-0.5,2e6(= 2.000.000,0). Semua float pada kamera adalah IEEE 754 32-bit -- presisi sekitar tujuh digit signifikan.bool -- salah satu dari dua literal
TrueatauFalse(perhatikan huruf kapitalnya).str -- teks, ditulis sebagai karakter di antara tanda kutip tunggal atau ganda:
"hello",'OpenMV'. Kedua gaya kutip adalah setara; pilih yang memungkinkan Anda menghindari escape karakter kutip yang muncul di dalam string.
Ada juga nilai kelima yang perlu segera diketahui:
None -- nilai tunggal dari tipe
NoneType. Digunakan untuk berarti "tidak ada nilai" atau "belum disetel". Fungsi yang tidak secara eksplisit mengembalikan apa pun secara implisit mengembalikanNone.
2.2.3. Memeriksa dan mengonversi tipe¶
Fungsi bawaan type() mengembalikan tipe dari nilai apa pun:
>>> type(42)
<class 'int'>
>>> type(3.14)
<class 'float'>
>>> type("hello")
<class 'str'>
Setiap tipe juga berfungsi ganda sebagai fungsi konversi. Berikan nilai dari tipe yang berbeda dan Anda akan mendapatkan nilai setara dari tipe baru -- ketika konversi terdefinisi dengan baik:
>>> int("42")
42
>>> int(3.9)
3 # truncates toward zero, not rounds
>>> float("1.5")
1.5
>>> str(255)
'255'
>>> bool(0), bool(1), bool("")
(False, True, False)
Konversi yang tidak terdefinisi dengan baik akan memunculkan ValueError:
>>> int("hello")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid syntax for integer with base 10
2.2.4. Penugasan ulang dan pengetikan dinamis¶
Sebuah nama dapat ditugaskan ulang ke nilai dari tipe apa pun kapan saja. Berikut ini adalah valid:
x = 42
x = "now I'm a string"
x = 3.14
Python tidak mengikat variabel ke sebuah tipe. Kode yang bergantung pada x sebagai bilangan bulat cukup mengharapkan bilangan bulat di titik penggunaannya; jika mendapatkan sesuatu yang lain, Anda akan mendapat TypeError saat runtime.
Catatan
Menugaskan ulang x tidak mengubah nilai yang ditunjuk oleh binding lama. Jika dua nama berbagi nilai yang sama, menugaskan ulang satu tidak memengaruhi yang lain:
a = [1, 2, 3]
b = a # both point at the same list
a = "different now"
print(b) # still [1, 2, 3]
Memutasi nilai yang dibagikan berbeda: metode seperti list.append mengubah nilai yang ditunjuk oleh binding, sehingga setiap nama lain yang menunjuk ke nilai yang sama akan melihat perubahannya.