我该怎么做呢?通过用户输入向字典添加值?

时间:2019-11-02 04:37:28

标签: python dictionary

我正在尝试编写一个使用字典的程序,以创建可跟踪电话号码的个人电话簿,让您通过键入联系人姓名来访问它们。该词典的密钥是您要检索其电话号码的人的名字。该值为电话号码。 (键和值是字符串)

我想提示用户从以下菜单选项中进行选择:

  1. 添加新联系人

  2. 查询联系人

  3. 退出

选项1和2应该在函数中实现-意味着,如果用户选择1,则程序执行应该转到执行加法运算的函数。

选项1应该允许用户输入所需的任意数量的联系人。然后,它在键的空字符串值上结束循环。添加名称后,该功能将打印电话簿。

选项2提示用户输入名称并显示相应的值。如果找不到密钥,该功能应重新提示用户。

我绝对很困,到目前为止,这是我的代码:

pb = {"Isaiah":"6504213951", "Will":"7632991650", "Jack":"4319091874",
      "Tim":"2657554886", "Eric":"7837947361", "Joe":"7985579489",
      "Alex":"4616231562", "Steve":"8309117856"}

w = input("would you like to add a contact?")


#h = input("would you like to look up a contact?")
#name = input("state the name")

if w == "yes":
    add(w)

if w == "no":

    query(h)


def add(w):
    for key in pb:
        key = input("enter the key: ")
        value = input("enter the value: ")
    pb[key] = value  

    print(pb)

必须有一种更有效的方法。我正在尝试使用if语句来调用其中具有字典添加代码的函数;但我不知道如何让用户提示访问该代码。

1 个答案:

答案 0 :(得分:0)

  

我想提示用户从以下菜单选项中进行选择

因此,使提示实际执行此操作-显示菜单,然后在输入中查找123,而不是yes或{{ 1}}。

  

选项1应该允许用户输入所需的任意数量的联系人。然后,它在键的空字符串值上结束循环。添加名称后,该功能将打印电话簿。

因此,no在这里没有意义-它将循环的次数与电话簿中现有条目的次数一样多,而不是寻找空字符串值。

(将输入for key in pb:传递给w函数也没有意义-该函数将忽略它,并且实际上与执行任务无关。)

  

我正在尝试使用add语句来调用其中具有字典附加代码的函数;但我不知道如何让用户提示访问该代码。

我不明白这个问题。提供特定输入后,您的代码将调用ifadd是在这种情况下可以完成您想要的功能的功能(至少在固定为可以正确循环后才可用)。难道这还没有解决吗?