Keresés


Toplista

Toplista
  • betöltés...

Magántanár kereső

Ha szívesen korrepetálnál, hozd létre magántanár profilodat itt.
Ha diák vagy és korrepetálásra van szükséged, akkor regisztrálj be és írd meg itt, hogy milyen tantárgyban!

Sziasztok segítséget szeretnék kérni a házi feladatomban!

178
Írj python programot, mely elvégzi a következőket!
A program elindulás után írjon ki egy tájékoztató szöveget azzal a tartalommal, hogy mi ez a program amit elindított a felhasználó, majd jelenítse meg a következő menüt:
1) Összeadás
2) Kivonás
3) Szorzás
4) Osztás
0) Kilépés

(A menüpontok logikusak legyenek, de nem muszáj a 0,1,2,3,4 -et használni.)
Ezt követően olvassa be a felhasználótól a kiválasztott menüpontot.
Ha a felhasználó rossz menüpontot ír be (felső példából kiindulva pl 6-ot), akkor írjunk ki egy hibaüzenetet, majd jelenítsük meg megint a menüt.
Ha kiválasztotta a megfelelő menüpontot, akkor olvassunk be két számot (ellenőrizzük, hogy számot ad e meg, ha nem, kérjük be újra azt a számot), majd írjuk ki a helyes eredményt.
A helyes eredmény kiírását követően írjuk ki ismét a menüt, hogy további menüpontot választhasson a felhasználó.
A program ne záródjon be, csak ha a Kilépés menüpontot választja ki a felhasználó!
Tipp:
1) érdemes a menüpontokat és a szövegeket egy dictionary-ben eltárolni
2) érdemes minden menüpontra írni egy függvényt
Jelenleg 1 felhasználó nézi ezt a kérdést.
0
Középiskola / Informatika

Válaszok

2
Többek közt így is lehet:

def szam(nem_lehet_nulla = False):
    while True:
        try:
            szam = float(input('Szám: '))
        except ValueError:
            print('Hiba: ilyen számot még nem láttam')
            continue

        if szam == 0 and nem_lehet_nulla:
            print('Hiba: nem lehet nulla')
            continue

        return szam

menu = {
    '1': ('Összeadás', lambda: szam() + szam()),
    '2': ('Kivonás', lambda: szam() - szam()),
    '3': ('Szorzás', lambda: szam() * szam()),
    '4': ('Osztás', lambda: szam() / szam(True)),
    '0': ('Kilépés', ),
}

while True:
    for pont, muvelet in menu.items():
        print(pont, ')', muvelet[0])
   
    betu = input('Művelet: ')
   
    if betu in menu:
        if len(menu[betu]) == 2:
            print('Eredmény:', menu[betu][1]())
        else:
            break
    else:
        print('Hiba: ilyen lehetőséget nem ajánlottam fel')
0

Itt egy másik verzió, ha valakinek VF kódja túl kompakt lenne. (amúgy nagyon szép)
0