Do SyntaxError
que você colou, parece que você está executando o script com a versão errada do python, especificamente o Python 2 em vez do Python 3 (porque o SyntaxError
pode estar reclamando das anotações, que existem apenas no Python 3 ).
Se você realmente leu o erro, pode ver que isso realmente não tem nada a ver com a passagem de argumentos (o título da sua pergunta).
A solução correta é não invocar o script prefixando-o com o nome do interpretador, mas para permitir que invoque seu próprio interpretador:
./main.py 1.0 0.1 10
em vez de
python main.py 1.0 0.1 10
Se estiver escrito corretamente, o script terá uma linha shebang no início que especifica qual interpretador ele precisa ser executado, e isso será python3
ou algo semelhante.
Ao permitir que o script especifique seu próprio interpretador, o script de chamada não precisa saber ou se importar com qual interpretador é necessário. O script pode até mesmo ser reescrito para usar uma linguagem completamente diferente (ou pode ser substituído por um binário compilado que não seja um script) e os chamadores não precisam ser modificados para chamá-lo de forma diferente.