(Python)即使满足IF也会执行ELSE吗?

时间:2020-02-02 19:12:07

标签: python boolean

我的作业有点儿卡住了,为什么代码即使认为“如果”已经满足,也会执行“ else”?忽略草率的代码,我是新手:/

order1 = input("What would you like to order?: \n \n" + "1: " + orderBurger + "\n" + "2: " + orderFries + "\n" + "3: " + orderDrink + "\n" + "\nAnswer = ")

while order == True:
 if order1 == 1:
  print("You have selected to order 1: " + orderBurger)
 elif order1 == 2:
  print("You have selected to order 1: " + orderFries)
 elif order1 == 3:
  print("You have selected to order 1: " + orderDrink)
 else:
  print("Invalid Input")
 check = input("Is this your final item?:" + "1: " + q1 + "2: " + q2  + "Answer = ")
 if check == 1:
  print("Your items have been added to the basket")
  break
 elif check == 2:
  check
 elif check == 3:
  check
 else:
  print("Invalid input")

This is the output

3 个答案:

答案 0 :(得分:0)

如果使用type(order1),则会看到答案是字符串还是整数。如果它是字符串(我认为是),则可以使用int(order1)将其转换为int,或将代码替换为if order1 == '1'

答案 1 :(得分:0)

缩进在Python中非常重要。根据缩进的实现方式,将执行条件代码块。

缩进位置错误会导致代码块意外执行。

这是订购程序的有效演示

# File name:  order-demo.py

moreItems = True
while (moreItems == True):
    order = input("\n What would you like to order?\n" 
                  + " 1: Burger\n 2: Fries\n 3: Drink\n Answer = ")

    if ((order == "1") or (order == "2") or (order == "3")):
        print("You have selected to order " + order)
        print("Your item has been added to the basket.\n")
    else:
        print("Invalid Input")

    check = input("Is this your final item?: \n 1: Yes \n 2: No \n Answer = ")
    if check == "1":
            print("\n Thank you. Please proceed to checkout.")
            moreItems = False       
    elif check == "2":
            print("Please continue your shopping")
    else:
        print("Invalid input")

输出

$ python3 order-demo.py 

 What would you like to order?
 1: Burger
 2: Fries
 3: Drink
 Answer = 1
You have selected to order 1
Your item has been added to the basket.

Is this your final item?: 
 1: Yes 
 2: No 
 Answer = 2
Please continue your shopping

 What would you like to order?
 1: Burger
 2: Fries
 3: Drink
 Answer = 2
You have selected to order 2
Your item has been added to the basket.

Is this your final item?: 
 1: Yes 
 2: No 
 Answer = 1

 Thank you. Please proceed to checkout.
$ 

答案 2 :(得分:0)

用以下内容替换第一行:

order1 = int( input("What would you like to order?: \n \n" + "1: " + orderBurger + "\n" + "2: " + orderFries + "\n" + "3: " + orderDrink + "\n" + "\nAnswer = ") )