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

Python实现Hangman猜词游戏时出现错判及打印None问题求助

问题定位与修复方案

1 所有猜测均被判定为错误

  • 问题位置:get_word() 函数,以及开头冗余的文件打开语句
  • 原因:当前代码调用 random.choice("Words.txt") 是从 "Words.txt" 这个字符串本身随机选取单个字符,完全没有读取Words.txt文件里的单词列表,拿到的目标词永远是单个字符/符号,自然和用户输入的猜测匹配不上。开头打开的file1对象也完全没有被使用,还会造成资源泄漏。
  • 修复方法:
    1. 删除开头冗余的 file1 = open("Words.txt") 语句
    2. 修改get_word()函数逻辑如下:
def get_word():
    # 读取文件所有非空行作为单词列表
    with open("Words.txt", "r", encoding="utf-8") as f:
        word_list = [line.strip() for line in f if line.strip()]
    return random.choice(word_list).lower()

2 打印Hangman图案后额外输出None

  • 问题位置:所有套了print()的draw_hangman()调用语句
  • 原因:所有draw_hang_xxx系列绘图函数内部已经通过print()输出了图案,没有显式设置返回值,Python中无return的函数默认返回None,外层再套print()就会把返回的None也打印出来。
  • 修复方法:把代码中两处print(draw_hangman(tries))语句直接改为draw_hangman(tries)即可,不需要额外套print():
    第一处位于游戏初始化阶段:
    print("Let's play Hangman!")
    # 原语句print(draw_hangman(tries))改为:
    draw_hangman(tries)
    print(word_completion)
    
    第二处位于循环每轮猜测结束后:
    # 原语句print(draw_hangman(tries))改为:
    draw_hangman(tries)
    print(word_completion)
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 12:45:07