Python Int对象在计算差旅费时出错
这是我的密码。我一直得到这样的信息:int对象是不可交互的。我不确定我做错了什么Python Int对象在计算差旅费时出错,python,Python,这是我的密码。我一直得到这样的信息:int对象是不可交互的。我不确定我做错了什么 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":
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"))
求和需要一个可数,一系列的东西来求和。但你给了它一个整数:
rental_car_cost(6) + plane_ride_cost("Tampa")
已将两个整数结果相加
删除sum调用,此处不需要它,因为+完全可用:
def trip_cost(city, days):
return rental_car_cost(6) + plane_ride_cost("Tampa")
您可能希望使用城市和天数参数,而不是将天数硬编码为6,将城市硬编码为坦帕
顺便说一句,以城市名称作为飞机行驶成本函数第一行的列表定义是多余的;它只生成一个假值列表,没有一个城市名称字符串等于以下数字:
>>> ["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]
请拿出一个更好的题目。非常感谢!我试图编一本字典,但我显然把[]错当成了{},这就是为什么我认为它会有用的原因。谢谢你指出这一点并帮助我解决这个问题。