Python老虎机程序陷入无限循环问题求助
解决你的Python老虎机无限循环与随机数问题
原代码的核心问题
- 无限循环:循环内没有更新
user_input,一旦输入Y,循环条件user_input != 'N'永远成立,无法退出 - 随机数逻辑错误:只生成了1个随机数,老虎机需要3个独立的随机值来模拟滚轮
- 判断条件无效:
random_num != random_num这类自身比较永远是False,根本无法触发正确的结果分支 - 错误打印模块:
print(random)是打印整个random模块对象,不是生成的随机数
修正后的代码
import random # 初始获取用户输入 user_input = input('是否继续游戏?(Y或N):') while user_input.upper() != 'N': print('=== Python老虎机 ===') # 每次游戏生成3个独立的随机数(模拟三个滚轮) num1 = random.randint(0, 10) num2 = random.randint(0, 10) num3 = random.randint(0, 10) # 打印当前滚轮的数值 print(f'结果: {num1} | {num2} | {num3}') # 判断匹配情况 if num1 == num2 == num3: print('头奖!你匹配到了全部三个!') elif num1 == num2 or num1 == num3 or num2 == num3: print('你匹配到了两个!差一点就赢了!') else: print('哎呀!这次没有匹配成功!') # 循环末尾更新用户输入,避免无限循环 user_input = input('是否继续游戏?(Y或N):')
关键改动说明
- 每次循环内生成3个独立的
num1/num2/num3,保证每次游戏的结果都是随机的 - 循环末尾重新获取
user_input,让用户可以选择退出游戏 - 修正判断逻辑:先判断三个全匹配,再判断任意两个匹配,最后是全不匹配
- 使用
upper()统一输入格式,用户输入小写y/n也能正常识别 - 用格式化字符串清晰展示三个滚轮的数值
内容的提问来源于stack exchange,提问作者Abby Kabalin
相关产品推荐
相关产品推荐

