Pelajaran modul (4/4)
Ketik konversi
Python diketik dengan kuat: ia tidak pernah menambahkan string ke angka kecuali Anda
katakan begitu. Untuk berpindah dari satu tipe ke tipe lainnya Anda menggunakan fungsi konstruktor:
int(), float(), str(), bool(), list(), tuple(), set().
int("42") # 42
float("3.14") # 3.14
str(42) # '42'
list("abc") # ['a', 'b', 'c']
tuple([1, 2]) # (1, 2)
set([1, 1, 2]) # {1, 2}int() dengan string
int("42") berfungsi; int("42.5") menaikkan ValueError. Untuk string desimal,
lewati float dulu: int(float("42.5")) → 42 (terpotong, tidak
bulat).
int("42") # 42
int(" 42 ") # 42 (strip automatico degli spazi)
int("42.5") # ValueError
int(float("42.5")) # 42
int("ff", 16) # 255 (base esplicita)float() dengan string
Menerima notasi desimal dan ilmiah.
float("3.14") # 3.14
float("1e3") # 1000.0
float("inf") # inf
float("nan") # nanstr(): konversi "ramah".
str(x) secara internal memanggil x.__str__() untuk mendapatkan representasi "manusia".
Ada juga repr(x) untuk representasi "debugger", seringkali lebih
eksplisit (dengan tanda kutip untuk string, dll.).
str(3.14) # '3.14'
str([1, 2]) # '[1, 2]'
str(True) # 'True'bool() dan kebenaran
bool(x) mengembalikan False hanya untuk nilai falsy Python:
False,None- angka nol:
0,0.0 - wadah kosong:
"",[],(),{},set()
Segala sesuatu yang lain benar.
bool(0) # False
bool("") # False
bool([]) # False
bool("0") # True ! (stringa non vuota)
bool([0]) # True ! (lista non vuota, anche se contiene 0)Pola: penguraian masukan yang aman
testo = input("età: ")
try:
eta = int(testo)
except ValueError:
print(f"non è un numero: {testo!r}")
eta = NoneEvaluasi Boolean (Kebenaran)
Di Python, setiap objek memiliki nilai kebenaran implisit. Anda dapat memeriksa nilai boolean objek apa pun menggunakan fungsi bool(...). Koleksi kosong (misalnya "", [], {}, set()) dan nilai nol (0, 0.0) selalu bernilai False. Semua objek lainnya bernilai True.
Cobalah
Diberikan `a = '10'` dan `b = '32'` (string), hitung `total` sebagai jumlah INTEGERnya. Evaluasi `total`.
Tunjukkan petunjuk
int(a) + int(b), jika tidak, Anda akan menggabungkan stringnya.
Solusi tersedia setelah 3 upaya
Tinjau latihan
Mengingat daftar `nilai = ['', 'x', 0, Tidak Ada, 1, []]`, buat `kebenaran` HANYA dengan elemen kebenaran menggunakan bool(). Evaluasi `kebenaran`.
Tunjukkan petunjuk
Pemahaman daftar dengan filter bool(v) (atau hanya 'jika v').
Solusi tersedia setelah 3 upaya
Tantangan tambahan
Mengingat daftar string \`string_numbers = ["1", "2", "3"]\`, konversi setiap elemen menjadi bilangan bulat menggunakan \`int()\` dan jumlahkan semuanya untuk mendapatkan nilai \`6\`. Simpan jumlahnya di \`sum_val\` dan evaluasi.
Tunjukkan petunjuk
Akses elemen berdasarkan indeks, mis. int(string_numbers[0]), dan jumlahkan.
Solusi tersedia setelah 3 upaya