如何解决倒计时 Python3.9.4 中的用户输入问题
How to solve this User Input problem in countdown timer Python3.9.4
我有一个倒数计时器,要求用户输入“幸运数字”。输入该数字后,计时器开始倒计时并打印出一条简单消息。
我的问题是,如果用户输入不是数字,我会收到“Traceback(最近一次调用最后一次)ValueError:以 10 为底的 int() 无效文字”
我明白那是什么意思,但我不知道如何让它绕过这种情况,以便用户输入可以是 任何东西(不仅仅是数字)而不是给出我是一个错误,而只是打印出一条消息,只是说; “没有幸运数字继续”..-继续脚本的其余部分..
如有任何帮助,我们将不胜感激。谢谢
这是代码的截图
将用户输入视为字符串,然后使用 try-except 判断它是否为数字
try:
number = int(stringvar)
except:
print("continue without lucky number")
如果用户没有输入数字,您还可以为您的计时器生成一个随机数
import time
import random
def countdown(t):
while t:
mins, secs = divmod(t, 60)
timer = "{:02d}:{:02d}".format(mins, secs)
print(timer, end='\r')
time.sleep(1)
t -= 1
num = input("Enter your lucky number: ")
isNum = False
try:
i = int(num)
isNum = True
except:
print("Continue without lucky number")
if isNum:
countdown(i)
else:
rand = random.randint(1, 100)
countdown(rand)
print(f"timer number is: {rand}")
这可以是你的整个计时器程序。
如果你想给出一个不是整数的特定消息而不是 运行 函数,那么你可以使用 if... else
循环或 try... except
循环。例如:
try:
countdown(int(t))
except ValueError:
if input("Continue without lucky number?") == "y":
countdown(5)
中所述
Errors should never pass silently.
Unless explicitly silenced.
但是,除了捕获错误之外,我认为您还可以做另一件事。假设您的变量名称是 var
,
if not var.isdigit():
var = ord(var)
在这里,函数 ord()
将 return 字符的 ASCII 值,这显然是一个整数,您的代码将 运行 成功。
我有一个倒数计时器,要求用户输入“幸运数字”。输入该数字后,计时器开始倒计时并打印出一条简单消息。
我的问题是,如果用户输入不是数字,我会收到“Traceback(最近一次调用最后一次)ValueError:以 10 为底的 int() 无效文字”
我明白那是什么意思,但我不知道如何让它绕过这种情况,以便用户输入可以是 任何东西(不仅仅是数字)而不是给出我是一个错误,而只是打印出一条消息,只是说; “没有幸运数字继续”..-继续脚本的其余部分..
如有任何帮助,我们将不胜感激。谢谢
这是代码的截图
将用户输入视为字符串,然后使用 try-except 判断它是否为数字
try:
number = int(stringvar)
except:
print("continue without lucky number")
如果用户没有输入数字,您还可以为您的计时器生成一个随机数
import time
import random
def countdown(t):
while t:
mins, secs = divmod(t, 60)
timer = "{:02d}:{:02d}".format(mins, secs)
print(timer, end='\r')
time.sleep(1)
t -= 1
num = input("Enter your lucky number: ")
isNum = False
try:
i = int(num)
isNum = True
except:
print("Continue without lucky number")
if isNum:
countdown(i)
else:
rand = random.randint(1, 100)
countdown(rand)
print(f"timer number is: {rand}")
这可以是你的整个计时器程序。
如果你想给出一个不是整数的特定消息而不是 运行 函数,那么你可以使用 if... else
循环或 try... except
循环。例如:
try:
countdown(int(t))
except ValueError:
if input("Continue without lucky number?") == "y":
countdown(5)
Errors should never pass silently.
Unless explicitly silenced.
但是,除了捕获错误之外,我认为您还可以做另一件事。假设您的变量名称是 var
,
if not var.isdigit():
var = ord(var)
在这里,函数 ord()
将 return 字符的 ASCII 值,这显然是一个整数,您的代码将 运行 成功。