Kurzusok
/
Python
Python
/
Feladatok
/
Szószátyár
Szószátyár

Szószátyár

Könnyű

Utasítások

Értelmezd és értékeld ki az egyszerű matematikai szöveges feladatokat, és az eredményt egész számként add vissza.

Iteráció 0: számok

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.

Iteráció 1: összeadás

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.

Iteráció 2: kivonás, szorzás és osztás

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

Iteráció 3: több művelet

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)

Iteráció 4: hibák

A szövegértelmezőnek el kell utasítania:

  • Nem támogatott műveletek („What is 52 cubed?”)
  • Nem matematikai kérdések („Who is the President of the United States”)
  • Érvénytelen szintaxisú szöveges feladatok („What is 1 plus plus 2?”)

Kivételüzenetek

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")
Szerkesztés GitHubon A hivatkozás új ablakban vagy lapon nyílik meg
Python Exercism

Készen állsz elkezdeni a(z) Szószátyár feladatot?

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.