2017-06-24 34 views
0

私はここでプログラムを終了しようとしていますが、すべてが適切に機能していますが、def endapp()関数では "Goodbye"を印刷する方法はわかりませんmenu()関数やlogin()のような他の関数をループバックさせずに、プログラムの終わりをマークしてください。それ以外のものはそれなりに機能していますが、印刷メッセージだけでプログラムを終了する方法はわかりません。私は、完全なアプリケーションを終了するためにsys.exit()を使うのではなく、行き詰まったところで "Goodbye"を印刷した後に、何かを出力するのを止めるだけのプログラムが必要です。注意:関数viewapp()、addapp()、summary()はすべてlogged()にループバックしますが、まだコードを追加していませんが、endapp()はループを持たず、 「さようなら」他の機能はループバックして入力を再度尋ねるべきではありません。コード例で助けていただければ幸いです。私が行うには、Uを提案することができますどのようなPython:printステートメントでプログラムを終了する

vault = {} 


def menu(): 
    mode = input("""Hello {}, below are the modes that you can choose from:\n 
    ########################################################################## 
    a) Login with username and password 
    b) Register as a new user 
    To select a mode, enter the corresponding letter of the mode below 
    ##########################################################################\n 
    > """.format(name)).strip() 
    return mode 

def login(): 
    if len(vault) > 0 : #user has to append usernames and passwords before it asks for login details 
     print("Welcome to the login console") 
     while True: 
      username = input ("Enter Username: ") 
      if username == "": 
       print("User Name Not entered, try again!") 
       continue 
      password = input ("Enter Password: ") 
      if password == "": 
       print("Password Not entered, try again!") 
       continue 
      try: 
       if vault[username] == password: 
        print("Username matches!") 
        print("Password matches!") 
        logged() #jumps to logged function and tells the user they are logged on 
      except KeyError: #the except keyerror recognises the existence of the username and password in the list 
       print("The entered username or password is not found!") 

    else: 
     print("You have no usernames and passwords stored!") 

def register(): #example where the username is appended. Same applies for the password 
    print("Please create a username and password into the password vault.\n") 

    while True: 
     validname = True 
     while validname: 
      username = input("Please enter a username you would like to add to the password vault. NOTE: Your username must be at least 3 characters long: ").strip().lower() 
      if not username.isalnum(): 
       print("Your username cannot be null, contain spaces or contain symbols \n") 
      elif len(username) < 3: 
       print("Your username must be at least 3 characters long \n") 
      elif len(username) > 30: 
       print("Your username cannot be over 30 characters \n") 
      else: 
       validname = False 
     validpass = True 

     while validpass: 
      password = input("Please enter a password you would like to add to the password vault. NOTE: Your password must be at least 8 characters long: ").strip().lower() 
      if not password.isalnum(): 
       print("Your password cannot be null, contain spaces or contain symbols \n") 
      elif len(password) < 8: 
       print("Your password must be at least 8 characters long \n") 
      elif len(password) > 20: 
       print("Your password cannot be over 20 characters long \n") 
      else: 
       validpass = False #The validpass has to be True to stay in the function, otherwise if it is false, it will execute another action, in this case the password is appended. 
     vault[username] = password 
     validinput = True 
     while validinput: 
      exit = input("\nEnter 'end' to exit or any key to continue to add more username and passwords:\n> ") 
      if exit in ["end", "End", "END"]: 
       return 
      else: 
       validinput = False 
       register() 
     return register 

#LOGGED ONTO THE PASSWORD AND WEBSITE APP ADDING CONSOLE---------------------------------------------------------------------------------- 

def logged(): 
    print("You are logged in!\n") 
    keeplooping = True 
    while keeplooping: 
     modea = input("""Below are the options you can choose: 
     ##########################################################################\n 
     1) Viewapp 
     2) Addapp 
     3) Summary 
     4) Exit 
     ##########################################################################\n 
     > """).strip() 

     if modea == "1": 
      viewapp() 

     elif modea == "2": 
      addapp() 

     elif modea == "3": 
      summary() 

     elif modea == "4": 
      keeplooping = False 
      print("Goodbye") 
     else: 
      print("That was not a valid option, please try again: ") 
      validintro = False 
    return modea 


def viewapp(): 
    print("*Insert viewapp*") 

def addapp(): 
    print("*Insert addapp*")  

def summary(): 
    print("*Insert summary*") 

#Main routine 
print("Welcome to the password vault program") 
print("In this program you will be able to store your usernames and passwords in password vaults and view them later on.\n") 
validintro = False 
while not validintro: 
    name = input("Hello user, what is your name?: ") 
    if len(name) < 1: 
     print("Please enter a name: ") 
    elif len(name) > 30: 
     print("Please enter a name no more than 30 characters: ") 
    else: 
     validintro = True 
     print("Welcome to the password vault program {}.".format(name)) 

#The main program to run in a while loop for the program to keep on going back to the menu part of the program for more input till the user wants the program to stop 
validintro = False 
while not validintro: 
     chosen_option = menu() #a custom variable is created that puts the menu function into the while loop 
     validintro = False 

     if chosen_option in ["a", "A"]: 
      login() 

     elif chosen_option in ["b", "B"]: 
      register() 

     else: 
      print("""That was not a valid option, please try again:\n """) 
      validintro = False 

答えて

1

があること: 第一 - ログイン()関数内でユーザが

elif modea == '4' keeplooping = False print('Goodbye') return keeplooping 第二選択した場合 - ログイン()関数で:代わりに、しばらくの真実。行うことができますあなたは第三

def login(): 
if len(vault) > 0 : #user has to append usernames and passwords before it asks for login details 
    print("Welcome to the login console") 
    state = True 
    while state: 
     username = input ("Enter Username: ") 
     if username == "": 
      print("User Name Not entered, try again!") 
      continue 
     password = input ("Enter Password: ") 
     if password == "": 
      print("Password Not entered, try again!") 
      continue 
     try: 
      if vault[username] == password: 
       print("Username matches!") 
       print("Password matches!") 
       state = logged() #jumps to logged function and tells the user they are logged on 
       return state #return the state of user option (True/False) 
     except KeyError: #the except keyerror recognises the existence of the username and password in the list 
      print("The entered username or password is not found!") 

else: 
    print("You have no usernames and passwords stored!") 

ということです - メインプログラムvalidintroではそれに応じて変更されるべきである

validintro = False 
while not validintro: 
    chosen_option = menu() #a custom variable is created that puts the menu function into the while loop 
    validintro = False 

    if chosen_option in ["a", "A"]: 
     validintro = not login() 

    elif chosen_option in ["b", "B"]: 
     register() 

    else: 
     print("""That was not a valid option, please try again:\n """) 
     validintro = False 

それはかなり先端のトリックですが、それは

を働かなければなりません
関連する問題