无限循环内的 Sleep() 函数
Sleep() function inside a infinite while loop
是否可以在 while 循环中使用 sleep 函数?我有这个 while 循环去无穷大。当我添加 time.sleep(10)
时,它会在第二次尝试后跳出循环。是否可以在无限循环中 time.sleep()
?
import time as time
while True:
for i in range(2):
num = int(input("Enter an integer: "))
print("The double of",num,"is",2 * num)
print('10')
time.sleep(10)
您的代码 post 它工作正常。当用户输入不完全是 int 的内容时,问题可能(如@Guy 所述)。这是因为 input
returns 一个字符串并且 int
试图从该字符串中获取一个整数,例如in. 阅读失败 int
引发 ValueError
。例如
>>> num = input("Enter an integer: ")
Enter an integer: 12.5
>>> num
'12.5' <-- num, the return of input is a string
>>> int(num) <-- int fails to get a integer out of the string num
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: '12.5'
所以你需要通过 try except
块
明确处理这种情况
import time as time
while True:
for i in range(2):
try:
num = int(input("Enter an integer: "))
print("The double of",num,"is",2 * num)
except ValueError:
print("Please enter a valid integer")
print('10')
time.sleep(10)
是否可以在 while 循环中使用 sleep 函数?我有这个 while 循环去无穷大。当我添加 time.sleep(10)
时,它会在第二次尝试后跳出循环。是否可以在无限循环中 time.sleep()
?
import time as time
while True:
for i in range(2):
num = int(input("Enter an integer: "))
print("The double of",num,"is",2 * num)
print('10')
time.sleep(10)
您的代码 post 它工作正常。当用户输入不完全是 int 的内容时,问题可能(如@Guy 所述)。这是因为 input
returns 一个字符串并且 int
试图从该字符串中获取一个整数,例如in. 阅读失败 int
引发 ValueError
。例如
>>> num = input("Enter an integer: ")
Enter an integer: 12.5
>>> num
'12.5' <-- num, the return of input is a string
>>> int(num) <-- int fails to get a integer out of the string num
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: '12.5'
所以你需要通过 try except
块
import time as time
while True:
for i in range(2):
try:
num = int(input("Enter an integer: "))
print("The double of",num,"is",2 * num)
except ValueError:
print("Please enter a valid integer")
print('10')
time.sleep(10)