2016-04-21 4 views
1

Когда я использую "\n" в моей print функции он дает мне ошибку синтаксиса в следующем коденовая строка с переменной в Python

from itertools import combinations 
a=[comb for comb in combinations(range(1,96+1),7) if sum(comb) == 42] 
print (a "\n") 

Есть ли способ, чтобы добавить новую строку в каждой комбинации?

+2

Где вы используете "\ n"? – mprat

+0

print (a "\ n"), подобный этому @mprat – user6234753

+0

@ user6234753, вы ошибаетесь в конкатенации строки. Оформить заказ [** this **] (http://www.pythonforbeginners.com/concatenation/string-concatenation-and-formatting-in-python) – SaidbakR

ответ

-1

print (a + "\ n"). просто нужно добавить возможности +

+0

Я сделал это, но покажи мне это "TypeError: может только конкатенировать список (а не" str "), чтобы перечислить" .. можете ли вы его протестировать – user6234753

+0

ах, справа, вам нужно пройти через элементы. 'для элемента в a: print (str (element) +" \ n ")' str() скрывает элементы в строке. Альтернативно, отформатированные укусы, как предлагает PfunnyGuy. Но цикл и вызов str() все равно должны использоваться. Или найдите правильный флаг для использования с вами типа данных и% внутри строки. https://docs.python.org/2/library/stdtypes.html#string-formatting-operations –

0

Два:

print "%s\n" %a 
print a, "\n" 
+0

[link] (https://ideone.com/zgy5YC) см. это и [link] (https: // ideone .com/8MnqMf) – user6234753

0

Это будет работать для вас:

я использовал 1,2 ... 6 в моем примере и 2 длиной кортежей с комбинированной суммой из 7.

from itertools import combinations 
a=["{0}\n".format(comb) for comb in combinations(range(1,7),2) if sum(comb) == 7] 

print(a) 
for thing in a: 
    print(thing) 

Выход

['(1, 6)\n', '(2, 5)\n', '(3, 4)\n'] 
(1, 6) 

(2, 5) 

(3, 4) 
4

print функция уже добавляет символ новой строки для вас, так что если вы просто хотите, чтобы печатать с последующим переводом строки, делать (Паренс обязательным, так как это Python 3):

print(a) 

Если цель состоит в том, чтобы напечатать элементы a отделенных друг от друга символами новой строки, вы можете либо петли в явном виде:

for x in a: 
    print(x) 

или злоупотребление звезда распаковка, чтобы сделать это как одно утверждение, используя sep разделить выходы на различные линии:

print(*a, sep="\n") 

Если вы хотите, чтобы пустая строка между выходами, а не только разрыв строки, добавьте end="\n\n" к первым двум или измените sep на sep="\n\n" для окончательной опции.