2017-07-29 6 views
-1

この方法は、最初にあなたがない増加コストを削減になっている、2個のエラーがあります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

コードが動作しています!唯一のことは、elseの場合を除いて、あなたが最終的な 'cost'値を返さないことです。 はDEF rental_car_cost(日): コスト= 40 *日 場合日> = 7: コスト+ = 50 ELIF日> = 3: コスト+ = 20他 : パス 戻りコスト とIFあなたが値を保存したい場合は、関数を呼び出すときに変数に保存するだけです。 x = rental_car_cost(7) – sheplu

答えて

1

ショートカットの方法で別の方法を私はしたいのpythonであれば、コードを記述します。第二に、あなたはすべてのブランチで

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)) 

または戻りdicsounted枝に値を返すことはありません明示的に

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()'の各数値の2乗を '(x ** 2)'から 'square_list'に繰り返すforループを書く。 次に 'square_list'をソートしてください!私のコード 'start_list = [5、3、1、2、4] square_list = [] #あなたのコードはここに! 'それを解決する方法? –

関連する問題