You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 02:51:04