我只是在教自己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”
答案 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"
您可以在一个布尔表达式中评估多个比较运算符,只需小心耗尽所有可能性!