2017-07-29 97 views
-1

這種方法寫的,如果代碼在python我想其他方法與快捷方法是否有另外一種方法來編寫if語句?

def rental_car_cost(days): 
    cost = 40 *days 
    if days >= 7 : 
     cost += 50 
    elif days >= 3: 
     cost += 20 
    else: 
     return cost 
rental_car_cost(7) 
+2

折扣應該** **降低價格,而不是** **增加它。 – lejlot

+1

你的代碼有幾個問題(沒有實現折扣,沒有在所有情況下返回成本,扔掉返回值)。但是,在我們可以詳細瞭解之前,請先問一個恰當的問題。特別是你應該努力描述你遇到的問題。 – timgeb

+0

您的代碼正在工作!唯一的是你不會返回你的最終'成本'值,除了在其他情況下。 DEF rental_car_cost(天): 成本= 40 *天 如果天> = 7: 成本+ = 50 elif的天數> = 3: 成本+ = 20 否則: 通 返回成本 並且如果你想保存你的價值,你只需要將它保存在一個變量當你調用函數 x = rental_car_cost(7) – sheplu

回答

1

有兩個誤區,首先你應該減少沒有增加成本。其次,你從來沒有在dicsounted分支返回值

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

print(rental_car_cost(7)) 

或在每一個分支返回明確地

def rental_car_cost(days): 
    base_cost = 40 * days 
    if days >= 7 : 
     return base_cost - 50 
    elif days >= 3: 
     return base_cost - 20 
    else: 
     return cost 

print(rental_car_cost(7)) 
+2

@nutmeg,不,你不,elif不工作這種方式。如果你使用2個if語句,這將是問題,但是elif對這種錯誤是強健的。 – lejlot

+0

你說得對。我的不好.. – nutmeg64

+0

**說明** 寫一個循環遍歷start_list和.append()的每個數字平方(x ** 2)到''square_list'的'for'循環。 然後排序'square_list'!我的代碼'start_list = [5,3,1,2,4] square_list = [] #您的代碼在這裏! '如何解決它? –

相關問題