2016-09-07 55 views
-2

因此,我編寫了這個簡單的代碼片段,它將列表列表作爲參數並對每個子列表項目進行求和。.join內置函數在python3.5不起作用

def addItems(li): 

    for k in li: 
     sum = 0 
     for i in k: 
      sum += i 

     print " + ".join(["%d" % (i) for i in k]) + " = %d" % (sum) 

當我嘗試在python2.7中導入模塊時,我成功了。

然而,當我嘗試做相同的python3.5,它帶來了這個錯誤:

Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "/home/george/Desktop/random/pyproj/myLibs/firstLib.py", line 9 
    print " + ".join(["%d" % (i) for i in k]) + " = %d" % (sum) 
      ^
SyntaxError: invalid syntax 
+1

總之。在Python 3中,'print'現在是一個函數,所以你必須這樣稱呼它:'print('事情在這裏')''。 – idjaw

+0

雖然不是重複的,但它確實回答了我的問題!謝謝! – docff

+3

它絕對是重複的。它在Python 2中工作,因爲'print'是Python 2中的語句。不需要括號。在Python 3中,你必須使用它,因爲'print'是一個函數。這恰恰是*重複鏈接解釋的內容。 https://docs.python.org/3.0/whatsnew/3.0.html#print-is-a-function – idjaw

回答

0

在Python 3,打印是一個函數,而不是一個聲明。你需要圍繞你想要打印的圓括號。另外,在你聲稱某些東西不起作用之前,你應該在交互式命令行和一個最小的例子中證明,那真的是不起作用的東西。