好吧,我是python的新手,我对python中的一些逻辑有问题,我想编写一段代码,它将从我的字典中读取信息,然后在关键字注册到用户输入时显示键和值。这是我的代码,所以由于某种原因,只有关键字'mama‘看起来有点像work..it,它显示了键'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‘之外的所有其他输入似乎都没有给出我所写的逻辑的废话,它们只是简单地结束了程序,没有任何错误。另外,请告诉我,如果我使用错误的网站,或者如果我问了一个错误的way.Thank你的问题,任何人阅读这篇文章提前!
发布于 2018-07-08 04:55:36
您应该使用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'))
发布于 2018-07-08 04:57:04
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!')
这将处理用户未输入已知值的情况,并允许您向字典中添加新值,而不必为每个值显式编写附加条件。
https://stackoverflow.com/questions/51226859
复制相似问题