Python随机颜色生成器脚本出现无限循环无法停止问题求助
故障根因
你的代码触发无限循环的核心问题是类型不匹配:input() 函数返回值默认是字符串类型,你仅验证了变量a的内容是数字格式,但没有将其转换为整数类型。循环中你用整数类型的计数器g和字符串类型的a做相等判断,这个条件永远为False,break逻辑永远不会触发,所以会无限输出颜色。
修复步骤
- 在
isdigit()校验通过后,添加类型转换逻辑,把a转成整数 - 可选优化:颜色列表可以放到循环外部定义,避免每次循环重复创建变量浪费性能,循环末尾冗余的
else: continue也可以直接删除,不影响逻辑运行
修正后完整代码
import random g = 0 a = input("How many random colors would you like? ") if not a.isdigit(): print("Please enter a number next time") quit() # 新增类型转换逻辑 a = int(a) # 颜色元组移到循环外定义 lister = "Purple", "Green", "Blue", "Red", "Orange", "Lime", "Yellow", "White", "Black", "Maroon", "Aqua", "Pink", "Teal", "Grey", "Gold", "Silver", "Bronze", "Fuchsia", "Magenta", "Violet", "Beige", "Indigo" while True: z = random.choice(lister) print("Your color is: " + str(z)) g += 1 if g == a: break
内容的提问来源于stack exchange,提问作者Hallows
相关产品推荐
相关产品推荐

