Python 小数树桩程序 Battery\u Initial=原始输入(“输入当前容量:”) 如果电池初始值80: 打印“电池读数故障”

Python 小数树桩程序 Battery\u Initial=原始输入(“输入当前容量:”) 如果电池初始值80: 打印“电池读数故障”,python,decimal,Python,Decimal,这是我目前的节目。我想知道是否有一种方法只允许输入,例如0.5、1.0、1.5,基本上间隔为0.5。您需要使用float()而不是int(),因为int()要求十进制输入不浮动 Battery_Initial = raw_input("Enter Current Capacity:")) if Battery_Initial < 0: print 'Battery Reading Malfunction' elif Battery_Initial > 80: pr

这是我目前的节目。我想知道是否有一种方法只允许输入,例如0.5、1.0、1.5,基本上间隔为0.5。

您需要使用
float()
而不是
int()
,因为
int()
要求十进制输入不浮动

Battery_Initial = raw_input("Enter Current Capacity:"))

if Battery_Initial < 0:
    print 'Battery Reading Malfunction'

elif Battery_Initial > 80:
    print 'Battery Reading Malfunction'
输出:

Battery_Initial = float(raw_input("Enter Current Capacity:"))
使用类似以下内容:

$ python so27.py
Enter Current Capacity:0.5

$ python so27.py
Enter Current Capacity:81.1
Battery Reading Malfunction

$ python so27.py
Enter Current Capacity:-1.2
Battery Reading Malfunction

$ python so27.py
Enter Current Capacity:-1
Battery Reading Malfunction
用法:

In [271]: [i/float(2) for i in range(1,10)]
Out[271]: [0.5, 1.0, 1.5, 2.0, 2.5, 3.0, 3.5, 4.0, 4.5]
或者按照@Joran Beasley的建议:

if  Battery_Initial in (i/float(2) for i in range(1,10)):
        #do something here

谢谢,但我想知道如何只允许0.5间隔的输入。例如0.5、1.0、1.5,但不允许1.7抱歉,我不明白“打印1.5%0.5==0”是什么意思,我把它放在函数中的什么位置?@Michaelalexanderriechman查看更新的解决方案,您需要使用
if
condition.elif Battery_Initial%0.5==0:print“仅电池充电增量为0.5”我将此添加到我的程序中,但它仍然允许输入1.7等。
if  Battery_Initial % 0.5 ==0:
    #do something here