Как печатать переменные без пробелов между значениями
Я хотел бы знать, как удалить дополнительные пробелы, когда я что-то печатаю.
Как и когда:
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"