0

任何帮助表示赞赏,还有任何大的缺陷或您在格式化或基本的方式中看到的东西,请指出。谢谢!

day = raw_input("How many days?")
locations = raw_input("Where to?")
days = str(day)
location = str(locations)
spendingMoney = 100


def hotel(days):
    return 140 * days

def destination(location):
    if location == "los angeles":
        return 300
    if location == "boston":
        return 400

def rental(days):
    if days < 2:
        return 40 * days
    if days >= 2 and days <= 6:
        return days * 30
     if days >= 7:
        return days * 25

def total_cost(days, location):
    return hotel(days) + destination(location) + rental(days)


print total_cost(days, location)
4

2 回答 2

2

首先要了解的是它raw_input返回一个字符串,因此之后无需将结果转换为字符串。

您想要的(我认为)是转换dayint,因此您需要更改顶部。

day = raw_input("How many days?")
location = raw_input("Where to?")
days = int(day)
spendingMoney = 100

在您的原始代码中,days是一个字符串,因此您试图将一个字符串添加到整数(这引发了错误)。

将字符串乘以整数是完全有效的,因为它只是将原始字符串重复多次。

print 'foobar' * 5
# foobarfoobarfoobarfoobarfoobar
于 2013-01-26T01:53:31.683 回答
1

问题是那days是一个字符串。

当你这样做时

return 140 * days

它实际上将你的字符串乘以 140。所以如果days== "5" 你将有 "555555555555555555..." (140 个字符)

你想用整数运算,所以 days = int(day)改为

于 2013-01-26T01:55:16.140 回答