学习Python遇到了一个简单程序symple的障碍



我只是在自学python,并试图编写一个简单的程序。目标是计算每12线性英尺的设备件数(HCAM)。我觉得我要做的是很长一段路,我需要弄清楚如何写这个方程,这样如果脚大于24,它只会产生1个答案。基本上,我需要"x"每12英尺增加1,并且只打印1个答案,这就是我所拥有的。。。谢谢你的耐心/帮助。

x = 1
print 'Number of HCAMs Required'
feet = input ('enter linear feet of room: ')
if feet < 12:
    print x, "HCAM Required"
if feet > 12:
    print x + 1, "HCAM Required"
if feet > 24:
    print x + 2, "HCAM Required"

Number of HCAMs Required
enter linear feet of room: 25
2 HCAM Required
3 HCAM Required

注意:它应该只响应"3 HCAM Required"

您错过了elif上的部分。

25大于12,也大于24,因此它同时打印这两个值。您需要先检查较大的数字(24),然后使用elif(else-if),以便它停止遍历其他if语句。

正如其他人之前所说,您的第一个问题是如何划分逻辑。特别是,当您希望控件跳过某些表达式时,必须使用elif:

if feet < 12:
    ...
elif feet > 12:
    ...
elif feet > 24:
    ...
else:
    ...

接下来,这里有一个潜在的问题。如果你的脚===25怎么办?您会注意到,此代码可能会打印多次。请记住,有一些方法可以检查多个逻辑语句是否为真。所以,假设这个值需要在12到24英尺之间。可以这样说:

if feet >= 12 and feet <= 24:
    print x

这有助于控制使用或不使用逻辑的其他部分的情况。

最后,需要记住的一件事是:如果用户输入的值大于指定的值,该怎么办?例如,如果他们输入feet=240,会怎样?写出每一个可能的条件(如果可能的话)将是一项艰巨的任务。正如你所说,对你来说最好的办法就是想出计算这些值的公式。特别是,考虑指定的英尺数与HCAM内的英尺数之间的关系。我想一旦你意识到这一点,你的逻辑就会变得更加简单!

快乐学习!:)

我敢肯定你只是在这里寻找简单的整数除法:

print 'Number of HCAMs Required'
feet = input ('enter linear feet of room: ')
print 1 + feet/12, "HCAM Required"

整数除法将结果取最近的整数,并丢弃余数。

Number of HCAMs Required
enter linear feet of room: 25
3 HCAM Required

如果你想保持你原来的逻辑风格,试试这个:

x = 1
print 'Number of HCAMs Required'
feet = input ('enter linear feet of room: ')
if feet <= 12:
    print x, "HCAM Required"
elif 12 <= feet < 24:
    print x + 1, "HCAM Required"
else:
    print x + 2, "HCAM Required"

您可以在一个布尔表达式中计算多个比较运算符,只需小心用尽所有可能!

最新更新