python - Python(和编程)新手看不出我哪里出错了

标签 python

我在业余时间学习了一些 Python。试图制作一个电话簿,在这个网站上找到了一个; Python assignment for a phonebook .已将其用作模板但省略了 print_menu 函数。这是我能看到的唯一区别,但是当我添加一个数字时,它会卡在那个部分。只是要求输入姓名和号码,而不是逃避 if 循环。如果有人能告诉我为什么我会这样卡住,我将不胜感激。

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()

最佳答案

这里有两个问题。正如 Padraic 和 Leistungsabfall 所提到的,input 返回一个字符串,但您仅获得一次输入。如果您想继续获取输入,则需要将其放入循环中:

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

关于python - Python(和编程)新手看不出我哪里出错了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38922387/

相关文章:

Python无法连接MySQL

python - 地铁 python 和 linux

python - 如何创建用于递归生成迭代函数的函数

python - 将从 python 字典中提取的信息写入文件

python - 蒙戈 : Resolver configuration could not be read or specified no nameservers

python - django 通过用户名检查用户是否登录

python - 消除不满足匹配条件的数组行

python - 将图像存储在内存中,然后写入磁盘

python - 使用 python3.x 在 Linux 中查看分区

python - 在特征名称后面加上@有什么作用?