这两个代码之间的区别?

时间:2015-10-24 19:25:53

标签: python function return definition

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

VS。

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

为什么以及如何放置"返回True"声明问题?出于背景目的,Dish_is_cheaper功能表示菜肴是否比所述价格便宜,而Dishlist_all_cheap表示列表中的所有菜肴是否比所述价格便宜。

1 个答案:

答案 0 :(得分:2)

此代码效果不佳:

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

因为如果列表的第一个True便宜,它会返回 Dish 。如果所有True es更便宜,您想要返回 Dish

这段代码做得很好:

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

如果所有菜肴的True始终为 Dish_is_cheap(i, x) ,则会返回 True