Python while循环问题:最后打印语句无法输出求助
猜数字代码最后打印语句不显示的原因及修复方案
核心问题是变量类型不匹配导致循环无法终止:
user_number通过input()获取,默认是字符串类型random1是random.randint()生成的整数类型- 字符串和整数直接用
!=比较永远不会相等,循环会无限执行,永远到不了最后那句打印语句
修复方法
每次获取用户输入后,将其转换为整数类型,确保和random1的类型一致。以下是修复后的代码:
import random def guess(x): random1 = random.randint(1, x) # 第一次输入就转为整数 user_number = int(input(f"guess the random number between 1 and {x}: ")) while user_number != random1: if random1 < user_number: print("the number you chose is a little bit higher") user_number = int(input("try again : ")) elif random1 > user_number: print("the number you chose is a little bit lower") user_number = int(input("try again : ")) print("the number you chose is correct you're so lucky") guess(9)
额外优化(可选)
如果担心用户输入非数字导致报错,可以添加异常处理:
import random def guess(x): random1 = random.randint(1, x) # 处理首次输入的非数字情况 while True: try: user_number = int(input(f"guess the random number between 1 and {x}: ")) break except ValueError: print("Please enter a valid number!") while user_number != random1: if random1 < user_number: print("the number you chose is a little bit higher") else: print("the number you chose is a little bit lower") # 处理重试时的非数字情况 while True: try: user_number = int(input("try again : ")) break except ValueError: print("Please enter a valid number!") print("the number you chose is correct you're so lucky") guess(9)
内容的提问来源于stack exchange,提问作者mouad abbar
相关产品推荐
相关产品推荐

