if-if-else vs if-elif-else语句

But*_*ers -2 python if-statement

即使选择了正确的选择,为什么'else'语句也会被打印出来?

    ch=0
    print"Do you need Ice-Cream?"
    ans=raw_input()
    if ans=='y':
        print"Pick a flavor"
        ch=raw_input() # ch is a string
        if ch=='1':
            print"Vanilla"
        if ch=='2':
            print"Chocolate"
        if ch=='3':
            print"Strawberry"
        if ch=='4':
            print"Kiwi"
        if ch=='5':
            print"orange"
        if ch=='6':
            print"mango"
        if ch=='7':
            print"pineapple"
        if ch=='8':
            print"grapes"               
        print"You are done picking up a flavor, pay now"    
    if ans=='n':
        print"Good, you can go!"
    else:
        print"wrong choice" 
Run Code Online (Sandbox Code Playgroud)

即使选择了有效选项,输出也会打印"错误选择".

pat*_*ren 5

因为检查"y"的if语句和检查"n"的第二个if语句是两个不同的.else只连接到带有"n"-check的第二个if语句.你想拥有最外面的陈述

if "y":
    ....
elif "n":
    ....
else:
    ....
Run Code Online (Sandbox Code Playgroud)