while循环为什么出现这样的状况

为什么我输了start也print了sorry呢?我把else的缩进前移了就直接error 好难啊while循环怎样才能在我输入start是只print1 stop是只print2呢

img

if 和 else是配对的,你只有一个else,和最近的if配对
while a != "quit":
a = input("")


if a == "start":
print("1")


if a == "stop":
print("2")


if a == "quit":
break;
else:
print("sorry")

我间隔开了,就是说,你输入每一个字符串都会判断一次start,stop,同时判断一次quit
所以当你输入start,会输出1,同时又判断是否等于stop,发现不等,在判断是否等于quit, 不等,但这里有个else所以就执行else了

你这是三个判断语句
想要达到你想要的效果应该是一个判断语句

while(True):
    a=input()
    if a=="start":
        print(1)
    elif a=="stop":
        print(2)
    elif a=="quit":
        break
    else:
        print("sorry")

这是因为条件语句使用出了问题,把第二个,第三个if改为elif就可以了。

a=""
while a!= "quit":
    a=input("")
    if a=="start":
        print("1")
    elif a=="stop":
        print("2")
    elif a=="quit":
        break
    else :
        print("sorry")