Python-代码块会转到if,但也会转到else块-为什么?
有人能告诉我为什么这个代码会转到if块,但即使我选择了3个选项中的一个,它也会转到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
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
…还要注意,它是一个内置的。您不应该覆盖其中的任何内容。