python-3.x 无限while循环中的Sleep()函数

tvokkenx  于 2023-06-25  发布在  Python
关注(0)|答案(1)|浏览(137)

有没有可能在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)
rqmkfv5c

rqmkfv5c1#

你发布的代码工作得很好。这个问题可能是(正如@Guy所提到的)当用户输入的东西不完全是int时引起的。这是因为input返回一个字符串,而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)

相关问题