Do nového roku jako lepší programátoři? Znovu otevíráme večerní školu programování. Nette framework, návrhové vzory, testování nebo vůbec poprvé kurzy ASP.NET dostupné odkudkoli v republice.
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.9.2016 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.9.2016 19:44
Nahoru Odpovědět 2.9.2016 19:42
Pokud chceš odpovědět, klikni na odpovědět. Pokud chceš vložit zdroják, klikni na vložit zdroják (</>)
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.9.2016 20:05
Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
Nahoru Odpovědět 2.9.2016 20:03
Pokud chceš odpovědět, klikni na odpovědět. Pokud chceš vložit zdroják, klikni na vložit zdroják (</>)
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.9.2016 20:05
 
Nahoru Odpovědět 2.9.2016 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.