Python石头剪刀布游戏语言设置功能异常求助
问题分析与修复方案
核心问题
- 分支嵌套错误:你把爱尔兰语的判断代码嵌套在了英语的
if块内部,导致只有输入english时才会检查是否等于gaeilge——这显然永远成立不了,爱尔兰语分支完全无法触发。 - 无无效输入处理:输入既不是
english也不是gaeilge时,程序没有任何响应,直接结束。 - 冗余代码:英语和爱尔兰语的游戏逻辑完全重复,后续维护麻烦。
- 变量名与拼写问题:
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
相关产品推荐
相关产品推荐

