You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 05:01:00