python - 如何为字典中选择的键值打印正确的值?(Python)
问题描述
我正在制作一本包含不同人生日的字典(用户通过输入填写)。现在,我还希望用户能够写下他/她刚刚添加的名字之一,然后得到那个人的生日作为回报。问题是它总是返回最后添加到列表中的日期,不管用户写了哪个名字。所以说用户已经把这些元素放在了:{anna:1.october, paul:3.january}。如果我希望程序打印 Anna 的生日,它会打印“anna 的生日是 3.january”。这就是我的代码的样子(顺便说一句,它大致翻译成英文,所以不要介意潜在的语言错误):
birthdays={}
name= ""
date= ""
while True:
name= input("Who's birthday would you like to add?:")
if name.strip() == "done":
break
date= input("When is the person's birthday?:")
find= input("\n Type in a name that you've added!:")
for name in birthdays:
if find == name in birthdays or date in birthdays:
print(" %s 's birthday is at %s" % (name, date))
我觉得最后 4 行中可能有问题。所有帮助表示赞赏!:)
解决方案
首先,在您添加的代码中,我看不到您将值添加到字典的部分。之后,您可以通过以下方式搜索:
if find in birthdays:
date = birthdays.get(find)
print(" %s 's birthday is at %s" % (find, date))
推荐阅读
- sip - 当 200OK 更新请求在 200OK 之后用于 SIP 中的初始 INVITE 时,是否有可能?
- python - 这是否意味着端口 9000 不可用?
- ebpf - 有没有办法在整个 BPF 映射中查找特定值?
- java - Java代码 - 如何使用脚本仅删除带注释的方法
- node.js - 进行 NPM 安装时出现以下错误 (NJS-054)
- python - 计算一行 pandas 中最频繁的值,并用该最频繁的值创建一列
- python - 无法访问静态文件夹(在 Flask 上服务 Angular 应用程序)
- python - 如何将 for 循环从 Python 转换为 R?
- google-apps-script - 更新项目的文本验证时出现无效的数据更新表单错误
- php - PHP - 未设置的数组,其中键是 X,值是 Y