Python 3.x 当需要在范围外使用变量时,如何在if语句中获取此输入语句以进行提示?

Python 3.x 当需要在范围外使用变量时,如何在if语句中获取此输入语句以进行提示?,python-3.x,Python 3.x,因此,我想提示用户输入数字1-3表示苏打水,4(或任何其他数字)表示水。如果他们选择苏打水,它应该问他们一个尺寸。但是,如果他们选择水,则应跳过尺寸问题。如果他们选择了水,我可以将大小问题转化为if语句,但是我不能在这个范围之外使用大小变量。我该怎么做呢?虽然所有的计算都是正确的,但我现在所拥有的提示了水的大小问题 HAMBURGER = 3.25 CHEESEBURGER = 3.25 CHICKEN = 2.50 SMALL = 1.50 MED = 2.25 LARGE = 2.75 WA

因此,我想提示用户输入数字1-3表示苏打水,4(或任何其他数字)表示水。如果他们选择苏打水,它应该问他们一个尺寸。但是,如果他们选择水,则应跳过尺寸问题。如果他们选择了水,我可以将大小问题转化为if语句,但是我不能在这个范围之外使用大小变量。我该怎么做呢?虽然所有的计算都是正确的,但我现在所拥有的提示了水的大小问题

HAMBURGER = 3.25
CHEESEBURGER = 3.25
CHICKEN = 2.50
SMALL = 1.50
MED = 2.25
LARGE = 2.75
WATER = 0.00
SALES_TAX = 0.08


sandwich = int(input("Sandwich?\nPlease 
enter 1 for a hamburger, 2 for a cheeseburger, 3 for a chicken sandwich 
or 4 for no sandwich: "))
if sandwich == 1:
    sandwich = HAMBURGER
elif sandwich == 2:
    sandwich = CHEESEBURGER
elif sandwich == 3:
    sandwich = CHICKEN
else:
    sandwich == 0

drink = float(input("Drink?\nPlease enter 1 for Coke, 2 for Sprite, 3 
for lemonade, or 4 for a cup of water: "))
water = drink < 1 or drink >= 4
size = float(input("Size?\nPlease enter 1 for Small, 2 for Medium, or 3 
for large: "))
if size == 1:
    size = SMALL
elif size == 2:
    size = MED
elif size == 3:
    size = LARGE
else:
    size = MED
if water:
    size = WATER

subtotal = (sandwich+(drink * size))
sales_tax = (subtotal * SALES_TAX)
total = (subtotal + sales_tax)

print("Here is your order: ")

if sandwich == HAMBURGER:
    print(f"Hamburger\t\t\t${HAMBURGER:10.2f}")
elif sandwich == CHEESEBURGER:
    print(f"Cheeseburger\t\t\t${CHEESEBURGER:10.2f}")
elif sandwich == CHICKEN:
    print(f"Chicken Sandwich\t\t\t${CHICKEN:<40.2f}")

if size == SMALL:
    print(f"Small Drink\t\t\t${SMALL:10.2f}")
if size == MED:
    print(f"Medium Drink\t\t\t${MED:10.2f}")
if size == LARGE:
    print(f"Large Drink\t\t\t${LARGE:10.2f}")
else:
    print(f"Water\t\t\t${WATER:<40.2f}")

print('-' * 30)
print(f"Subtotal: ${subtotal:.2f}")
print(f"Sales Tax: ${sales_tax:.2f}")
print(f"Total:  ${total:.2f}")
汉堡=3.25 芝士汉堡=3.25 鸡肉=2.50 小=1.50 MED=2.25 大=2.75 水=0.00 销售税=0.08 三明治=整数(输入(“三明治”?\n请 输入1表示汉堡包,2表示奶酪汉堡,3表示鸡肉三明治 或4个不含三明治:)) 如果三明治==1: 三明治=汉堡包 elif三明治==2: 三明治=奶酪汉堡 elif三明治==3: 三明治=鸡肉 其他: 三明治==0 饮料=浮子(输入(“饮料”?\n请输入1表示可乐,2表示雪碧,3 喝柠檬水,或喝一杯水喝4杯:“)) 水=饮料<1或饮料>=4 大小=浮动(输入(“大小”?\n请输入1表示小,2表示中,或3 对于大型:)) 如果大小=1: 尺寸=小 elif大小==2: 尺寸=中等 elif大小==3: 尺寸=大 其他: 尺寸=中等 如果是水: 尺寸=水 小计=(三明治+(饮料*尺寸)) 销售税=(小计*销售税) 总计=(小计+销售税) 打印(“这是您的订单:”) 如果三明治==汉堡包: 打印(f“Hamburger\t\t\t${Hamburger:10.2f}”) elif三明治==奶酪汉堡: 打印(f“Cheeseburger\t\t\t${Cheeseburger:10.2f}”) elif三明治==鸡肉:
打印(f“Chicken Sandwich\t\t${Chicken:如果没有要求尺寸选项,您可以检查是否选择了水

如果是水:
尺寸=水
其他:
大小\选项=输入(“大小?\n请输入1表示小,2表示中,或3表示大:”)
如果大小_选项==“1”:
尺寸=小
elif大小_选项==“2”:
尺寸=中等
elif大小_选项==“3”:
尺寸=大
其他:
尺寸=中等

你只需将
if water:size=water
移动到提示前。然后使用
else:
来询问大小。然后你可以在这个else中包含各种大小的if/elif语句,以避免在你已经知道它的水的情况下通过这些语句。谢谢!不知道为什么我没有想到这个!谢谢!!还有另一个问题uestion。在三明治和饮料的打印语句中,如何使数值对齐?现在,三明治的成本打印出来比饮料成本更向右。这可能是另一个问题,我认为可能是在您修复代码以显示正确结果之后-看看如果选择a'c会发生什么希斯伯格。