这是我的代码。我不断收到"int" object is not interable
的消息。我不确定我做错了什么?
def hotel_cost(nights):
return(nights*140)
hotel_cost(1)
def plane_ride_cost (city):
["Charlotte" == 183, "Tampa" == 220, "Los_Angeles" == 475,
"Pittsburgh" == 222]
if (city) == "Charlotte":
return 183
elif (city) == "Tampa":
return 220
elif (city) == "Los Angeles":
return 475
elif (city) == "Pittsburgh":
return 222
plane_ride_cost("Tampa")
def rental_car_cost(days):
cost= 40 * days
if days >= 7:
cost -= 50
elif days >= 3:
cost -= 20
return cost
rental_car_cost(1)
def trip_cost(city, days):
return sum(rental_car_cost(6) + plane_ride_cost("Tampa"))
答案 0 :(得分:0)
sum()
期望一个可迭代的,一系列事物要求和。但你给它一个整数:
rental_car_cost(6) + plane_ride_cost("Tampa")
已经将两个整数结果相加。
删除sum()
来电,您在此处不需要,因为+
完全可以使用:
def trip_cost(city, days):
return rental_car_cost(6) + plane_ride_cost("Tampa")
您可能希望在那里使用city
和days
参数,而不是将日期硬编码为6,将城市硬编码为"Tampa"
。
顺便提一下,将城市名称作为plane_ride_cost()
函数的第一行的列表定义是多余的;它只生成一个False
值列表(城市名称字符串都不等于下面的数字):
>>> ["Charlotte" == 183, "Tampa" == 220, "Los_Angeles" == 475,
... "Pittsburgh" == 222]
[False, False, False, False]
无论如何,你无视它。您可以将其定义为字典吗?像这样:
def plane_ride_cost(city):
plane_tickets = {
"Charlotte": 183,
"Tampa": 220,
"Los_Angeles": 475,
"Pittsburgh": 222
}
return plane_tickets[city]