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

Python实现赛马模拟器随机累加字符串功能异常求助

赛马模拟器代码问题排查

核心问题

  • 字符串为Python不可变类型,原代码random.choice((h1, h2, h3, h4, h5))取到的是字符串副本,给Horse_Select追加=的操作完全不会修改h1到h5的原始值,所有赛马进度一直为空,无法推进比赛。
  • 注释的终止判断逻辑存在语法错误:len(h1) or len(h2) or ... >=15的执行逻辑是先判断每个长度的布尔值,只要任意赛马长度不为0就会触发终止,不符合「任意长度达15结束」的需求,且该逻辑被注释后当前代码是死循环。

修正后可运行代码

import random
import os
from time import sleep

# 用列表存储赛马进度,方便修改元素值
horses = ['', '', '', '', '']
MAX_LENGTH = 15

while True:
    os.system('clear')
    # 随机选择赛马索引,直接修改对应位置的进度
    selected_idx = random.randint(0, 4)
    horses[selected_idx] += '='
    # 打印所有赛马进度,带编号方便识别
    for num, progress in enumerate(horses, 1):
        print(f"赛马{num}: {progress}")
    # 正确终止判断:任意赛马进度达到最大值即结束
    if any(len(p) >= MAX_LENGTH for p in horses):
        win_num = [i for i, p in enumerate(horses, 1) if len(p)>=MAX_LENGTH][0]
        print(f"\n比赛结束,赛马{win_num}获胜!")
        break
    sleep(0.5)

内容的提问来源于stack exchange,提问作者Shimis

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 08:09:00