数値を入力として扱うプログラムを作ってみましょう。それにもかかわらず、ベースを指定することができます。指定しない場合、数値は10進数で表されます。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を使用するオプションがあることを知っていますが、これはうまくいきません。なぜなら、常にベースを指定する必要があるからです。
モデルコード:
#!/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