Pythonを使用してプログラムを作っているのですが、if文の条件式で不明点がありまして、質問させていただきました。
内容としては「比較演算子を使用したとき、右辺の式にorを使用すると正常に処理してくれないのか?」というものになります。
条件の内容がおかしいからif文が機能していないのか?と考え
if文を使用した簡単なプログラムを別で作成し検証してみたのですが、やはりorのあたりでおかしなことになっているのではと考えました。
ただ、調べてみてもif文に==もしくは!=を使用し、比較対象にorを使用すると挙動がおかしくなるみたいな記事は見当たらなかったので困っている状況です。
テストで作成したプログラムを掲載いたしますので、ご教授いただけますようお願いいたします。
(バージョンは最新のPython 3.8.5を使用しています。)
Python3
1import argparse 2 3parser = argparse.ArgumentParser(description='プログラムの説明') 4 5parser.add_argument('number') 6 7args = parser.parse_args() # 引数を解析 8 9def main(): 10 print("分岐前") 11 print("==========") 12 if args.number == '1': 13 print("test1") 14 elif args.number == '2': 15 print("test2") 16 else: 17 print("test3") 18 if args.number != '1': 19 print("2,3~") 20 21 if args.number != '1' or '2' or '3': 22 print("4~") 23 24 print("分岐終了") 25 26if __name__ == "__main__": 27 main() 28
以下、プログラム実行時のコンソールをキャプチャしたものです。
<期待値>
・引数「number」の入力値が
→1の場合:「分岐前 test1 分岐終了」
→2の場合:「分岐前 test2 2,3~ 分岐終了」
→3の場合:「分岐前 test3 2,3~ 分岐終了」
→4の場合:「分岐前 test3 2,3~ 4~ 分岐終了」
(入力値の妥当性チェック処理は実装していないので、1以上の整数値で入力すること。)
回答3件
あなたの回答
tips
プレビュー