Diskuze: Vyvolání opětovného zeptání se na početní operaci

Python Python Vyvolání opětovného zeptání se na početní operaci

Avatar
Ondřej Jiří Beneš:

Dobrý den.

Jak mám vyvolat opětovné zeptání se na početní operaci?

print("Vítejte v Kalkulačce.\n"
      "\n╔═══════════════════════════════╗"
      "\n║         Sčítání.              ║"
      "\n╠═══════════════════════════════╢"
      "\n║         Odečítání.            ║"
      "\n╠═══════════════════════════════╢"
      "\n║         Násobení.             ║"
      "\n╠═══════════════════════════════╢"
      "\n║         Dělení.               ║"
      "\n╚═══════════════════════════════╝")
vyberPocetniOperace = input("Prosím, vyberte si z následujícich možností: ")

while vyberPocetniOperace:
      if vyberPocetniOperace == "Sčítání.":
            print("Vybral sis sčítání.")
            prvniCislo = float(input("Vyberte si první čislo: "))
            druheCislo = float(input("Vyberte si druhé číslo: "))
            print("Výsledek sčítání je:",prvniCislo+druheCislo)
            input(vyberPocetniOperace)
      elif vyberPocetniOperace == "Odečítání.":
            print("Vybral sis odečítání.")
            prvniCislo = float(input("Vyberte si první čislo: "))
            druheCislo = float(input("Vyberte si druhé číslo: "))
      elif vyberPocetniOperace == "Násobení.":
            print("Vybral sis násobení.")
            input()
      elif vyberPocetniOperace == "Dělení.":
            print("Vybral sis dělení.")
            input()
      else:
            print("\nPokud se po vybrání početní operace nic nestalo, zkontrolujte její správné opsání z tabulky (i s tečkou).\nNa dalších možností se pracuje.")
            input()
 
Odpovědět 2. září 19:08
Avatar
Adam Ježek
Tým ITnetwork
Avatar
Adam Ježek:

Řádek s input() dej až do smyčky, hned za while
A pokud máš text na více řádků, tak se dá zadat přes 3 uvozovky

= """"Vítejte v Kalkulačce.\n
      ╔═══════════════════════════════╗
      ║         Sčítání.              ║
      ╠═══════════════════════════════╢
      ║         Odečítání.            ║
      ╠═══════════════════════════════╢
      ║         Násobení.             ║
      ╠═══════════════════════════════╢
      ║         Dělení.               ║
      ╚═══════════════════════════════╝"""
Editováno 2. září 19:44
Nahoru Odpovědět 2. září 19:42
Programátor dělá co může. Počítač co chce. | Pokud mi dáš mínus, tak prosim, napiš proč!
Avatar
Adam Ježek
Tým ITnetwork
Avatar
Adam Ježek:

Nevšiml jsem si, že máš input() i v podmínkách, mluvil jsem o tom prvním. A taky, že while nemá True, ale proměnnou
Nicméně celý program bych, jednak pro zjednodušení a jednak pro větší uživatelskou přívětivost přepsal do tohoto:

print("""Vítejte v Kalkulačce.
      ╔═══════════════════════════════╗
      ║         Sčítání. ->+          ║
      ╠═══════════════════════════════╢
      ║         Odečítání. -> -       ║
      ╠═══════════════════════════════╢
      ║         Násobení.  -> *       ║
      ╠═══════════════════════════════╢
      ║         Dělení. -> /          ║
      ╚═══════════════════════════════╝""")

vyberPocetniOperace = "a" #aby prošla smyčka
while vyberPocetniOperace:
        vyberPocetniOperace = input("Prosím, vyberte si z následujícich možností: ")
        prvniCislo = float(input("Vyberte si první čislo: "))
        druheCislo = float(input("Vyberte si druhé číslo: "))
        if vyberPocetniOperace == "Sčítání." or vyberPocetniOperace == "+":
                print("Vybral sis sčítání.")
                print("Výsledek sčítání je:",prvniCislo+druheCislo)
        elif vyberPocetniOperace == "Odečítání." or vyberPocetniOperace == "-":
                print("Vybral sis odečítání.")
                print("Výsledek odečítání je:",prvniCislo-druheCislo)
        elif vyberPocetniOperace == "Násobení." or vyberPocetniOperace == "*":
                print("Vybral sis násobení.")
                print("Výsledek násobení je:",prvniCislo*druheCislo)
        elif vyberPocetniOperace == "Dělení." or vyberPocetniOperace == "/":
                print("Vybral sis dělení.")
                print("Výsledek dělení je:",prvniCislo/druheCislo)
        else:
        print("\nPokud se po vybrání početní operace a zadání čísel nic nestalo, zkontrolujte, že jste zadali pouze znaménko, nebo její správné opsání z tabulky (i s tečkou).\nNa dalších možností se pracuje.")

Celé by se to dalo ještě dost zjednodušit, ale to už bych do toho tahal "jednořádkové prasárny" (dokonalá schopnost Pythonu napsat celé kusy kódu na jeden relativně krátký a dokonale nepřehledný řádek), ale soudím dle textové kalkulačky, že jsi v Python teprve začátečník. Kód jsem nespouštěl, jenom sepsal z hlavy, tak možná vyskočí nějaká chybička, ale s tou by sis měl poradit.

Editováno 2. září 20:05
Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
Nahoru Odpovědět 2. září 20:03
Programátor dělá co může. Počítač co chce. | Pokud mi dáš mínus, tak prosim, napiš proč!
Avatar
Ondřej Jiří Beneš:

Taková hloupost, děkuji moc.

Ano, začátečník, snad si poradím.

Ještě jednou díky.

Editováno 2. září 20:05
 
Nahoru Odpovědět 2. září 20:04
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 4 zpráv z 4.