我目前正在努力使用简单的代码,它以秒为单位工作,但我想让用户改为使用分钟,这样更容易。在这里:
import time
import os
import math
import subprocess
input1 = raw_input("Broj minuta:")
min = input1 * 60
min1 = float(min)
print min1
time.sleep(min1)
os.system("shutdown")
我收到这个错误:
Broj minuta:2
Traceback (most recent call last):
File "timer.py", line 8, in <module>
time.sleep(min)
TypeError: a float is required
当我尝试使用下面的代码将其转换为 float 时,它说 sleep 时间很长,如果我选择 2 分钟,我会得到:
min = input1 * 60
min1 = float(min)
Broj minuta:2
2.22222222222e+59
Traceback (most recent call last):
File "timer.py", line 10, in <module>
time.sleep(min1)
OverflowError: sleep length is too large
请您参考如下方法:
input1 = raw_input("Broj minuta:")
raw_input 返回一个字符串。你需要把它转换成一个数字,像这样
input1 = int(raw_input("Broj minuta:"))
如果你不这样做,假设你输入2,它仍然是一个字符串,而你正在做
input * 60
表示'2' * 60,等于'222222222222222222222222222222222222222222222222222222222222',它仍然是一个字符串。这就是为什么 time.sleep(min) 提示
TypeError: a float is required
在第二种情况下,您正在将 '222222222222222222222222222222222222222222222222222222222222' 正确转换为 float ,但值是 2.22222222222e+59,这对于 来说太大了时间. sleep .
