Python猜数字游戏猜对数字无正确反馈运行异常问题排查
猜数字游戏代码问题修复
原始问题代码
secret_number = 5 guess_count = 0 guess_limit = 3 k = 0 while guess_count < guess_limit: K = input(print("guess the number")) guess_count = guess_count + 1 if k == secret_number: print('you won') else: print('try again')
问题原因
- 变量名大小写不匹配:初始定义的是小写变量
k,循环内接收用户输入的是大写变量K,判断逻辑里用的依然是初始值为0的小写k,永远不会等于预设值5,因此不会触发成功提示。 - 输入值类型未转换:
input()接口返回的默认是字符串类型,即便用户输入了数字5,拿到的也是字符串'5',直接和整数5做相等判断会返回False。 input()参数使用错误:input()本身支持直接传入提示文本,嵌套print()会额外输出无意义的None值。- 逻辑分支不完善:猜对后没有跳出循环的逻辑,会继续跑完剩下的猜数次数;循环关联的else块是3次机会用完都没猜对时触发,当前的提示文案不符合场景。
修复后代码
secret_number = 5 guess_count = 0 guess_limit = 3 while guess_count < guess_limit: guess = int(input("请猜数字:")) guess_count += 1 if guess == secret_number: print('恭喜你猜对了') break else: print('很遗憾,3次机会已经用完,挑战失败')
内容的提问来源于stack exchange,提问作者Rohith Mani varma
相关产品推荐
相关产品推荐

