您需要使用float()
而不是int()
,因爲int()
期望十進制輸入不會浮動。
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]
用法:
if Battery_Initial in (i/float(2) for i in range(1,10)):
#do something here
或按照@Joran Beasley的建議:
if Battery_Initial % 0.5 ==0:
#do something here
謝謝,但我想知道如何只允許0.5間隔輸入。 –
例如0.5,1.0,1.5,但不允許1.7 –
'打印1.5%0.5 == 0'只是使用浮點模? –