Python实现:引导用户输入分类从对应多列表随机抽取单词
多分类随机取词交互实现
核心实现逻辑分3步:
- 把分散的各分类词表统一存入字典结构,用分类名做键匹配对应词库
- 改造原有单列表取词函数,支持传入分类参数指定取词范围
- 增加用户输入校验逻辑,匹配不到分类时给出明确提示,避免程序报错
1. 调整词表存储结构
先修改你words.py里的内容,把不同分类的词表整合为字典,示例结构:
# words.py 文件内容 category_words = { "人物": ["医生", "教师", "程序员", "画家", "消防员"], "地点": ["公园", "地铁站", "图书馆", "山顶", "海边"], "动物": ["熊猫", "老虎", "企鹅", "松鼠", "海豚"], "物品": ["键盘", "保温杯", "帆布包", "台灯", "书签"] }
把你已有的各分类词表替换到对应键值位置即可。
2. 改造取词函数
在原有单列表取词逻辑基础上增加分类参数,直接复用之前写的随机选择、格式转换逻辑:
import random from words import category_words def get_word(category): # 从指定分类的词表中随机取词 word = random.choice(category_words[category]) return word.upper()
3. 实现用户交互逻辑
交互部分先给用户展示支持的分类选项,接收输入后先判断是否在合法分类列表里,合法就调用取词函数返回结果,不合法就提示重新输入:
def main_interaction(): # 获取所有支持的分类列表 valid_categories = list(category_words.keys()) print(f"当前支持的单词分类有:{'、'.join(valid_categories)}") while True: user_input = input("请输入你要抽取单词的分类:").strip() if user_input in valid_categories: selected_word = get_word(user_input) print(f"从{user_input}分类中随机抽到的单词是:{selected_word}") break else: print(f"输入的分类不存在,请重新输入,可选分类为:{'、'.join(valid_categories)}") if __name__ == "__main__": main_interaction()
如果需要支持不区分大小写的分类匹配、模糊匹配,可以在输入校验部分增加对应的字符串处理逻辑,比如把用户输入和分类名都统一转成小写后再比对。
内容的提问来源于stack exchange,提问作者Coding_J
相关产品推荐
相关产品推荐

