我正在尝试编写一个程序来在 python 中使用递归查找列表的总和,我的代码是这样的
value = 0
def sum_list(alist):
global value
if len(alist) == 0:
return value
value += alist.pop()
return sum_list(alist)
print sum_list(range(10))
但是当我执行这个脚本时,我遇到了一个奇怪的错误。
Unescaped left brace in regex is deprecated, passed through in regex; marked by <-- HERE in m/%{ <-- HERE (.*?)}/ at /usr/bin/print line 528.
Error: no "print" mailcap rules found for type "text/x-python"
我搜索了它,但不明白为什么会出现此错误。帮助将不胜感激
您的代码是有效的 Python 2。(它不是有效的 Python 3,因为打印语句必须不同。)
您没有说您实际上是如何运行这段代码的,但看起来它实际上并没有被解释为 Python 程序。错误消息来自/usr/bin/print,所以我认为您已经设法以某种方式将其解释为 shell 脚本,并且最后一行的“print”正在运行/usr/bin/print。这显然不是您想要的。
如果您在源文件中执行它,请尝试将以下行放在它的顶部,以告诉 shell 将其作为 Python 程序运行:
#!/usr/bin/env python
或者,使用
运行它
python myfile.py
我是一名优秀的程序员,十分优秀!