2017-11-06 5 views
0

変数prizeNoneに設定する理由は何ですか?変数prizeが存在しない場合変数をNoneに設定する

def which_prize2(points): 

    prize = None 
    if points <= 50: 
     prize = "a wooden rabbit" 
    elif 151 <= points <= 180: 
     prize = "a wafer-thin mint" 
    elif points >= 181: 
     prize = "a penguin" 

    if prize: 
     return "Congratulations! You have won " + prize + "!" 
    else: 
     return "Oh dear, no prize this time." 
+1

[なし]に設定しなかった場合は、ポイントであった場合にどうなるか、100、と言いますか? –

+0

OPが何を求めているかは非常に明確です。 OPがすべてを知っていれば、彼は最初に尋ねることはなく、SOはまったく存在しません。 –

答えて

3

NameError例外が発生します。
変数賞がNoneまたは""(空の文字列)または0に設定されていても、これらの値はすべてPythonでは偽であるため、問題はありません。

この特別な例では、賞金はNoneに設定されています。これは、if/elseにチェックインすると終了します。この場合は/ elifのブロックは変数賞を作成しない、変数賞はこのブロックの前に作成されている場合でも

if points <= 50: 
    prize = "a wooden rabbit" 
elif 151 <= points <= 180: 
    prize = "a wafer-thin mint" 
elif points >= 181: 
    prize = "a penguin" 
関連する問題