Python猜数字程序长度校验及唯一数字匹配计数bug修复求助
修复方案
核心修改点
- 输入长度校验逻辑补全:增加长度大于5的判断分支,长度不符合要求时输出提示后直接用
continue跳过本次循环的匹配计数逻辑,避免无效统计 - 计数变量初始化位置调整:将匹配计数变量放到循环内部开头,每次用户发起新猜测时重置数值,不会累加历史结果
- 可选补充:追加位置匹配统计逻辑,满足你提到的第二类线索输出需求
修正后可运行代码
# 提前生成5位随机数字串(示例值,你可以替换成自己的随机生成逻辑) secretString = "24510" userguess = False while not userguess: # 每次猜测前重置计数,避免累加 matched_digit_count = 0 matched_position_count = 0 guess = str(input("enter number: ")) # 长度校验分支 if len(guess) < 5: print("长度过短") continue if len(guess) > 5: print("长度过长") continue # 长度合规后执行统计 # 统计猜中数字总数(不考虑位置) matched_digit_count = len(set(secretString) & set(guess)) # 统计位置正确的数字数 for sec_d, guess_d in zip(secretString, guess): if sec_d == guess_d: matched_position_count += 1 # 输出线索 print(f"猜中数字数量:{matched_digit_count},位置正确数量:{matched_position_count}") # 猜对后退出循环 if matched_position_count == 5: userguess = True print("猜中正确答案!")
内容的提问来源于stack exchange,提问作者user17144102
相关产品推荐
相关产品推荐

