首页 > 解决方案 > 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)

标签: pythonif-statement

解决方案


如果传递的语句链中的任何一个应该阻止执行,那么除了第一个之外的所有语句都应该将块连接在一起:ifelseifelif

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正如你写的那样,它会为任何eligebut执行"list",这几乎肯定是错误的。


推荐阅读