Lompati ke konten utama
Modul 4 · Pelajaran 4 dari 416/36 dalam kursus~10 min
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().

Python
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).

Python
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.

Python
float("3.14")      # 3.14
float("1e3")       # 1000.0
float("inf")       # inf
float("nan")       # nan

str(): 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.).

Python
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.

Python
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

Python
testo = input("età: ")
try:
    eta = int(testo)
except ValueError:
    print(f"non è un numero: {testo!r}")
    eta = None

Evaluasi 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

Latihan#python.m4.l4.e1
Upaya: 0Memuat…

Diberikan `a = '10'` dan `b = '32'` (string), hitung `total` sebagai jumlah INTEGERnya. Evaluasi `total`.

Memuat editor…
Tunjukkan petunjuk

int(a) + int(b), jika tidak, Anda akan menggabungkan stringnya.

Solusi tersedia setelah 3 upaya

Tinjau latihan

Latihan#python.m4.l4.e2
Upaya: 0Memuat…

Mengingat daftar `nilai = ['', 'x', 0, Tidak Ada, 1, []]`, buat `kebenaran` HANYA dengan elemen kebenaran menggunakan bool(). Evaluasi `kebenaran`.

Memuat editor…
Tunjukkan petunjuk

Pemahaman daftar dengan filter bool(v) (atau hanya 'jika v').

Solusi tersedia setelah 3 upaya

Tantangan tambahan

Latihan#python.m4.l4.e3
Upaya: 0Memuat…

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.

Memuat editor…
Tunjukkan petunjuk

Akses elemen berdasarkan indeks, mis. int(string_numbers[0]), dan jumlahkan.

Solusi tersedia setelah 3 upaya