Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python에서 하나 이상의 동일한 위치 인수를 사용하는 방법은 무엇입니까?

<시간/>

소개..

두 숫자에 대해 산술 연산을 수행하는 프로그램을 작성하는 경우 두 숫자를 두 개의 위치 인수로 정의할 수 있습니다. 그러나 그것들은 동일한 종류/파이썬 데이터 유형의 인수이기 때문에 nargs 옵션을 사용하여 argparse에 정확히 두 개의 동일한 유형을 원한다고 알려주는 것이 더 합리적일 수 있습니다.

그것을 하는 방법..

1. 두 개의 숫자를 빼는 프로그램을 작성해 봅시다(두 인수는 같은 유형입니다).

예시

import argparse

def get_args():
""" Function : get_args
parameters used in .add_argument
1. metavar - Provide a hint to the user about the data type.
- By default, all arguments are strings.

2. type - The actual Python data type
- (note the lack of quotes around str)

3. help - A brief description of the parameter for the usage

4. nargs - require exactly nargs values.

"""

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

parser.add_argument('numbers',
metavar='int',
nargs=2,
type=int,
help='Numbers of type int for subtraction')

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에는 정확히 두 개의 값이 필요합니다.

  • 각 값은 정수 값으로 보내야 하며 그렇지 않으면 프로그램에서 오류가 발생합니다.

다른 값을 전달하여 프로그램을 실행해 보겠습니다.

출력

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

<<< 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