我正在定义下面的函数。在
def trip_cost(days, city):
return hotel_cost(days) + plane_ride_cost(city) + rental_car_cost(days)
但是,当它执行时,我收到以下错误:
^{pr2}$但是,如果我执行下面的代码
^{3}$它运行良好。在
完整代码如下:
def hotel_cost(nights):
return 140 * nights
def plane_ride_cost(city):
if city == "Charlotte":
return 183
elif city == "Tampa":
return 220
elif city == "Pittsburgh":
return 222
elif city == "Los Angeles":
return 475
def rental_car_cost(days):
cost = days * 40
if days >= 7:
cost -= 50
elif days >= 3:
cost -= 20
return cost
def trip_cost(days, city):
return hotel_cost(days) + plane_ride_cost(city) + rental_car_cost(days)
我认为问题是你在第一次比赛中把一个“匹兹堡”传给了第二天和第八天。因此,第一个函数hotel_cost返回一个字符串,而第二个函数plane_ride_cost没有返回任何值,因为它没有一个实例与8匹配。因此它返回NoneType对象,不能附加到返回的string对象。在
因此,在向函数传递参数时,最佳做法是列出参数,然后传递值,如下所示。公司名称:
这是因为函数希望第一个参数是整数,但您传递的是一个str来代替它。在
处理这种情况的一个聪明的方法是传递如下对象:
{'city':'Pittsburgh', 'days':10}
代码运行良好:
呼叫行程费用(天,城市)即(8,“匹兹堡”)而不是“匹兹堡”,8)
示例:
在产量:920在
相关问题 更多 >
编程相关推荐