所以我想弄清楚如何解决这个问题。假设我有一些if语句和else语句。当我做出一个属于if的选择时,似乎也会运行else语句。例如:
option = float(input("Select Option"))
if (option == 1):
print("Population Group 1")
if (option == 2):
print("Population Group 2")
else:
print("Invalid Selection")
print("Testing")
示例输出将是:
Select Option1
Population Group 1
Invalid Selection
Testing
关于为什么会发生这种情况或如何解决这个问题的任何想法?
答案 0 :(得分:3)
else
语句仅适用于上一个if
。要将if
链接到else
,请使用if/elif/.../else
序列:
if option == 1:
print("Population Group 1")
elif option == 2:
print("Population Group 2")
else:
print("Invalid Selection")
答案 1 :(得分:0)
将您的第二个if
语句更改为elif
语句。
option == 1
的控制流程如下:
check first IF statement -> True (no ELSE block to skip)
check second IF statement -> False, continue to ELSE block
execute ELSE block
你想要的是什么:
check first IF statement -> True, skip ELSE block
答案 2 :(得分:0)
要确保只匹配第一个 true 条件并避免级联效应,请使用 elif :
option = float(input("Select Option"))
if option == 1:
print("Population Group 1")
elif option == 2:
print("Population Group 2")
else:
print("Invalid Selection")
print("Testing")
答案 3 :(得分:0)
查看python documentation on control flow tools。您只需要用if
替换第二个elif
:
option = float(input("Select Option"))
if (option == 1):
print("Population Group 1")
elif (option == 2):
print("Population Group 2")
else:
print("Invalid Selection")
print("Testing")