Computer >> Máy Tính >  >> Lập trình >> Python

Làm cách nào để sử dụng một hoặc nhiều đối số vị trí giống nhau trong Python?

Giới thiệu ..

Nếu chúng ta đang viết một chương trình thực hiện các phép toán thừa trên hai số, chúng ta có thể định nghĩa chúng là hai đối số vị trí. Nhưng vì chúng là các đối số kiểu / kiểu dữ liệu python giống nhau, nên có thể hợp lý hơn khi sử dụng tùy chọn tường thuật để nói với argparse rằng bạn muốn có chính xác hai kiểu dữ liệu giống nhau.

Cách thực hiện ..

1. Hãy viết một chương trình để trừ hai số (cả hai đối số đều cùng kiểu).

Ví dụ

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 sẽ yêu cầu chính xác hai giá trị.

  • Mỗi giá trị phải được gửi dưới dạng giá trị số nguyên nếu không chương trình của chúng tôi sẽ gặp lỗi.

Hãy để chúng tôi chạy chương trình bằng cách chuyển các giá trị khác nhau.

Đầu ra

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