Python 为什么此代码不是';t使用高效内存工作

Python 为什么此代码不是';t使用高效内存工作,python,function,if-statement,space-complexity,Python,Function,If Statement,Space Complexity,我需要更多关于如何改进代码以节省内存的信息 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) 有两个错误,首先你应该减少而不是增加成本。其次,您永远不会在双分支中返回值 def ren

我需要更多关于如何改进代码以节省内存的信息

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)

有两个错误,首先你应该减少而不是增加成本。其次,您永远不会在双分支中返回值

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))

折扣应该会降低价格,而不是提高价格。您的代码有几个问题(没有实现折扣,在所有情况下都不返回成本,丢弃返回值)。然而,在我们深入了解更多细节之前,请先提出一个适当的问题。特别是你应该努力描述你遇到的问题。你的代码正在运行!唯一的问题是,除了else,您不会返回最终的
成本值。def rental_car_cost(days):cost=40*days如果days>=7:cost+=50 elif days>=3:cost+=20其他:传递返回成本,如果要保存价值,只需在调用函数x=rental_car_cost(7)@肉豆蔻时将其保存在变量中即可,elif不是这样工作的。如果您使用2个if语句,这将是一个问题,但是elif对此类错误非常健壮。您是对的。我的错误..指令为
-循环编写一个
,循环在
开始列表
附加()
s每个数字的平方
(x**2)
平方列表
。然后排序
square\u列表
!我的代码
start_list=[5,3,1,2,4]square_list=[]#您的代码在这里如何解决?