Python猜数字程序异常问题及猜数次数统计方法咨询
猜数字程序问题修复及次数统计实现
核心问题分析与修复
你代码里导致猜对仍显示"too low"/"too high"的关键错误是:每次循环都会重新生成随机数(a = random.randint(0,numb)写在while循环内部),这意味着用户每猜一次,目标数字就变一次,根本没法稳定命中。另外,三个独立的if判断写法不严谨,应该用互斥的elif分支。
修复要点:
- 把随机数生成语句移到
while循环外部,确保游戏全程目标数字固定 - 将多个
if改为if-elif-else结构,保证每次仅触发一个判断逻辑
猜数次数统计实现
初始化一个计数器变量(如guess_count),初始值设为0,放在循环外。每次用户完成一次猜测后,将计数器加1,猜对时输出总次数即可。
修正后的完整代码
import random try: numb = int(input('enter the high lim : ')) guess_count = 0 # 固定目标数字,放在循环外 target_num = random.randint(0, numb) while True: guess_count += 1 user_guess = int(input('enter the number : ')) if user_guess < target_num: print('too low') elif user_guess > target_num: print('too high') else: print(f'right! 你总共猜了 {guess_count} 次') break except ValueError: print('enter an integer ')
关键说明
target_num在循环外定义,确保整个游戏只有一个待猜数字guess_count每次循环递增,准确记录用户的猜测次数if-elif-else结构避免了多个判断分支同时触发的问题- 猜对时直接输出总次数并终止循环
内容的提问来源于stack exchange,提问作者ganesh murthy
相关产品推荐
相关产品推荐

