Python校验菜品是否不含指定食材的函数运行失败问题求解
问题修复方案
核心问题点
- 参数类型标注错误:函数定义中给
test_menu标注的类型是str,但实际业务要求和测试用例传入的都是嵌套字符串列表,类型不匹配。 - 食材检查逻辑错误:直接判断指定食材是否在顶层菜单列表中,而顶层列表的元素是每个菜品对应的子列表,无法匹配到字符串类型的食材,导致判断逻辑永远返回
True,不符合业务要求。
修复后代码
# test_menu参数类型修正为嵌套列表,业务逻辑是遍历每个菜品的食材列表检查是否存在指定食材 def free_from(test_menu: list[list[str]], specified_ingredient: str): # 遍历每一份菜品的食材列表 for dish in test_menu: if specified_ingredient in dish: return False # 所有菜品都没找到指定食材才返回True return True
测试验证
用你提供的测试用例运行修复后的函数,会输出Working,符合预期结果。
内容的提问来源于stack exchange,提问作者Holly Rose
相关产品推荐
相关产品推荐

