def sum10(a, b):
if sum([a, b]) % 10 == 0: return True; return False
print sum10(7, 3)
print sum10(-13, -17)
print sum10(3, 8)
結果は次のとおりです。
True
True
None
私が期待したものではありません:
True
True
False
何か案が?
def sum10(a, b):
if sum([a, b]) % 10 == 0: return True; return False
print sum10(7, 3)
print sum10(-13, -17)
print sum10(3, 8)
結果は次のとおりです。
True
True
None
私が期待したものではありません:
True
True
False
何か案が?
あなたのコード
def sum10(a, b):
if sum([a, b]) % 10 == 0: return True; return False
と同等です
def sum10(a, b):
if sum([a, b]) % 10 == 0:
return True; return False
したがって、return False
評価されることはありません。
いくつかの(おそらく無限の)選択肢:
if sum([a, b]) % 10 == 0:
return True
return False
また
return sum([a, b]) % 10 == 0
また
return True if sum([a, b]) % 10 == 0 else False
また
return False if (a+b) % 10 else True
または(最も読みやすいIMHO)
return not (a + b) % 10
これはあなたが望むものです。
def sum10(a, b):
return sum([a, b]) % 10 == 0
また、If
Pythonの三項は次のように機能します
<True Statment> if <Conditional Expression> else <False Statement>
例えば
True if sum([a,b]) % 10 == 0 else False
プラス演算子の使用もお勧めしますか?
True if (a+b) % 10 == 0 else False
if-elseワンライナーが必要な場合は、次のように記述する必要があります。
return True if sum([a, b]) % 10 == 0 else False
その1つのライナーに2つのポイントがないことに注意してください。
return False
の外ではなく、ifの中にあるので、実行されることはないと思います。
したがって、if条件でtrueをとると、が実行されますがreturn True
、2番目のステートメントは実行されません。
def sum10(a, b):
return sum([a, b])%10 == 0
すぐにTrueまたはFalseを返す代わりに、結果をブール変数に格納して、最後にその変数を返すようにすることができます。例えば:
def sum(a,b):
bool result
if sum([a, b]) % 10 == 0:
bool=True
else:
bool=False
return bool