python - Python-代码块转到 if 但也转到 else 块-为什么?
问题描述
有人能告诉我为什么这段代码会进入 if 块,但即使我选择了 3 个选项之一,它也会进入 else 块?
elige = "diccionario"
dict = {1:"Emiliano", 2: "Grama", "Fastlaner": "Volviendo a programar"}
tupla = ("Lista", "Fija", "de","mie",1)
lista = ["sera","una","list"]
result = ""
if elige == "diccionary" :
dict[2] = "que chor"
result = dict
print (result)
if elige == "Tuple" :
result = tupla
print ("he aqui tu tupla")
print (result)
if elige == "list" :
result = lista
print(result)
else:
print("no fue por ningun camino che")
print(result)
解决方案
如果传递的语句链中的任何一个应该阻止执行,那么除了第一个之外的所有语句都应该将块连接在一起:if
else
if
elif
if elige == "diccionary":
...
elif elige == "Tuple": # elif ties it to preceding if
...
elif elige == "list": # elif ties it to preceding if/elif
...
else: # Now tied to whole if/elif chain
...
旁注:在您的实际示例中,else
应该执行;的if
测试"diccionary"
,但是elige
是"diccionario"
。也就是说,else
正如你写的那样,它会为任何elige
but执行"list"
,这几乎肯定是错误的。
推荐阅读
- jenkins - 您可以使用 GitHub 源分支插件更改 jenkins 作业的工作区吗?
- sql - 确定数据库关系
- streaming - Live Internet Audio Stream --> Smart Outlet Manipulation... 有可能吗?
- unity3d - Unity Networking: Restore server objects on scene after change scene
- api - 如何为 clockify API 指定日期/时间?哪些字段是可选的?
- bash - ssh -T git@github.com 有问题
- data-visualization - Tableau:在具有两个双轴的图表中隐藏值
- python - 根据第二个字典中的值过滤字典
- boolean - implementing two commands in one boolean case
- postgresql - postgreSQL 错误创建带有引用的表