2017-05-30 2 views
-1

Ich suche nach einem Weg zu - nachdem Sie gewählt haben, was Sie sehen möchten (main_screen_choice) - in der Lage sein, etwas anderes zu wählen, ohne das Programm neu zu starten. Hier ist mein CodePython refresh Login System Code

users = [] 
victims = ['John Smith', 'Karen Jones', 'Kevin Tomlinson'] 
print ('>>>>> RauCo. Protection Corp. <<<<<') 
user = input('Username: ') 
def storeUser(): 
    users.append(user) 
def check(): 
    if user == 'Cabbage': 
    storeUser() 
    print ('Welcome back, Master...') 
    else: 
    print ('INTRUDER') 
    exit() 
check() 
main_screen_choice = input('What do you want to do? \nVictims, To Do, 
Exit\n(Case Sensitive!): ') 
def checkMainChoice(): 
if main_screen_choice == 'Victims': 
    print (victims) 
elif main_screen_choice == 'To Do': 
    print ('Have a shower - you stink!') 
elif main_screen_choice == 'Exit': 
    exit() 
else: 
    print ('Error: Not a valid option, please run program again') 
checkMainChoice() 
+0

"Eingang" erneut aufrufen? –

+0

Erfahren Sie, wie Schleifen arbeiten, z.B. https://www.learnpython.org/en/Loops und wickeln Sie Ihre Eingabe in eine Schleife. – Milo

Antwort

1

Gehen Sie einfach immer wieder zu dem Punkt, wo Sie um Eingabe bitten und das entsprechende Verhalten ausführen.

Dies wird normalerweise mit einer while Schleife implementiert. Wie würden Sie den Code wie folgt aussehen:

while True: 
    main_screen_choice = input('What do you want to do? \nVictims, To Do, 
     Exit\n(Case Sensitive!): ') 
    checkMainChoice() 

Aber ich weiß nicht, wie globale Variablen, und ich würde vorschlagen, dass Sie einen Parameter auf Ihre checkMainChoice Funktion geben:

def checkMainChoice(choice): 
    if choice == 'Victims': 
     print (victims) 
    elif choice == 'To Do': 
     print ('Have a shower - you stink!') 
    elif choice == 'Exit': 
     exit() 
    else: 
     print ('Error: Not a valid option, please run program again') 

Dann wird die while Schleife würde:

while True: 
    main_screen_choice = input(...) 
    checkMainChoice(main_screen_choice) 

Mehrere Ausführungen als Randbemerkung:

  • Einrückung in Python ist in der Regel vier Leerzeichen. Außerdem müssen Sie wirklich Zeilen überspringen, um Ihren Code lesbar zu machen.
  • Die Verwendung in Python besteht darin, Variablen in mixedCase und Methoden/Funktionen in lower_case_with_underscores zu benennen.
  • Sie geben an, dass bei Optionen die Groß-/Kleinschreibung beachtet wird, was für diese Art von Textmenüs nicht wirklich komfortabel ist. Sie können dies leicht lösen, indem Sie die Eingabe in Kleinbuchstaben mit der Methode lower setzen: choice = input(...).lower(). Dann werden Sie die Eingabe mit Kleinbuchstabenfolgen vergleichen: 'to do', 'exit' ...
+0

Nach dem Hinzufügen der While-Schleife, wenn ich antworte, was ich tun möchte, fragt es mich einfach nochmal, was ich tun möchte –

+0

@TylerRauer Nun, wenn das nicht das ist, wonach Sie gefragt haben, dann war Ihre Frage nicht wirklich klar –