Udemy 100天代码课程Python问题:披萨结算程序运行账单恒为$0
问题原因
- 你的代码中所有条件判断规则为严格匹配大写的
S/M/L/Y/N,如果用户输入时用了小写字母、或者输入内容前后带有空格,所有条件分支都不会触发,初始值为0的bill变量就不会有任何累加,最终输出自然始终是$0。
修复方案
- 对所有用户输入的内容先做标准化处理:去除首尾空白字符,再统一转为大写,就能兼容大小写输入、带空格的输入场景。
修改后的完整代码如下:
print("Welcome to Python Pizza Deliveries!") # 对输入做去空白+转大写的标准化处理 size = input("What size pizza do you want? S, M, or L ").strip().upper() add_pepperoni = input("Do you want pepperoni? Y or N ").strip().upper() extra_cheese = input("Do you want extra cheese? Y or N ").strip().upper() bill = 0 if size == "S": bill += 15 elif size == "M": bill += 20 elif size == "L": bill += 25 if add_pepperoni == "Y": if size == "S": bill += 2 else: bill += 3 if extra_cheese == "Y": bill += 1 print(f"Your final bill is ${bill}")
内容的提问来源于stack exchange,提问作者Valerie
相关产品推荐
相关产品推荐

