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:
这是因为您正在检查变量size
是否等于变量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
,并且对于其他两个是否相同。有关数据类型的更多信息,请访问此处!
这可能是您在给定的特定示例中想要的,但如果您想要结果的组合,则必须更改它。
只有在满足所有条件的情况下,这才会给出"冷却"的结果。
理想情况下,你可能也想在这里上课。
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" and addpepperoni == "N" and extracheese == "N":
bill = S
print ("cool")
我想你想给输入'S'和'N',对吧?然后应该将它们与字符串进行比较,而不是与存储在变量中的整数值进行比较。
if size == 'S'
if addpepperoni == 'N':
if extracheese == 'N':
bill = S
print ("cool")
我认为您误解了这里的数据类型的概念。当您使用IDE调试此代码并在带有**if size == S: **
的行处放置断点时,您会看到size具有值(例如("S"(这是在终端中键入的字符(。但您将其与S进行比较,在程序上下文中,S是一个保持值15的变量。
由于字符"S"和15不相等,如果检查并停止,您的程序将不会运行以下操作。
要解决此问题,您应该将包含字符"S"的大小值与字符"S(进行比较。所以,你的支票应该是:**if size == 'S'**
。
同样的问题也适用于您所写的以下支票。