是否有另外一种方法来编写if语句?

问题描述:

这种方法写的,如果代码在python我想其他方法与快捷方法是否有另外一种方法来编写if语句?

def rental_car_cost(days): 
    cost = 40 *days 
    if days >= 7 : 
     cost += 50 
    elif days >= 3: 
     cost += 20 
    else: 
     return cost 
rental_car_cost(7) 
+2

折扣应该** **降低价格,而不是** **增加它。 – lejlot

+1

你的代码有几个问题(没有实现折扣,没有在所有情况下返回成本,扔掉返回值)。但是,在我们可以详细了解之前,请先问一个恰当的问题。特别是你应该努力描述你遇到的问题。 – timgeb

+0

您的代码正在工作!唯一的是你不会返回你的最终'成本'值,除了在其他情况下。 DEF rental_car_cost(天): 成本= 40 *天 如果天> = 7: 成本+ = 50 elif的天数> = 3: 成本+ = 20 否则: 通 返回成本 并且如果你想保存你的价值,你只需要将它保存在一个变量当你调用函数 x = rental_car_cost(7) – sheplu

有两个误区,首先你应该减少没有增加成本。其次,你从来没有在dicsounted分支返回值

def rental_car_cost(days): 
    cost = 40 * days 
    if days >= 7 : 
     cost -= 50 
    elif days >= 3: 
     cost -= 20 
    return cost 

print(rental_car_cost(7)) 

或在每一个分支返回明确地

def rental_car_cost(days): 
    base_cost = 40 * days 
    if days >= 7 : 
     return base_cost - 50 
    elif days >= 3: 
     return base_cost - 20 
    else: 
     return cost 

print(rental_car_cost(7)) 
+2

@nutmeg,不,你不,elif不工作这种方式。如果你使用2个if语句,这将是问题,但是elif对这种错误是强健的。 – lejlot

+0

你说得对。我的不好.. – nutmeg64

+0

**说明** 写一个循环遍历start_list和.append()的每个数字平方(x ** 2)到''square_list'的'for'循环。 然后排序'square_list'!我的代码'start_list = [5,3,1,2,4] square_list = [] #您的代码在这里! '如何解决它? –