讓我們有一個程序,它將一個數字作爲輸入。儘管如此,基地可以指定。未指定時,數字以十進制爲基數。Python - Argparse:可以被忽略的默認填充
# 10 in decimal
./get_num.py 10
# 10 in octal
./get_num.py -o 12
# 10 in binary
./get_num.py -b 1010
我想使用Python Argparse模塊,但無法找到實現此結果的方法。我知道有一個選項可以使用mutually exclusive group,但是這不太合適,因爲那時候需要總是指定base。
型號代碼:
#!/usr/bin/env python3
from argparse import ArgumentParser
parser = ArgumentParser()
parser.add_argument('base')
parser.add_argument('-o')
parser.add_argument('-b')
args = parser.parse_args()
if args.o: print('octal', args.o)
if args.b: print('binary', args.b)
else: print('decimal', args.base)
如果你把基地置於有條件的情況下。 '如果base:'並創建一個默認模板 – Joe
你的意思是'base'是位置的,'octal'和'binary'是可選的? –
沒有基地是可選的。但是你可以寫一個條件來檢查基地是否通過。如果不通過發起基地。發佈你的代碼,我會看看我是否可以添加你需要的東西 – Joe