如何自定义Python3猜数字游戏的输入错误提示而非系统默认错误
解决Python猜数字程序的自定义错误提示问题
当然可以搞定这个需求!你只需要用Python的异常处理机制(try-except代码块)来捕获输入转换时的ValueError,然后输出你自己的提示信息就行,不用让系统抛出默认的报错。
核心思路
把可能触发错误的代码(也就是把用户输入转成整数的int(guess))放到try块里,当转换失败时,except ValueError:分支会被触发,这时你就可以输出自定义提示,而不是让程序崩溃并显示默认的Traceback。
修改后的完整代码
import time import random from secrets import randbelow guesscount = 0 print("Hey whats your name") name = input() number = randbelow(20) print(f"Hi {name}! I'm thinking of a number between 0 and 19. Go ahead and guess!") while True: guesscount += 1 user_input = input("Enter your guess: ") try: # 尝试把输入转成整数,失败则触发ValueError guess = int(user_input) # 这里是你的猜数字逻辑 if guess < number: print("Too low! Give it another shot.") elif guess > number: print("Too high! Try a smaller number.") else: print(f"Awesome {name}! You got it in {guesscount} tries!") break except ValueError: # 自定义错误提示 print("Whoops! That's not a valid number. Please enter a numeric value.") guesscount -= 1 # 可选:输入错误不算一次猜测次数
关键修改说明
try块:包裹住可能出错的int(user_input)操作,程序会先尝试执行这里的代码。except ValueError::当输入无法转换成整数时,会进入这个分支,执行你写的自定义提示。- 可选的
guesscount -=1:如果不想把用户输入错误的情况算成一次猜测,可以减去刚才加的计数,让用户重新输入时不浪费次数。
这样用户输入字母或者非数字内容时,就会看到你设置的友好提示,而不是一堆看不懂的Traceback啦!
内容的提问来源于stack exchange,提问作者bot_diyar
相关产品推荐
相关产品推荐

