Как печатать переменные без пробелов между значениями

Я хотел бы знать, как удалить дополнительные пробелы, когда я что-то печатаю.

Как и когда:

print 'Value is "', value, '"'

Выход будет:

Value is " 42 "

Но я хочу:

Value is "42"

Есть ли способ сделать это?

Ответы

Ответ 1

Не используйте print ...,, если вам не нужны пробелы. Используйте конкатенацию или форматирование строк.

конкатенация:

print 'Value is "' + str(value) + '"'

Форматирование:

print 'Value is "{}"'.format(value)

Последнее гораздо более гибкое, см. документацию str.format() и Раздел синтаксиса форматирования строк.

Вы также встретите старый стиль %:

print 'Value is "%d"' % value
print 'Value is "%d", but math.pi is %.2f' % (value, math.pi)

но это не так гибко, как новый метод str.format().

Ответ 2

Просто легкий ответ для будущего, который я нашел простым в использовании в качестве стартера: Подобно использованию end='', чтобы избежать новой строки, вы можете использовать sep='', чтобы избежать пробелов... для этого вопроса здесь было бы так:       print('Value is "', value, '"', sep = '')

Пусть это поможет кому-то в будущем.

Ответ 3

Это запятая, которая обеспечивает дополнительное пространство.

Один из способов - использовать метод %:

print 'Value is "%d"' % (value)

который похож на printf в C, что позволяет вам включать и форматировать элементы после % с помощью спецификаторов формата в самой строке. Другой пример, показывающий использование нескольких значений:

print '%s is %3d.%d' % ('pi', 3, 14159)

Для того, что стоит, Python 3 значительно улучшает ситуацию, позволяя вам указывать разделитель и терминатор для одного вызова print:

>>> print(1,2,3,4,5)
1 2 3 4 5

>>> print(1,2,3,4,5,end='<<\n')
1 2 3 4 5<<

>>> print(1,2,3,4,5,sep=':',end='<<\n')
1:2:3:4:5<<

Ответ 4

Сконструировать то, что говорил Марджин. Я бы использовал строчную интерполяцию/форматирование.

В Python 2.x, который, кажется, используется тем, что вы используете из-за отсутствия скобок вокруг функции печати, которую вы выполняете:

print 'Value is "%d"' % value

В Python 3.x вместо этого вы будете использовать метод format, поэтому код будет выглядеть следующим образом.

message = 'Value is "{}"'
print(message.format(value))

Ответ 5

https://docs.python.org/2/library/functions.html#print

print (* objects, sep = '', end = '\n', file = sys.stdout)

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

из будущего import print_function

Ответ 6

>>> value=42

>>> print "Value is %s"%('"'+str(value)+'"') 

Value is "42"