Python开发:如何让用户输入的肌肉组名字符串对应到预定义的set集合
问题解法:根据用户输入匹配对应肌肉群训练集合
核心方案是使用字典建立肌肉群名称字符串和对应动作集合的映射关系,不要直接尝试用输入字符串匹配变量名,这是Python里处理这类需求的标准实现,安全且易扩展。
修改后的代码如下:
# 建立肌肉群名称和对应动作集合的映射字典 muscle_group_map = { "Legs": {"squat", "calf raises", "hamstring curls", "deadlifts", "walking lunges"}, # 后续新增其他肌肉群直接补充键值对即可,示例: # "Chest": {"bench press", "push up", "chest fly"} } # 获取用户输入,增加strip()去除首尾空白,提升输入容错性 target_group = input('你想要锻炼哪个肌肉群? ').strip() if target_group in muscle_group_map: # 直接取出对应集合遍历 for action in muscle_group_map[target_group]: print(action) else: print(f"暂未收录 {target_group} 对应的训练动作")
原代码问题说明
你之前的写法里,musclegroup是字符串类型的变量,直接对它做for循环遍历只会逐个取出字符串中的单个字符,Python不会自动把字符串内容和你定义的同名变量做关联匹配。
不要用eval()之类的方法把字符串转成变量名,这种写法存在注入风险,也不方便后续新增肌肉群的维护。
内容的提问来源于stack exchange,提问作者Fernando Toledo
相关产品推荐
相关产品推荐

