NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

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

Aktivity
Avatar
Neaktivní uživatel:2.9.2016 19:08

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.9.2016 19:08
Neaktivní uživatelský účet
Avatar
Adam Ježek
Tvůrce
Avatar
Adam Ježek:2.9.2016 19:42

Řá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.9.2016 19:44
Nahoru Odpovědět
2.9.2016 19:42
Počkej chvíli, poradím se s křišťálovou koulí.
Avatar
Adam Ježek
Tvůrce
Avatar
Adam Ježek:2.9.2016 20:03

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.9.2016 20:05
Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
Nahoru Odpovědět
2.9.2016 20:03
Počkej chvíli, poradím se s křišťálovou koulí.
Avatar
Neaktivní uživatel:2.9.2016 20:04

Taková hloupost, děkuji moc.

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

Ještě jednou díky.

Editováno 2.9.2016 20:05
Nahoru Odpovědět
2.9.2016 20:04
Neaktivní uživatelský účet
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.