2016-03-29 10 views
1

Ich schrieb einen einfachen Rechner und habe wenig Problem. Wenn ich 'dodawanie' eingib, kann ich noch zwei weitere Zahlen eingeben und fast alles funktioniert gut, aber dann kann ich die 'dodawanie' Sequenz nicht mehr verwenden, nur die nächste Sequenz ist 'odejmowanie', nach der letzten Sequenz konnte ich nichts mehr benutzen und das Skript endet.Schleife in Python-Skript

wpisane = input('>') #<<< 

#dodawanie 
if wpisane == dodawanie:  
    pierwsza = input('Podaj pierwsza liczbe: ') 
    druga = input('Podaj druga liczbe: ') 
    wynik_dodawania = (int(pierwsza) + int(druga)); 
    plus = '+' 
    równa_się = '=' 
    print() 
    print(int(pierwsza), plus, int(druga), równa_się, wynik_dodawania); 
    print() 
    wpisane=input('>') 


#odejmowanie 
if wpisane == odejmowanie: 
    pierwsza = input('Podaj pierwsza liczbe: ') 
    druga = input('Podaj druga liczbe: ') 
    wynik_odejmowania = (int(pierwsza) - int(druga)); 
    minus = '-' 
    równa_się = '=' 
    print() 
    print(int(pierwsza), minus, int(druga), równa_się, wynik_odejmowania); 
    print() 
    wpisane = input('>') 

Also habe ich beschlossen, die 'wpisane = Eingang def ('> ') und irgendwie

def komenda(): 
    wpisane = input('>') 

komenda() 

#dodawanie 
if wpisane == dodawanie:  
    pierwsza = input('Podaj pierwsza liczbe: ') 
    druga = input('Podaj druga liczbe: ') 
    wynik_dodawania = (int(pierwsza) + int(druga)); 
    plus = '+' 
    równa_się = '=' 
    print() 
    print(int(pierwsza), plus, int(druga), równa_się, wynik_dodawania); 
    print() 
    komenda() 


#odejmowanie 
if wpisane == odejmowanie: 
    pierwsza = input('Podaj pierwsza liczbe: ') 
    druga = input('Podaj druga liczbe: ') 
    wynik_odejmowania = (int(pierwsza) - int(druga)); 
    minus = '-' 
    równa_się = '=' 
    print() 
    print(int(pierwsza), minus, int(druga), równa_się, wynik_odejmowania); 
    print() 
    komenda() 

Schleife zu bilden und dann bekommen 'name "wpisane" nicht definiert ist', so def i es

def komenda(): 
    wpisane = input('>') 
    def wpisane(): 
     komenda() 

und am Ende Skript tun nur ‚Drücken Sie eine beliebige Taste, um fortzufahren‘ :( Wo ich Fehler machen? jede Hilfe ist willkommen :)

Antwort

0

Als ich die Frage verstehen, setzen Sie den gesamten Code in einer Endlosschleife:

while True: 
    wpisane = input('>') 

    #dodawanie 
    if wpisane == dodawanie:  
     pierwsza = input('Podaj pierwsza liczbe: ') 
     druga = input('Podaj druga liczbe: ') 
     wynik_dodawania = (int(pierwsza) + int(druga)); 
     plus = '+' 
     równa_się = '=' 
     print() 
     print(int(pierwsza), plus, int(druga), równa_się, wynik_dodawania); 
     print() 


    #odejmowanie 
    if wpisane == odejmowanie: 
     pierwsza = input('Podaj pierwsza liczbe: ') 
     druga = input('Podaj druga liczbe: ') 
     wynik_odejmowania = (int(pierwsza) - int(druga)); 
     minus = '-' 
     równa_się = '=' 
     print() 
     print(int(pierwsza), minus, int(druga), równa_się, wynik_odejmowania); 
     print() 
+0

Danke so sehr, dass sehr geholfen! – Baholo

0

Es gibt keine Schleife im Code ist.

Um den Benutzer zur Eingabe immer und immer wieder zu fragen, so etwas wie folgt zu verwenden:

def do_the_calculations(user_input): 
    if user_input == 'option_one': 
     pierwsza = input('Podaj pierwsza liczbe: ') 
     [...] 

    elif user_input == 'option_two': 
     pierwsza = input('Podaj pierwsza liczbe: ') 
     [...] 

while True: 
    i = input('>') 
    if i in ['q', 'quit', 'exit']: 
     break 
    do_the_calculations(i)