Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python-代码块会转到if,但也会转到else块-为什么?_Python_If Statement - Fatal编程技术网

Python-代码块会转到if,但也会转到else块-为什么?

Python-代码块会转到if,但也会转到else块-为什么?,python,if-statement,Python,If Statement,有人能告诉我为什么这个代码会转到if块,但即使我选择了3个选项中的一个,它也会转到else块吗 elige = "diccionario" dict = {1:"Emiliano", 2: "Grama", "Fastlaner": "Volviendo a programar"} tupla = ("Lista", "Fija", "de&quo

有人能告诉我为什么这个代码会转到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
测试
“dicconary”
,但
elige
“dicconario”
。也就是说,您编写的
else
将对任何
elige
执行,但
列表“
,这几乎肯定是错误的。

尝试将第二个和第三个if替换为elif,如下所示:

elif elige == "Tuple" :
    result = tupla
    print ("he aqui tu tupla")
    print (result)

否则,else子句只属于第三个if,这不是您想要的,您的if语句都不是真的,所以我们继续使用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)

elif elige == "Tuple" :
    result = tupla
    print ("he aqui tu tupla")
    print (result)

elif elige == "list" :
    result = lista
    print(result)

else:
    print("no fue por ningun camino che")
    print(result)

else块只是最后一个if语句的一部分

我想你可能想要这个:

if elige == "diccionary":
    dict[2] = "que chor"
    result = dict
    print (result)

elif elige == "Tuple":
    result = tupla
    print ("he aqui tu tupla")
    print (result)

elif elige == "list":
    result = lista
    print(result)

else:
    print("no fue por ningun camino che")
    print(result)

else
块仅“附加”到前面的
if
,而不是全部。您可能想了解一下
elif
…还要注意,它是一个内置的。您不应该覆盖其中的任何内容。