学习Python会给一个简单的程序带来麻烦

问题描述

| 我只是在自学python,并尝试编写一个简单的程序。目标是计算每12线性英尺的设备件数(HCAM)。我觉得我正在做很长的一段路,我需要弄清楚如何写等式,所以如果脚大于24,它只会产生1个答案。基本上,我需要将“ x”增加1每12英尺只打印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”     

解决方法

        您错过了
elif
的那一部分。     ,        25大于12,并且大于24,因此它同时打印两个。您想先检查更大的数字(24),然后使用
elif
(否则为if),以便它停止通过其他if语句。     ,        正如其他人之前所说,第一个问题是如何划分逻辑。特别是,当您希望控件跳过某些表达式时,必须使用elif:
if feet < 12:
    ...
elif feet > 12:
    ...
elif feet > 24:
    ...
else:
    ...
接下来,这里有一个潜在的问题。如果您的脚== 25怎么办?您会注意到该代码可能会多次打印。请记住,有多种方法可以检查多个逻辑语句是否正确。因此,可以说该值需要在12到24英尺之间。一个人可以这样说:
if feet >= 12 and feet <= 24:
    print x
这有助于控制使用或不使用逻辑其他部分的情况。 最后,要记住的一件事是:如果用户输入的值大于指定的值,该怎么办?例如,如果输入英尺== 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\"
您可以在一个布尔表达式中求值多个比较运算符,请小心使用所有可能性!