2016-08-12 26 views
3

我在業餘時間學習了一點Python。試圖製作一個電話簿,在這個網站上找到一個; Python assignment for a phonebook。已經使用它作爲模板,但省略了print_menu函數。這是我能看到的唯一區別,但是當我添加一個數字時,它會卡在那部分中。只是要求輸入名稱和編號,而不是轉義if循環。如果任何人都可以告訴我爲什麼我這樣卡住,我會很感激。剛接觸Python(和編程)看不到我要去哪裏錯

phoneBook = {} 

def main(): 
    action = input("What would you like to do? \n 1. Add \n 2. Delete \n 3. Print \n 4. Quit \n") 
    while action != 4: 
     if action == '1': 
      name = input("Enter name: ") 
      num = input("Enter number: ") 
      phoneBook[name] = num 
     elif action == '2': 
      name = input("Delete who?") 
      if name in phoneBook: 
       del phoneBook[name] 
      else: 
       print("Name not found") 
     elif action == '3': 
      print("Telephone numbers: ") 
      for x in phoneBook.keys(): 
       print("Name: ", x, "\tNumber: ", phoneBook[x]) 
     elif action == '4': 
      print("Application closed.") 

main() 
+2

'而行動=「4」:!' –

回答

6

您在這裏有兩個問題。由於Padraic和Leistungsabfall提到,input返回一個字符串,但您只獲得一次輸入。如果你想繼續獲得輸入,你將需要把你的循環內:

action = None 
while action != '4': 
    action = input('What action would you like? ') 
    # the rest of your code here 
+0

謝謝,剛剛得到它與這些修復工作 – Podge

6

input()返回一個字符串,而不是一個整數。

所以

while action != 4: 

應該變成:

while action != '4': 
+0

是啊,剛纔看到的是,改變了他們全部爲整數來代替。在我看到答覆之前就已經開始工作了。謝謝! – Podge

相關問題