2017-01-15 4 views
0

は、私はPythonで再帰を使用して、リストの合計を見つけるためのプログラムを記述しようとしていますし、私のコードは、このregexのエスケープされていない左括弧は非難され、正規表現で渡されます。

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)) 

ですが、私はこのスクリプトを実行していたとき、私はweiredエラーを取得しています。

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" 

私はそれを検索しましたが、なぜこのエラーが発生するのかわかりませんでした。 ヘルプは、

答えて

2

あなたのコードは、あなたが実際にこのコードを実行しているか言っていない有効なPython 2(print文は異なるでなければならないので、それが有効なPython 3ではありません。)

で理解されるであろう実際にはPythonプログラムとして解釈されていないようです。エラーメッセージは/ usr/bin/printから来ているので、これを何らかの形でシェルスクリプトとして解釈し、最終行の "print"は/ usr/bin/printを実行していると思います。それは明らかにあなたが望むものではありません。ソースファイル内でこれを実行している場合

、Pythonプログラムとして、これを実行するためにシェルを伝えるために、それの一番上に次の行を入れてみてください:

#!/usr/bin/env python 

を代わりに、それは

を使用して実行
python myfile.py 
0

エラーメッセージはPerlからのものです。あなたがこのPythonコードでどのようにそれを呼び出すことができたかわかりません。

も参照してください。http://www.perlmonks.org/?node_id=113525

関連する問題