Ma fonction se trouve dans un fichier .py avec le même nom que la fonction:
emp@emp:~$ python ~/Dropbox/emp/Python/stromkosten_pro_jahr.pyempedokles@empedokles:~$ stromkosten_pro_jahr(20,3)
bash: Syntaxfehler beim unerwarteten Wort »20,3«
emp@emp:~$
Où est l'erreur?
Vous devez cd
dans le répertoire où se trouve votre fichier python, puis appeler le shell interactif python pour pouvoir appeler et exécuter des fonctions de manière interactive.
# cd to the directory
$ cd ~/Dropbox/emp/Python/
# invoke the python interactive Shell
$ python # use `python3` to invoke the Python3 Shell
Le shell interactif Python ressemblerait à ceci:
Python 2.7.6 (default, Mar 22 2014, 22:59:38)
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
Ici, vous pouvez importer le module (votre fichier * .py) et exécuter les fonctions qui y sont écrites:
>>> from stromkosten_pro_jahr import stromkosten_pro_jahr
>>> stromkosten_pro_jahr(20,3)
[The output of function would be shown right here]
Pour plus d'informations, je suggérerais de passer Le Python Tutorial .
Comme je l’ai trouvé dans cette réponse , vous pouvez exécuter la fonction de python
directement à partir de bash
comme:
$ python -c 'from a import stromkosten_pro_jahr; stromkosten_pro_jahr(20,3)'
Où a
est le nom de votre fichier/module (a.py
).
Mais l’important est d’être dans le même répertoire que votre fichier.
Vous ne pouvez pas appeler les fonctions Python directement à partir du Bash Shell. Vous obtenez cette erreur particulière parce que bash analyse vos arguments (20,3) comme ceci:
$ echo (20,3)
bash: syntax error near unexpected token `20,3'
Pour transmettre les crochets sous forme de chaîne, vous devez les échapper:
$ echo \(20,3\) '(1,2)'
(20,3) (1,2)
Mais cela ne fonctionnera toujours pas comme par magie en tant que code Python - vous devrez analyser les arguments de la ligne de commande dans votre programme Python (enregistrer sous x.py):
import sys
def fn(a,b):
print a+b
eval(sys.argv[1])
Ensuite:
$ python x.py 'fn(0,13)'
13