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

Python接收用户输入动态匹配变量实现random.choice随机选词问题

问题原因

你的代码无法正常运行的核心错误是条件判断逻辑写错了:你在if/elif分支里拿用户输入的字符串和未定义的标识符(kolay/orta/zor)做比较,这几个值既不是字符串也没有提前赋值,Python运行时会直接抛出名称错误,根本走不到正确的选词分支里。

修复方法

两种可行的实现方案,可按需选择:

  • 方案1:直接修正判断条件
    把判断逻辑里的裸标识符换成带引号的难度字符串,同时给输入结果加strip()处理,自动清除用户误输入的前后空格,避免因为多余空格导致匹配失败。
    修复后完整代码:
import pygame
import pygame_menu
import random

kolay_secim = ["agac","odun","baba"]
orta_secim = ["zar","okey","tavla"]
zor_secim = ["emekli","yasli","deli"]
zorluk_secimi = input('Hangi zorlukta oynamak istiyorsunuz? (kolay,orta,zor)').strip()
if zorluk_secimi == "kolay":
    print(random.choice(kolay_secim))
elif zorluk_secimi == "orta":
    print(random.choice(orta_secim))
elif zorluk_secimi == "zor":
    print(random.choice(zor_secim))
else:
    print("Gecersiz Zorluk Secimi yazima dikkat ediniz.")
  • 方案2:字典映射写法(更易维护)
    如果后续要新增难度等级,不用堆叠大量if/elif分支,直接用字典把难度名称和对应词库做键值映射,代码更简洁:
import pygame
import pygame_menu
import random

kelime_havuzu = {
    "kolay": ["agac","odun","baba"],
    "orta": ["zar","okey","tavla"],
    "zor": ["emekli","yasli","deli"]
}
zorluk_secimi = input('Hangi zorlukta oynamak istiyorsunuz? (kolay,orta,zor)').strip()
if zorluk_secimi in kelime_havuzu:
    print(random.choice(kelime_havuzu[zorluk_secimi]))
else:
    print("Gecersiz Zorluk Secimi yazima dikkat ediniz.")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.01 03:51:25