好的,所以我是python的新手,我在python中遇到了一些逻辑问题。我想编写一段代码来从字典中读取信息,然后在输入关键字时显示键和值在用户输入中注册。 到目前为止,这是我的代码。...由于某种原因,仅关键字“ mama”似乎可以工作。.它显示键“ mama”的值和键“ tata”的值 最后的代码:
imena_i_rodjendani={'mama':'1-2-1981','lovro':'3-12-2004','tata':'1-5-1982'}
ime=str(input("ime: "))
if ime==str('mama'):
print(imena_i_rodjendani.get('mama'))
if ime==str('lovro'):
print(imena_i_rodjendani.get('lovro'))
else:
print(imena_i_rodjendani.get('tata'))
除输入'mama'以外的所有其他输入似乎都没有废除我所写的逻辑,它们只是在没有任何错误的情况下结束了程序。 附言告诉我我使用该网站的方式有误还是以错误的方式提出问题。感谢任何提前阅读此帖子的人!
答案 0 :(得分:0)
您应该使用elif
将其他两个测试置于与'mama'
的测试相同的级别;否则,ime
必须首先'mama'
才能进行'lovro'
的测试,这是永远不会发生的。
imena_i_rodjendani={'mama':'1-2-1981','lovro':'3-12-2004','tata':'1-5-1982'}
ime=str(input("ime: "))
if ime==str('mama'):
print(imena_i_rodjendani.get('mama'))
elif ime==str('lovro'):
print(imena_i_rodjendani.get('lovro'))
else:
print(imena_i_rodjendani.get('tata'))
答案 1 :(得分:0)
Python使用空格分隔结构。您的缩进不正确。另外,您可能希望使用关键字elif
。试试这个:
imena_i_rodjendani={'mama':'1-2-1981','lovro':'3-12-2004','tata':'1-5-1982'}
ime=str(input("ime: "))
if ime==str('mama'):
print(imena_i_rodjendani.get('mama'))
elif ime==str('lovro'):
print(imena_i_rodjendani.get('lovro'))
else:
print(imena_i_rodjendani.get('tata'))
编辑:
您可能会考虑采用其他更健壮的方法来解决问题。首先要注意的是,input()
已经返回了一个字符串,因此无需强制转换。其次,您可能想利用字典的功能,而不是为每个选项硬编码一堆逻辑。
例如:
imena_i_rodjendani={'mama':'1-2-1981','lovro':'3-12-2004','tata':'1-5-1982'}
ime=input("ime: ")
if ime in imena_i_rodjendani:
print(imena_i_rodjendani[ime])
else:
print('ime not found!')
这将处理用户未输入已知值的情况,并允许您向字典中添加新值,而不必为每个条件显式编写其他条件。