2016-09-07 1 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 ('things here here') '. – 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, печать является функцией, а не утверждение. Вам нужны скобки вокруг того, что вы хотите распечатать.

Кроме того, прежде чем вы утверждаете, что что-то не работает, вы должны в интерактивной командной строке и с минимальным примером доказать, что это действительно то, что не работает.

 Смежные вопросы

  • Нет связанных вопросов^_^