2013-10-27 2 views
4

Я нашел эту проблему в нескольких разных местах, но мой немного отличается, поэтому я не могу использовать и применять ответы. Я делаю упражнение по серии Фибоначчи, и потому что для школы я не хочу копировать свой код, но вот что-то очень похожее.Печать на Python без пробела

one=1 
two=2 
three=3 
print(one, two, three) 

Когда распечатывается отображается «1 2 3» Я не хочу этого, я хотел бы, чтобы отобразить его как «1,2,3» или «1, 2, 3» я могу сделать это с помощью изменения как этот

one=1 
two=2 
three=3 
print(one, end=", ") 
print(two, end=", ") 
print(three, end=", ") 

Мой реальный вопрос, есть ли способ, чтобы уплотнить эти три строки кода в одну строку, потому что если я их все вместе, я получаю сообщение об ошибке.

спасибо.

+0

'помощь (печать)' мог бы сказать вам ... – glglgl

ответ

3

Вы можете использовать строку Python format:

print('{0}, {1}, {2}'.format(one, two, three)) 
3

Вы можете сделать это с или без запятой:

1) Нет пространств

one=1 
two=2 
three=3 
print(one, two, three, sep="") 

2) запятая с пространством

one=1 
two=2 
three=3 
print(one, two, three, sep=", ") 

3) Запятая без пространства

one=1 
two=2 
three=3 
print(one, two, three, sep=",") 
5

Использование print() функция sep=', ' как это ::

>>> print(one, two, three, sep=', ') 
1, 2, 3 

Чтобы сделать то же самое с итератора можно использовать пейнтбольный оператор * распаковать его:

>>> print(*range(1, 5), sep=", ") 
1, 2, 3, 4 
>>> print(*'abcde', sep=", ") 
a, b, c, d, e 

help on print:

print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False) 

Prints the values to a stream, or to sys.stdout by default. 
Optional keyword arguments: 
file: a file-like object (stream); defaults to the current sys.stdout. 
sep: string inserted between values, default a space. 
end: string appended after the last value, default a newline. 
flush: whether to forcibly flush the stream. 
1

Другой способ:

one=1 
two=2 
three=3 
print(', '.join(str(t) for t in (one,two,three))) 
# 1, 2, 3 
Смежные вопросы