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

Python Hangman游戏从文件随机选词出现空词导致直接获胜问题求助

问题根因定位
  • 直接原因:读取词汇文件的逻辑没有过滤空行,splitlines()方法会将文件中的空行转换为空字符串存入contents列表,当random.choice()随机选中空字符串作为word时,获胜判断逻辑会直接判定为获胜:
    你的获胜判断逻辑是遍历word的所有字符,确认全部在已猜列表guessed中就标记为获胜。如果word是空字符串,遍历逻辑不会执行,won变量默认保持True,游戏启动后立刻触发获胜流程,直接结束。
  • 潜在隐患:当前用file=open('example.txt')打开文件后没有执行关闭操作,会造成文件资源泄漏。
修复方案

将原有的文件读取代码:

file=open('example.txt')
contents = file.read().splitlines()
word=random.choice(contents)

替换为以下代码,过滤空行同时自动管理文件资源:

# 读取文件时自动过滤空行、去除每行首尾空白符
with open('example.txt', 'r', encoding='utf-8') as f:
    contents = [line.strip() for line in f if line.strip()]
word = random.choice(contents)
  • if line.strip()判断会自动跳过空行、仅包含空白字符的无效行
  • with语法会在读取完成后自动关闭文件,避免资源泄漏

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.18 05:06:06