python - 为什么我的输出不会产生任何结果(甚至没有错误)?
问题描述
size = input("What size pizza do you want? S, M, or L ")
addpepperoni = input("Do you want pepperoni? Y or N ")
extracheese = input("Do you want extra cheese? Y or N ")
S = 15
M = 20
L = 25
N = 0
if size == S:
if addpepperoni == N:
if extracheese == N:
bill = S
print ("cool")
只是测试一下,看看是否有任何打印,但没有打印,甚至没有错误。我在这里做错了什么?
解决方案
这段代码的问题在这里:
if size == S:
if addpepperoni == N:
if extracheese == N:
您已分配S
给 15 和N
0,因此代码认为您想要做的是:
if size == 15:
if addpepperoni == 0:
if extracheese == 0:
这是因为您正在检查 variablesize
是否等于 variable S
。对此的解决方法是将其设为string
,例如:
if size == 'S':
if addpepperoni == 'N':
if extracheese == 'N':
您可以做的另一件事来改进您的代码是使用and
, 只用一个if
语句检查多个条件,例如:
if size == 'S' and addpepperoni == 'N' and extracheese == 'N':
这现在将检查是否size
等于字符串S
而不是变量S
,并且其他两个相同。有关数据类型的更多信息,请访问此处!
推荐阅读
- css - 没有内容的 TD, TH 在 Internet Explorer 中始终为 0 高度
- apache-spark - Spark合并每个分区中的对象数量
- python - 为什么 x 间距与 tkinter 窗口中的 y 间距不同?
- c# - Domino 对象 COMException:“内存不足”
- deepsecurity - 租户创建错误 - 区域设置不能为空
- asp.net - PostLogoutRedirectUri 在带有 SPA 的身份服务器 4 中始终为空(Angular 7 OIDC 客户端)
- reactjs - 创建布局的替代方法?
- sql - 使用时间戳 SQL Redshift 的最大阶段
- asynchronous - 异步执行函数 App Script
- java - 在 Spring MVC 中提交带有嵌套对象的模型属性