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.