Python猜数字游戏如何处理非数字输入并输出无效提示
问题解决思路
你的代码崩溃的核心原因是直接对用户输入做int()强制转换,当输入为非数字内容时会触发ValueError异常导致程序终止,同时原有代码还缺失random模块导入,运行时也会报错。
修改逻辑如下:
- 补充导入
random模块 - 使用
try-except块捕获输入转换时的ValueError异常,捕获到后输出要求的提示,且无效输入不计入猜测次数
修改后完整代码
import random # 原代码导入的time模块未使用,不需要可直接删除 guesses_made = 0 name = input('Hello! What is your name?\n') number = random.randint(1, 20) print('Well, {0}, I am thinking of a number between 1 and 20.'.format(name)) while guesses_made < 5: guess_input = input('Take a guess: ') # 捕获非数字输入异常 try: guess = int(guess_input) except ValueError: print('not a valid answer') continue guesses_made += 1 if guess < number: print('Your guess is too low.') if guess > number: print('Your guess is too high.') if guess == number: break if guess == number: print('Good job, {0}! You guessed my number in {1} guesses!'.format(name, guesses_made)) else: print('Nope. The number I was thinking of was {0}'.format(number))
内容的提问来源于stack exchange,提问作者Take12
相关产品推荐
相关产品推荐

