Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

จะใช้อาร์กิวเมนต์ตำแหน่งเดียวกันอย่างน้อยหนึ่งรายการใน 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