我刚开始学习Python (在学校学习),很难理解这个简单的代码:
# Take a planet name as input. Example: Mars, Neptune, Mercury etc.
myPlanet = raw_input("Enter the name of a planet: ")
# Check if 'myPlanet' is stored in the list of dictionaries.
for dictionary in planets:
if (dictionary["name"] == myPlanet):
print(dictionary)
else:
print("Unknown planet specified.")
return示例输出:
Enter the name of a planet: Mercury
{'radius': 2439.7, 'name': 'Mercury'}
Unknown planet specified.当水星存在于列表中时,为什么在这里执行else块?
输出“未知行星”?会显示出来。我做错了什么?
发布于 2020-11-15 13:47:24
因为您检查是否为每个字典找到匹配的。假设有几个行星并且你找到了匹配的行星,你继续迭代到下一个行星,当它不匹配的时候,你会得到else语句。您可能需要取消else的缩进,并将一个break添加到if中,以创建for/else构造:
for dictionary in planets:
if (dictionary["name"] == myPlanet):
print(dictionary)
break
else:
print("Unknown planet specified.")在这里,else只会在循环耗尽而不破坏的情况下执行,这意味着没有一个行星与此条件匹配。
https://stackoverflow.com/questions/64845062
复制相似问题