Python スクリプトのエラー - 'KCG python' の条件判定修正
以下の Python スクリプトには間違いがあります。間違い箇所と正しいコードを解説します。
num = int(input('整数を入力してください>>'))
if num % 3 and num % 5 == 0:
print('KCG python')
elif num % 3 == 0:
print('KCG')
elif num % 5 == 0:
print('python')
else:
print('integer')
間違いは、
if num % 3 and num % 5 == 0:
print('KCG python')
の部分です。
正しい条件判定は、
if num % 3 == 0 and num % 5 == 0:
print('KCG python')
となります。
このコードでは、num が 3 で割り切れる かつ 5 で割り切れる場合に 'KCG python' を出力するようになっています。しかし、元のコードでは if num % 3 and num % 5 == 0 となっていて、and 演算子の優先順位が考慮されていません。そのため、num % 3 が真であれば常に True となり、意図した条件判定が行われていませんでした。
and 演算子は左から右へ評価され、いずれかの条件が偽であれば以降の評価は行われません。そのため、num % 3 == 0 と num % 5 == 0 の両方が真である場合のみ True となります。
正しいコードでは、num % 3 == 0 と num % 5 == 0 の両方に == 0 をつけて比較することで、意図した条件判定を行うことができます。
原文地址: https://www.cveoy.top/t/topic/qFEO 著作权归作者所有。请勿转载和采集!