如何编写Python程序实现4个单词列表的匹配查询并输出对应组名?
修正后的代码实现单词分组查询功能
原代码存在几个核心问题:
- 错误地将整个列表与输入字符串做相等判断,应该检查输入是否在列表内
- 循环内的
else会在每一次不匹配时都输出错误提示,逻辑混乱 break位置错误,会直接终止循环,导致仅检查第一个分组- 未实现输出对应组名的需求
以下是修正后的代码:
# 定义各组单词,同时关联组名 groups = { "group1": ["anbar","tamirgah kochak","ordogah jahangardi","zamin varzeshi","mohavate sazi","kargah kochak"], "group2": ["maskoni","small store","khabgah","mehmansara","asayeshgah","parking tabaghati","kodakestan","dabestan","rahnamaii","dabirstan","honarestan","salon varzesh"], "group3": ["daneshsara","fani herfei","daneshgah","namayeshgah","teather","cinema"], "group4": ["hospital","mokhaberat","metro","mosque","museum","bank","stadium","airport"] } project_type = input("chose project type: ") found = False # 遍历每个组名和对应的单词列表 for group_name, word_list in groups.items(): if project_type in word_list: found = True project_area = int(input("enter the area m2 :")) price_per_m2 = int(input("enter price per m2 :")) print(f"{project_type} (属于{group_name}): {project_area * price_per_m2}$") break # 找到后终止循环 if not found: print("输入的单词不在任何分组中,请重新输入")
改动说明:
- 使用字典存储分组,直接关联组名和对应单词列表,更便于获取组名
- 增加
found标记,用于判断遍历结束后是否找到匹配项 - 仅在找到匹配单词时才执行面积和价格计算,避免无效交互
- 遍历结束后统一输出未找到的提示,避免多次错误输出
- 修正了输入提示的拼写错误(
inter改为enter)
内容的提问来源于stack exchange,提问作者Zahra Ramezani
相关产品推荐
相关产品推荐

