← Kembali ke kursus
Pelajaran kursus · Python
Pelajaran 37

Type hints dan walrus :=

Anotasi tipe opsional dan operator penugasan dalam ekspresi.

Pahami konsepnya

Python tetap dinamis, tapi type hints menambah petunjuk tipe yang dibaca alat (mypy, IDE): def hitung(harga: int, diskon: float) -> float:. Python tidak otomatis menolak argumen yang salah tipe, tetapi ekspresi anotasi diproses saat fungsi didefinisikan; karena itu anotasi yang belum didukung runtime tetap bisa menyebabkan error. Manfaatnya: autocomplete lebih akurat, bug tipe tertangkap sebelum jalan, dan kode tim lebih terbaca.

Tipe yang umum: int, float, str, bool, list[int] (Python 3.9+), dict[str, int], Optional[int] (bisa None), Union[int, str]. Pada Python 3.8 di editor situs, gunakan List[int] dari typing sebagai pengganti list[int].

Walrus operator := (Python 3.8+) menugaskan dan menghasilkan nilai dalam SATU ekspresi: while (teks := input()) != "selesai": membaca dan memeriksa sekaligus. Mengurangi satu baris saat hasil perlu diperiksa sebelum dipakai.

Coba contoh kode

from typing import List

def hitung_diskon(harga: int, persen: float) -> float:
    return harga * (1 - persen / 100)

def cari_maks(data: List[int]) -> int:
    maks: int = data[0]
    for n in data:
        if n > maks:
            maks = n
    return maks

print(hitung_diskon(100000, 20))
print(cari_maks([3, 8, 1, 9, 4]))

# walrus
teks = ""
while (teks := input("Kata (selesai=stop): ")) != "selesai":
    print(f"Panjang: {len(teks)}")

Anotasi harga: int, persen: float memberi tahu pembaca dan alat apa yang diharapkan tanpa mengunci runtime. Walrus menggabungkan input() dan pemeriksaan != dalam satu kondisi while — tanpa perlu variabel sementara di luar loop.

Latihan singkat

Uji: hitung_rata([10.0,20.0,30.0]) → `20.0`.