这两个代码之间的区别?

Difference between these two codes?

def Dishlist_all_cheap(d: [Dish], x: int):
    for i in d:
        if Dish_is_cheap(i, x) == False:
            return False
    return True

对比

def Dishlist_all_cheap(d: [Dish], x: int):
    for i in d:
        if Dish_is_cheap(i, x) == False:
            return False
        else:
            return True

"return True" 语句的位置为何以及如何重要?出于背景目的,函数 Dish_is_cheaper 表示一道菜是否比标价便宜,而 Dishlist_all_cheap 表示列表中的所有菜是否都比标价便宜。

此代码运行不佳:

def Dishlist_all_cheap(d: [Dish], x: int):
    for i in d:
        if Dish_is_cheap(i, x) == False:
            return False
        else:
            return True

因为它 returns True 如果列表的第一个 Dish 便宜。你想要 return True 如果所有 Dish 都便宜

这段代码做得很好:

def Dishlist_all_cheap(d: [Dish], x: int):
    for i in d:
        if Dish_is_cheap(i, x) == False:
            return False
    return True

它 returns True 如果 Dish_is_cheap(i, x) 总是 True 所有菜品。