Python - Penakaran

Helo, pemrogram beraspirasi! Hari ini, kita akan menyelam ke dunia penakaran Python. Sebagai guru komputer yang mesra di kampung kita, saya sangat gembira untuk mengajar anda melalui topik yang menarik ini. Mari kitaembarkasi perjalanan ini bersama-sama!

Python - Assertions

Penakaran di Python

Bayangkan anda sedang membina rakit atas pokok. Anda tidak akan mula untuk mengepal papan-papan tanpa pertama-tama memastikan rakaman anda adalah kuat, kan? Itulah yang penakaran lakukan di programming. Mereka membantu kita untuk memeriksa jika beberapa syarat adalah benar sebelum kita meneruskan dengan kod kita.

Di Python, penakaran adalah cara untuk mengatakan, "Saya percaya syarat ini adalah benar, dan jika tidak, sesuatu telah kericau dengan teruk!" Mereka seperti titik penyemak kecil di atas kod anda yang memastikan semua adalah seperti yang sepatutnya.

Penakaran Statement

Sintaksis dasar penakaran di Python adalah sangat mudah:

assert kondisi, pesan

Di sini, kondisi adalah perkara yang kita sedang memeriksa, dan pesan adalah penjelasan tambahan yang muncul jika penakaran gagal.

Mari kita lihat contoh yang simple:

x = 5
assert x == 5, "x harus adalah 5"
print("Kod teruskan...")

Dalam kes ini, penakaran lulus secara penyamar kerana x adalah benar-benar 5, dan kod kita teruskan untuk dijalankan. Tetapi apa jika kita mengubah nilai x?

x = 10
assert x == 5, "x harus adalah 5"
print("Baris ini tidak akan pernah dicapai!")

Oopss! Ini akan meningkatkan AssertionError dengan pesan kostum kami, "x harus adalah 5".

Menggunakan Penakaran

Penakaran adalah sangat berguna dalam berbagai senario. Mari kita eksplor beberapa:

1. Memeriksa input fungsi

def kira_luas_segiempat(panjang, lebar):
assert panjang > 0 and lebar > 0, "Panjang dan lebar mesti positif"
return panjang * lebar

# Ini akan bekerja
print(kira_luas_segiempat(5, 3))

# Ini akan meningkatkan AssertionError
print(kira_luas_segiempat(-1, 3))

Di sini, kita membuat pasti bahwa seseorang tidak mencuba untuk mengira luas rakit dengan dimensi negatif atau nol. Itu akan menjadi rakit yang sangat khusus, kan?

2. Memastikan keadaan dalaman

class AkaunBank:
def __init__(self, baki_awal):
self.baki = baki_awal
assert self.baki >= 0, "Baki awal tidak boleh negatif"

def tarik(self, jumlah):
assert jumlah > 0, "Jumlah penarikan mesti positif"
assert self.baki >= jumlah, "Dana tidak mencukupi"
self.baki -= jumlah

account = AkaunBank(100)
account.tarik(50)  # Ini bekerja
account.tarik(60)  # Ini meningkatkan AssertionError

Dalam contoh ini, kita menggunakan penakaran untuk memastikan akaun bank kita bertindak dengan betul. Kita tidak boleh mula dengan baki negatif atau menarik lebih banyak wang daripada yang kita ada. Kalau saja bank sebenar adalah begitu ketat!

PesanRalat kostum

Seperti yang kita lihat, kita boleh menambah pesan ralat kostum ke penakaran kita. Pesan ini boleh sangat membantu ketika debugging:

def bahagi(a, b):
assert b != 0, f"Tidak boleh bahagi {a} dengan nol"
return a / b

print(bahagi(10, 2))  # Ini bekerja
print(bahagi(10, 0))  # Ini meningkatkan AssertionError dengan pesan kostum kami

Mengendalikan AssertionError

Bila-bila masa, kita mungkin mahu untuk menangkap dan mengendalikan AssertionError daripada membiarkan mereka karamkan program kita. Kita boleh melakukan ini menggunakan blok try-except:

def fungsi_berisiko(x):
assert x > 0, "x mesti positif"
return 1 / x

try:
hasil = fungsi_berisiko(-5)
except AssertionError as e:
print(f"Penakaran gagal: {e}")
hasil = None

print(f"Hasilnya adalah: {hasil}")

Ini membenarkan program kita untuk teruskan dijalankan walaupun penakaran gagal, yang boleh berguna dalam beberapa situasi.

Penakaran vs. Pengecualian

Anda mungkin berfikir, "Mengapa gunakan penakaran apabila kita ada pengecualian?" Pertanyaan yang bagus! Mari kita rakam perbezaan utama:

Penakaran Pengecualian
Digunakan untuk memeriksa ralat pemrogram Digunakan untuk mengendalikan ralat masa-jalan
Harus digunakan untuk syarat yang sepatutnya tidak pernah berlaku Digunakan untuk keadaan ralat yang dijangka
Boleh dimatikan secara global Selalu aktif
Utama sebagai rakuan penyelidikan Bahagian dari strategi pengendalian ralat

Penakaran adalah seperti rakuan keselamatan yang kita lakukan sebelum rakit penyelam mula bergerak. Pengecualian adalah lebih seperti rakuan penyelamat yang mengambil kira kita jika sesuatu yang salah berlaku semasa perjalanan.

Dalam kesimpulan, penakaran adalah alat yang kuat di atas rakam pemrogram Python. Mereka membantu kita untuk menulis kod yang lebih kuat dan dapat dipercayai dengan mengesan isu potensi awal. Ingat, adalah selalu lebih baik untuk kalah cepat dan kalah keras bila sesuatu yang tidak dijangka berlaku di atas kod anda.

Sebagai anda teruskan perjalanan Python anda, ingat penakaran. Mereka seperti penyelamat yang setia, memantau kod anda dan memastikan semua adalah seperti yang sepatutnya. Happy coding, pemrogram Python masa depan!

Credits: Image by storyset