学习Python在一个简单的程序上遇到麻烦

时间:2011-06-16 14:39:28

标签: python

我只是在教自己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”

4 个答案:

答案 0 :(得分:2)

你错过了elif上的部分。

答案 1 :(得分:2)

25大于12,大于24,因此它打印两者。你想首先检查更大的数字(24),然后使用elif(否则如果),以便它停止通过其他if语句。

答案 2 :(得分:2)

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

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

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

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

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

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

快乐学习! :)

答案 3 :(得分:1)

我很确定你只是在寻找简单的整数除法:

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"

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