我的函数位于与该函数同名的 .py 文件中:
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:~$
错误在哪里?
答案1
您需要cd
进入您的 python 文件所在的目录,然后调用 python 交互式 shell 才能以交互方式调用和运行函数。
# cd to the directory
$ cd ~/Dropbox/emp/Python/
# invoke the python interactive shell
$ python # use `python3` to invoke the Python3 shell
Python 交互式 shell 看起来是这样的:
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.
>>>
在这里您可以导入模块(您的 *.py 文件)并运行其中写的函数:
>>> from stromkosten_pro_jahr import stromkosten_pro_jahr
>>> stromkosten_pro_jahr(20,3)
[The output of function would be shown right here]
如需更多信息,我建议您访问Python 教程。
答案2
正如我发现的那样回答,您可以python
直接从以下方式运行 的功能bash
:
$ python -c 'from a import stromkosten_pro_jahr; stromkosten_pro_jahr(20,3)'
a
您的文件/模块的名称在哪里( a.py
)。
但重要的是要与您的文件位于同一目录中。
答案3
您无法直接从 Bash shell 调用 Python 函数。您收到此特定错误是因为 bash 正在解析您的参数(20,3)像这样:
$ echo (20,3)
bash: syntax error near unexpected token `20,3'
要将括号作为字符串传递,您需要对其进行转义:
$ echo \(20,3\) '(1,2)'
(20,3) (1,2)
但这仍然不会神奇地作为 Python 代码运行 - 您需要解析 Python 程序中的命令行参数(保存为 x.py):
import sys
def fn(a,b):
print a+b
eval(sys.argv[1])
然后:
$ python x.py 'fn(0,13)'
13