Get started learning Python with DataCamp's free Intro to Python tutorial. Learn Data Science by completing interactive coding challenges and watching videos by expert instructors. Start Now!
This site is generously supported by DataCamp. DataCamp offers online interactive Python Tutorials for Data Science. Join 11 million other learners and get started learning Python for data science today!
Good news! You can save 25% off your Datacamp annual subscription with the code LEARNPYTHON23ALE25 - Click here to redeem your discount
Kivételkezelés
Amikor programozol, hibák történnek. Ez egyszerűen az élet része. Talán a felhasználó rossz adatokat adott meg. Lehet, hogy egy hálózati erőforrás nem volt elérhető. Talán a programnak elfogyott a memóriája. Vagy akár a programozó is hibázott!
A Python megoldása a hibákra a kivételek. Lehet, hogy már láttál kivételt korábban.
print(a)
#hiba
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'a' is not defined
Hoppá! Elfelejtettünk értéket rendelni az 'a' változóhoz.
De néha nem akarod, hogy a kivételek teljesen leállítsák a programot. Elképzelhető, hogy valami különleges dolgot szeretnél tenni, amikor egy kivételt emelnek. Ezt egy try/except blokkban teheted meg.
Itt van egy triviális példa: Tegyük fel, hogy egy listán iterálsz. 20 számot kell átnézned, de a lista felhasználói bevitelből származik, és lehet, hogy nincs benne 20 szám. Miután elérted a lista végét, a maradék számokat 0-ként szeretnéd értelmezni. Így teheted meg:
def do_stuff_with_number(n):
print(n)
def catch_this():
the_list = (1, 2, 3, 4, 5)
for i in range(20):
try:
do_stuff_with_number(the_list[i])
except IndexError: # Akkor emelkedik, amikor egy nem létező indexet próbálsz elérni a listában
do_stuff_with_number(0)
catch_this()
Na, nem is volt olyan nehéz! Ezt bármilyen kivétellel megteheted. További részletekért a kivételek kezeléséről nézd meg a Python Docs oldalt.
Exercise
Kezeld az összes kivételt! Gondolj vissza az előző leckékre, hogy visszaadjátok a színész vezetéknevét.
# Setup
actor = {"name": "John Cleese", "rank": "awesome"}
# Function to modify!!!
def get_last_name():
return actor["last_name"]
# Test code
get_last_name()
print("All exceptions caught! Good job!")
print("The actor's last name is %s" % get_last_name())
actor = {"name": "John Cleese", "rank": "awesome"}
def get_last_name():
return actor["name"].split()[1]
get_last_name()
print("All exceptions caught! Good job!")
print("The actor's last name is %s" % get_last_name())
test_output_contains("Cleese")
test_output_contains("All exceptions caught! Good job!")
test_output_contains("The actor's last name is Cleese")
success_msg("Great work!")
This site is generously supported by DataCamp. DataCamp offers online interactive Python Tutorials for Data Science. Join over a million other learners and get started learning Python for data science today!