Как я могу подать рациональное или иррациональное число в argparse?
Как я могу передать рациональные числа, такие как 3/2, через терминал, в мой скрипт на python, используя argparse? У меня та же проблема, когда я хочу ввести число pi или любые другие иррациональные числа, такие как sqrt(2), используя argparse.
С уважением, Хади
1 ответ
С
import argparse
import sys
print(sys.argv)
parser = argparse.ArgumentParser()
parser.add_argument('aNumber')
args = parser.parse_args()
print(args)
пробные прогоны:
1414:~/mypy$ python3 stack53964076.py -h
['stack53964076.py', '-h']
usage: stack53964076.py [-h] aNumber
positional arguments:
aNumber
optional arguments:
-h, --help show this help message and exit
1417:~/mypy$ python3 stack53964076.py 3/2
['stack53964076.py', '3/2']
Namespace(aNumber='3/2')
1417:~/mypy$ python3 stack53964076.py pi
['stack53964076.py', 'pi']
Namespace(aNumber='pi')
1417:~/mypy$ python3 stack53964076.py sqrt(2)
bash: syntax error near unexpected token `('
1417:~/mypy$ python3 stack53964076.py 'sqrt(2)'
['stack53964076.py', 'sqrt(2)']
Namespace(aNumber='sqrt(2)')
Во всех этих случаях args.aNumber
будет строка В последнем случае мне пришлось включить кавычки, чтобы оболочка не пыталась разобрать сам символ "(".
Обработка этих строк является ответственностью вашего собственного кода, а не argparse
,