def hotel_cost():
nights = input("how many days?")
return 140 * nights
def plane_ride_cost():
city = input("which city? Charlotte, Tampa, Pittsburgh or Los Angeles?")
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 = input("how many days for renting a car?")
pro_day = days * 40
if days >= 7:
return pro_day - 50
elif days >=3:
return pro_day - 20
else:
return pro_day
def trip_cost():
return nights + city + pro_day + spending_money
print trip_cost(hotel_cost(),plane_ride_cost(),rental_car_cost()+ spending_money)
大家好,有人可以用这段代码帮我吗?我在codeacademy上学到了它并进行了修改,想让它变得用户友好但是在运行代码之后我可以选择天和城市名称以及错误之后。我非常喜欢python,感谢任何建议,谢谢
答案 0 :(得分:2)
使用
NSDataReadingMappedIfSafe
而不是
raw_input("which city? Charlotte, Tampa, Pittsburgh or Los Angeles? ")
。
检查此链接 NameError
答案 1 :(得分:1)
检查一下。你错过了花钱变量。我为此创建了一个函数,你可以在其中合作你的逻辑。还有你在rental_car_cost中比较一个str对象与int的地方。确保先将它投射或者将它与字符串类型对象进行比较。
input("which city? Charlotte, Tampa, Pittsburgh or Los Angeles? ")
答案 2 :(得分:0)
首先,您需要正确缩进代码。
其次,将input()
更改为raw_input()
:
def plane_ride_cost():
city = raw_input("which city? Charlotte, Tampa, Pittsburgh or Los Angeles?")
和
def rental_car_cost():
days = raw_input("how many days for renting a car?")
第三,你需要在这里输入String输入到int:
def rental_car_cost():
days = raw_input("how many days for renting a car?")
pro_day = int(days) * 40
您的trip_cost()
功能无效。您没有nights
,city
,pro_day
或spending_money
的任何变量。将print()
移到函数内部。
def trip_cost():
return nights + city + pro_day + spending_money
有几种方法可以改变这种状况。您可以在文件末尾移动文件末尾的print()
,并移除当前所在的return
,您可以移除print()
并将您的返回更改为
return hotel_cost(), plane_ride_cost(), rental_car_cost() + spending_money
然后在文件末尾添加print(trip_cost())
。选择取决于你。