我需要多个输入来运行phonebookpython的主函数

我需要多个输入来运行phonebookpython的主函数,python,python-3.x,function,Python,Python 3.x,Function,我在编写重复输入部分的程序时遇到问题。比如说 input 1 ___run add_contact() again ask for input input 4____run disp_contact() ... ... 我从来没有写过长代码!:\ 我完全是乞丐!在业余时间学习一点Python 我的导师说,你应该定义几个函数,并将它们放在一个主函数中,以获取输入。 所以,如果有人能告诉我为什么我会这样陷入困境,我将不胜感激 contact={} print(''' phone book

我在编写重复输入部分的程序时遇到问题。比如说

input 1 ___run add_contact()
again ask for input
input 4____run disp_contact()
...
...
我从来没有写过长代码!:\

我完全是乞丐!在业余时间学习一点Python 我的导师说,你应该定义几个函数,并将它们放在一个主函数中,以获取输入。 所以,如果有人能告诉我为什么我会这样陷入困境,我将不胜感激

contact={}
print(''' phone book
    1. add contact
    2.delete contact
    3.search contact
    4.display all
    5.Quit''')

def add_contact():
    name=input('enter the name: ')
    number=input('enter the number: ')
    contact[name]=number
    print(name, 'added to phone book!')
    
def del_contact():
    name=input('enter the name: ')
   
    while name not in contact:
        print("not found! try again" )
        name=input('enter again: ')

    else:    
        print(name,' deleted')
        del contact[name]
        name=False
      
        
        
def search_contact():
    name=input('enter the name: ')
    while name not in contact:
        print('not found!')
        name=input('enter again: ')  
    else:
        print(name, 'number is :',  contact[name])  
        
def disp_contact():
    if len(contact)>0:
       print('phone book contacts are: ')
       for i in contact:
         print(i, end=' ')
    else:
      print('phone book is empty!')    
    
        
def main_def(num):
       

       if num==1:
              add_contact()
              
       elif num==2:
              del_contact()
              
       elif num==3:
              search_contact()
              
       elif num==4:
              disp_contact()

       elif num==5:
          print('bye bye') 



x=int(input(' enter a number: '))
main_def(x)

您可以将
main_def
包装在
中,而为True
,并在给出
5
时使用
exit(O)
正确退出

def main_def(num):
    if num == 1:
        add_contact()
    elif num == 2:
        del_contact()
    elif num == 3:
        search_contact()
    elif num == 4:
        disp_contact()
    elif num == 5:
        exit(0)

while True:
    x = int(input(' enter a number: '))
    main_def(x)

注 对于
del_contact
search_contact
,您不需要像这样在后面加上
else

def del_contact():
    name = input('enter the name: ')

    while name not in contact:
        print("not found! try again")
        name = input('enter again: ')

    print(name, ' deleted')
    del contact[name]

TNX很多,但elif num==5:exit(0)不起作用;(@GhazalKz“没有工作”是什么意思?停止该功能!@GhazalKz我已经尝试过了,它运行得很好,
exit
确实会停止程序,但是你可以在退出前继续打印Ebye刚才说的内容,你认为它不会停止是因为它没有告诉你它停止了吗?我认为我的IDE有问题。对不起。你可以考虑奖励那些帮助过你的人u、 或者至少发表评论来解释缺失的内容;)