Python

【Python】if notでorを使うときの注意点

shamimatsu

python3.7を使用
1行に二つの条件を入れる時にorやandを使いますが、notを使った時につまづいてしまったので解決法を残します。

コード

例として前方と後方どちらも条件と一致した場合のみ‘前方後方とも一致’がプリントされるスクリプトを作ります。
後方が_txtで条件と一致していないに‘前方後方とも一致’が出てしまい何故かわかりませんでした。

r = 'field0001_txt'

if not r.startswith('field') or r.endswith('_mat'):
    print('前方後方どちらか、または両方間違い')
else:
    print('前方後方とも一致')

どこが間違っていたのか

orの後にもnotを入れなければならないと教わりました。
最初にif notと書いてあるので一列すべてnotになっていると勘違いしていました。
これで‘前方後方どちらか、または両方間違い’という正しい結果が出力されました。

r = 'field0001_txt'

if not r.startswith('field') or not r.endswith('_mat'):
    print('前方後方どちらか、または両方間違い')
else:
    print('前方後方とも一致')

 

ABOUT ME
shamimatsu
shamimatsu
3DCGデザイナー
ながらくゲーム業界で2D、3DCGデザイナーとして働いてきましたが、新しい業界に挑戦中です。 ブログのデザインをリニューアル中のため、見づらい箇所もあるかもしれませんが少しづつ修正していきます。
記事URLをコピーしました