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

Python Hangman游戏开发疑问:如何实现输入字母后水平展示已猜字母与缺失字母下划线

解决Hangman游戏中字母水平展示的问题

我完全懂你的困扰——现在你的代码每次处理字符时都会单独打印一行,导致正确字母和下划线是垂直排列的,这完全不符合Hangman游戏的常规展示方式。咱们来把它改成水平排列的样式,同时保留游戏的核心逻辑。

问题根源

你的代码里,print(f"Correct guess: {character}")和print('_')会在循环的每一次迭代中单独输出一行,所以每个字符都占了一行,自然没法形成水平的单词展示。咱们需要先把所有要展示的字符拼接成一个字符串,再一次性打印出来。

修改后的完整代码

import random

words = ['programming', 'tiger', 'lamp', 'television', 'laptop', 'water', 'microscope', 'doctor', 'youtube', 'projects']
random_word = random.choice(words)
# 注释掉测试用的打印,正式游戏可以去掉
# print('our random word', random_word)
print('*********** WORD GUESSING GAME ***********')

user_guesses = ''
chances = 10

while chances > 0:
    wrong_guesses = 0
    # 构建要展示的字符串,用来水平显示已猜中字母和下划线
    display = ''
    for character in random_word:
        if character in user_guesses:
            display += character + ' '  # 加空格让字符之间更清晰
        else:
            display += '_ '
            wrong_guesses += 1
    # 一次性打印整个展示字符串,实现水平排列
    print("\n当前猜测状态:", display)
    
    if wrong_guesses == 0:
        print("\n恭喜你猜对了!")
        print(f"正确单词是: {random_word}")
        break
    
    guess = input('\n请输入一个字母进行猜测: ')
    # 可以加个小判断,确保用户只输入单个字母
    if len(guess) != 1 or not guess.isalpha():
        print("请输入单个英文字母哦!")
        continue
    # 避免重复猜测同一个字母
    if guess in user_guesses:
        print(f"你已经猜过字母{guess}了,请换一个!")
        continue
    
    user_guesses += guess
    
    if guess not in random_word:
        chances -= 1
        print(f"猜错了!你还有 {chances} 次机会")
        if chances == 0:
            print('\n游戏结束!正确单词是:', random_word)

关键修改点说明

  1. 构建展示字符串:新增了display变量,把每个已猜中的字母或下划线拼接成一个带空格的字符串,这样打印出来就是水平排列的,而且字符之间有间隔更易读。
  2. 一次性打印展示内容:把原来逐个打印字符的逻辑改成最后一次性打印display,解决了垂直排列的问题。
  3. 优化用户体验:
    • 增加了重复猜测的判断,避免无效输入
    • 增加了输入格式验证,确保用户输入单个字母
    • 调整了提示信息的位置和表述,让游戏流程更顺畅

现在运行这个代码,你就能看到每次猜测后,已猜中的字母会水平显示在对应的位置,未猜中的位置显示下划线,完全符合Hangman游戏的预期效果啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 08:47:35