为什么我的输出不会产生任何结果(甚至不是错误)?


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'**

同样的问题也适用于您所写的以下支票。

最新更新