Skip to main content
 首页 » 编程设计

python之从标准输入读取浮点值并在 time.sleep 中使用

2025年05月04日18tuyile006

我目前正在努力使用简单的代码,它以秒为单位工作,但我想让用户改为使用分钟,这样更容易。在这里:

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 .