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

Python石头剪刀布游戏语言设置功能异常求助

问题分析与修复方案

核心问题

  1. 分支嵌套错误:你把爱尔兰语的判断代码嵌套在了英语的if块内部,导致只有输入english时才会检查是否等于gaeilge——这显然永远成立不了,爱尔兰语分支完全无法触发。
  2. 无无效输入处理:输入既不是english也不是gaeilge时,程序没有任何响应,直接结束。
  3. 冗余代码:英语和爱尔兰语的游戏逻辑完全重复,后续维护麻烦。
  4. 变量名与拼写问题:leabhar在爱尔兰语里是“书”,用来存储语言选择不合适;多处单词拼写错误(fallowing→following、determen→determine,爱尔兰语里的“或”应该是nó而非no)。

修复后的代码

import random

def play_game(prompt_options, prompt_choice):
    """封装通用游戏逻辑,传入对应语言的提示文本"""
    print(prompt_options)
    player_choice = input(prompt_choice)
    actions = ["rock", "paper", "scissors"]
    cpu_choice = random.choice(actions)
    print(f"\n{player_choice} vs {cpu_choice}\n")
    # 可在此补充胜负判断逻辑,原代码未实现,按需添加即可

# 语言选择提示
print("Choose language: english or irish? | Cén teanga a roghnaíonn tú? Gaeilge nó Béarla?")
language = input().strip().lower()

if language == "english":
    play_game("Options: rock, paper, scissors", "Your choice: ")
elif language == "gaeilge":
    print("Go raibh maith agat!")
    # 爱尔兰语游戏提示,可根据需求调整术语
    play_game("Roghanna: carraig, páipéar, scian", "Do rogha: ")
else:
    print("Invalid language choice! Please enter 'english' or 'gaeilge'.")

修复说明

  • 调整分支结构:把两个语言分支改成并列的if-elif-else,确保每个选择都能触发对应逻辑,无效输入也有明确提示。
  • 封装游戏逻辑:用play_game函数抽离重复代码,仅传入对应语言的提示文本,减少冗余。
  • 修正变量名与拼写:将leabhar改为language更直观,修正拼写错误,爱尔兰语提示使用正确的nó。
  • 优化输入处理:用strip().lower()处理输入,避免大小写或空格导致的匹配失败(比如输入English或gaeilge也能正常识别)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 09:13:16