Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonのargparseでnargsを使って同じ型の位置引数を複数指定する方法

はじめに

2つの数値に対して四則演算を行うプログラムを書く場合、それぞれを個別の位置引数(positional argument)として定義することができます。しかし、両方の引数が同じ種類・同じPythonデータ型であるなら、argparseの nargs オプションを使って「同じ型の値をちょうど2つ受け取る」と指定する方が、よりシンプルで自然な設計になります。

実装方法

ここでは、2つの整数を受け取って減算を行うプログラムを作成してみましょう。両方の引数は同じ int 型です。

サンプルコード

import argparse

def get_args():
    """ Function : get_args
    .add_argument で使用しているパラメータ
    1. metavar - ユーザーへデータ型のヒントを提供する。
       - デフォルトでは、すべての引数は文字列として扱われる。

    2. type - 実際のPythonデータ型
       - (str の前後に引用符がない点に注意)

    3. help - 使用方法に表示されるパラメータの簡単な説明

    4. nargs - 正確に nargs 個の値を要求する。
    """

    parser = argparse.ArgumentParser(
        description='Example for nargs',
        formatter_class=argparse.ArgumentDefaultsHelpFormatter)

    parser.add_argument('numbers',
                        metavar='int',
                        nargs=2,
                        type=int,
                        help='減算用のint型の数値')

    return parser.parse_args()

def main():
    args = get_args()
    num1, num2 = args.numbers
    print(f" *** Subtracting two number - {num1} - {num2} = {num1 - num2}")

if __name__ == '__main__':
    main()
  • nargs=2 を指定すると、正確に2つの値が必須となります。

  • 各値は整数として渡す必要があり、それ以外の型が渡された場合はプログラムがエラーで終了します。

それでは、さまざまな値を渡してプログラムを実行し、動作を確認してみましょう。

実行結果

<<< python test.py 30 10
*** Subtracting two number - 30 - 10 = 20

<<< python test.py 10 30
*** Subtracting two number - 10 - 30 = -20

<<< python test.py 10 10 30
usage: test.py [-h] int int
test.py: error: unrecognized arguments: 30

<<< python test.py
usage: test.py [-h] int int
test.py: error: the following arguments are required: int

このように、nargs=2 を指定した場合は必ず2つの値が必要になり、3つ以上渡すと「unrecognized arguments」エラーが、逆に1つも渡さないと「arguments are required」エラーが発生します。

nargsに指定できるその他の値

  • nargs='+':1つ以上の値を受け取る

  • nargs='*':0個以上の値を受け取る

  • nargs='?':0個または1個の値を受け取る

状況に応じてこれらの値を使い分けることで、柔軟なコマンドライン引数の処理が可能になります。

  1. Androidスマホ1台でWhatsAppを2つ使う方法|仮想電話番号の取得手順を解説

    このガイドは、正当な理由で2つ目のWhatsAppアカウントが必要な方に向けて解説するものです。不正な目的での利用は避けてください。本記事では、仮想電話番号(無料番号)を取得してWhatsApp認証を行い、1台のAndroidスマホで2つのWhatsAppを使う方法を詳しく紹介します。 Androidスマホ1台でWhatsAppを2つ使う方法 仮想電話番号を取得するには? WhatsAppは、SMSの登場以来における通信分野の最も画期的な成果の一つと言えます。従来は携帯キャリアがSMS送信ごとに料金を徴収していましたが、WhatsAppはユーザーに無料のメッセージサービスを提供しています。必要

  2. Windowsで複数のPDFファイルを1つに結合する方法|無料ツールを使った簡単手順

    2つ以上のPDFファイルを1つにまとめたいと思っていませんか?共通のテーマを持つ複数のPDFファイルがあるなら、それらを1つのファイルに結合しておくと、管理や共有が格段に楽になります。 この記事では、Windows環境で複数のPDFファイルを結合する具体的な手順を、わかりやすくステップごとに解説していきます。 Adobeの無料オンラインツールでPDFを結合する方法 PDFファイルの結合は、実はとてもシンプルな作業です。Adobeが提供している無料ツールを使えば、誰でも簡単に完了できます。以下の手順に従ってみましょう。 まず、Adobe公式サイトの無料オンラインPDF結合ツールにアクセスします。