Python猜随机数程序问题求助:输入与随机数比较异常
猜数字程序问题修正建议
你的代码里有几个关键问题导致输入与随机数的比较逻辑失效,以下是具体修正点和解释:
错误赋值输入变量
原代码中guess = input是把input函数本身赋值给了guess,而非用户输入的整数值。正确做法是将输入转换为整数后赋值给guess。错误调用随机数变量
target是你用random.randint生成的固定随机整数,不是函数,不能写成target(),直接使用target即可。输入未更新到变量
循环内的输入操作只做了打印,没有把新输入值赋值给guess,导致循环条件永远无法满足。拼写错误
提示文本里的to high和to low应改为too high和too low。
修正后的完整代码:
import random target = random.randint(1, 100) counter = 0 # 第一次获取用户输入并转为整数 guess = int(input('Guess an integer between 1 and 100: ')) while guess != target: counter += 1 if guess > target: print("Guess is too high") elif guess < target: print("Guess was too low") # 更新guess为新的输入值 guess = int(input('Guess an integer between 1 and 100: ')) # 猜对后计数加1(最后一次正确输入也属于一次猜测) counter += 1 print(f"Correct! It took you {counter} guesses to get the correct number")
额外优化说明:
- 用
counter += 1替代counter = counter + 1,写法更简洁。 - 使用f-string格式化输出结果,比字符串拼接更直观易读。
内容的提问来源于stack exchange,提问作者Brody
相关产品推荐
相关产品推荐

