2016-11-25 133 views
0

以下是計算用戶假期成本的三個函數。鼓勵用戶輸入他的假期細節,然後將其作爲參數傳遞給函數。爲什麼我不能在Python中將這個int類型變量作爲參數傳遞?

def hotel_cost(days): 
    days = 140*days 
    return days 
"""This function returns the cost of the hotel. It takes a user inputed argument, multiples it by 140 and returns it as the total cost of the hotel""" 

def plane_ride_cost(city): 
    if city=="Charlotte": 
     return 183 
    elif city =="Tampa": 
     return 220 
    elif city== "Pittsburgh": 
     return 222 
    elif city=="Los Angeles": 
     return 475 
"""this function returns the cost of a plane ticket to the users selected city""" 

def rental_car_cost(days): 
    rental_car_cost=40*days 
    if days >=7: 
     rental_car_cost -= 50 
    elif days >=3: 
     rental_car_cost -= 20 
    return rental_car_cost 
"""this function calculates car rental cost""" 



user_days=raw_input("how many days would you be staying in the hotel?") """user to enter a city from one of the above choices""" 
user_city=raw_input("what city would you be visiting?") """user to enter number of days intended for holiday""" 


print hotel_cost(user_days) 
print plane_ride_cost(user_city) 
print rental_car_cost(user_days) 

我注意到,當我打印上述功能時,只有plane_ride_cost(user_city)正確運行。另外兩個功能吐出了亂碼。爲什麼是這樣?

+2

'raw_input'返回一個字符串,而不是一個int –

+2

因爲你沒有任何「int型變量」。你只有字符串。 –

+0

相關 - http://stackoverflow.com/questions/3536996/multiplying-a-string-with-a-number-in-python –

回答

0

您需要將raw_input的輸出轉換爲int。這應該工作:

user_days=int(raw_input("how many days would you be staying in the hotel?")) """user to enter a city from one of the above choices""" 

請注意,如果用戶輸入除數字之外的任何內容,則會引發錯誤。

1

您應該將user_daysstr轉換爲int

def hotel_cost(days): 
    days = 140*days 
    return days 


def plane_ride_cost(city): 
    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): 
    rental_car_cost=40*days 
    if days >=7: 
     rental_car_cost -= 50 
    elif days >=3: 
     rental_car_cost -= 20 
    return rental_car_cost 

user_days=int(raw_input("how many days would you be staying in the hotel?")) 
user_city=raw_input("what city would you be visiting?") 


print hotel_cost(user_days) 
print plane_ride_cost(user_city) 
print rental_car_cost(user_days) 
相關問題