我正在尝试编写一个程序,在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"
我搜索了它,但无法理解为什么会出现此错误。 帮助将不胜感激
答案 0 :(得分:4)
您的代码是有效的Python 2.(它不是有效的Python 3,因为print语句必须不同。)
你不会说你实际上是如何运行这段代码的,但看起来它实际上并没有被解释为Python程序。错误消息来自/ usr / bin / print,所以我认为你已经设法将这个解释为shell脚本,以及&#34; print&#34;在你的最后一行正在运行/ usr / bin / print。这显然不是你想要的。
如果您在源文件中执行此操作,请尝试在其顶部放置以下行,以告诉shell将其作为Python程序运行:
#!/usr/bin/env python
或者,使用
运行它python myfile.py
答案 1 :(得分:1)
我遇到了这个问题,这是终端提示的疏忽。我输入的是 print
而不是 python
$ print sum.py
$ Error: no "print" mailcap rules found for type "text/x-python"
正确方法:
$ python sum.py
$ program runs successfully...
答案 2 :(得分:0)
错误消息来自Perl。不知道你是如何使用这个Python代码调用它的。