问题 我试图将用户输入指定为字典中的键。如果用户输入是一个键,则打印出它的值,否则打印无效键。问题是键和值将来自文本文件。为简单起见,我将只对文本使用随机数据。任何帮助,将不胜感激。
文件.txt
狗,树皮
猫,喵
鸟,唧唧
代码
def main():
file = open("file.txt")
for i in file:
i = i.strip()
animal, sound = i.split(",")
dict = {animal : sound}
keyinput = input("Enter animal to know what it sounds like: ")
if keyinput in dict:
print("The ",keyinput,sound,"s")
else:
print("The animal is not in the list")
原文由 Kitty 发布,翻译遵循 CC BY-SA 4.0 许可协议
在循环的每次迭代中,您都在 重新定义 dictionary ,而是添加新条目:
然后,您可以按键访问字典项目:
请注意,我还将字典变量名称从
dict
更改为d
,因为dict
变量名称选择 - 是一个糟糕 的dict
。此外,我还改进了构建报告字符串的方式并改为使用 字符串格式。如果您输入
Dog
,输出将为The Dog barks
。您还可以使用
dict()
构造函数在一行中初始化字典:作为旁注, 为了遵循最佳实践并保持代码的可移植性和可靠性,请在打开文件时使用
with
上下文管理器- 它会注意正确关闭它: