0

所以我在codeacademy的python教程中遇到了这个问题,
代码是这样的

def hotel_cost(days):
    return days*140

Charlotte = "Charlotte"
Tampa = "Tampa"
Pittsburgh = "Pittsburgh"
LosAngeles = "Los Angeles"


def plane_ride_cost(city):
    if city == Charlotte:
        return 183
    elif city == Tampa:
        return 220
    elif city == Pittsburgh:
        return 222
    elif city ==LosAngeles:
        return 475
    else:
        return "not"

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

def trip_cost(city,days):
    return hotel_cost(days)+rental_car_cost(days)+plane_ride_cost(city)

我再次意识到语法中的错误

def trip_cost(city,days):
    return hotel_cost(days)+rental_car_cost(days)+plane_ride_cost(city)

但我没有足够的知识以任何可能的方式对其进行修改(我确实尝试过)

非常感谢所有查看此内容的人

4

2 回答 2

0

以下函数存在问题。你返回not而不是返回一个整数。然后,您尝试在您的trip_cost方法中添加返回值。这将无法正常工作。考虑返回0而不是返回,然后事情应该可以工作

def plane_ride_cost(city):
    if city == Charlotte:
        return 183
    elif city == Tampa:
        return 220
    elif city == Pittsburgh:
        return 222
    elif city ==LosAngeles:
        return 475
    else:
        return "not"  
于 2013-08-07T02:14:24.980 回答
0

我复制粘贴了您的代码,一切正常,但没有输出。

那么这是什么都没有让你认为你的代码是错误的?

只需在末尾添加这一行:

print trip_cost('Tampa', 10)

你会看到输出

你可以写一堆prints 和raw_inputs 让用户输入城市和日期。

编辑

哦,我没有注意到错误的默认返回,当您的用户输入错误的城市时plane_ride_cost(city),只需将其更改为0或其他有意义的东西。

于 2013-08-07T02:15:29.510 回答