Értelmezd és értékeld ki az egyszerű matematikai szöveges feladatokat, és az eredményt egész számként add vissza.
A művelet nélküli feladatok egyszerűen a megadott számot adják eredményül.
What is 5?
Az eredmény 5.
Adj össze két számot.
What is 5 plus 13?
Az eredmény 18.
Kezeld a nagy számokat és a negatív számokat is.
Most végezd el a másik három műveletet.
What is 7 minus 5?
2
What is 6 multiplied by 4?
24
What is 25 divided by 5?
5
Kezelj több műveletet egymás után.
Mivel ezek szöveges feladatok, a kifejezést balról jobbra értékeld ki, figyelmen kívül hagyva a szokásos műveleti sorrendet.
What is 5 plus 13 plus 6?
24
What is 3 plus 2 multiplied by 3?
15 (azaz nem 9)
A szövegértelmezőnek el kell utasítania:
Néha szükség van arra, hogy kivételt dobj. Amikor ezt teszed, mindig adj meg egy beszédes hibaüzenetet, amely megmutatja, mi a hiba forrása. Ettől a kódod olvashatóbb lesz, és nagyban segít a hibakeresésben. Ha tudod, hogy a hiba forrása egy adott típusú lesz, választhatsz, hogy a beépített hibatípusok egyikét dobod, de ilyenkor is adj meg hozzá beszédes üzenetet.
Ennél a feladatnál a raise utasítással kell „dobj” egy ValueError-t, ha az answer() függvénynek átadott kérdés hibás/érvénytelen, vagy ismeretlen műveletet tartalmaz. A tesztek csak akkor futnak át, ha egyszerre raise-eled az exception-t és üzenetet is fűzöl hozzá.
Figyelem: Minden esetben más üzenetre van szükség, még akkor is, ha ugyanazt a hibatípust dobod.
Nézd meg figyelmesen a teszteket.
Ha egy ValueError t szeretnél dobni egy üzenettel együtt, írd az üzenetet az exception típus argumentumaként:
# if the question contains an unknown operation.
raise ValueError("unknown operation")
# if the question is malformed or invalid.
raise ValueError("syntax error")
Ha egy adott kódblokkon belül szeretnéd kezelni a dobott hibát, használhatsz try-except blokkot.
A try-except blokkok „körülveszik” azt a kódot, amely potenciálisan hibát okozhat, és az összes kivételt egyetlen hibához, több hibához vagy a probléma kezelésére szolgáló más kódrészletekhez rendelik:
while len(equation) > 1:
try:
# The questionable/error-prone code goes here,in an indented block
# It can contain statements, loops, if-else blocks, or other executable code.
x_value, operation, y_value, *rest = equation
...
...
except:
# Code for what to do when an error gets thrown in the code above.
# This could be one error, or more complicated logging, error checking and messaging.
raise ValueError("syntax error")
Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) Python nyelvet 17 fogalom146 feladat segítségével, valódi emberi mentorálással, mindez ingyen.