Как добавить пробел между двумя переменными после печати в Python - PullRequest
8 голосов
/ 02 апреля 2012

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

count = 1
conv = count * 2.54
print count, conv

Я хочу, чтобы вывод выводился с некоторым интервалом междуих;

count = 1
conv = count * 2.54
print count,     conv

Я не могу понять, как это сделать.Я искал везде, но все, что я могу найти, это люди, пытающиеся избавиться от места.Если бы кто-то мог привести меня в правильном направлении, я был бы благодарен.

О, и я только что понял, что Я использую Python 2.7, а не 3.x .Не уверен, что это важно.

Ответы [ 7 ]

8 голосов
/ 02 апреля 2012

Простой способ будет:

print str(count) + '  ' + str(conv)

Если вам нужно больше пробелов, просто добавьте их в строку:

print str(count) + '    ' + str(conv)

Более причудливый способ, используя новый синтаксис для форматирования строк:

print '{0}  {1}'.format(count, conv)

Или используя старый синтаксис, ограничив число десятичных знаков двумя:

print '%d  %.2f' % (count, conv)
4 голосов
/ 02 апреля 2012

Вместо этого используйте строковую интерполяцию .

print '%d   %f' % (count,conv)
3 голосов
/ 02 апреля 2012

В качестве альтернативы вы можете использовать ljust / rjust , чтобы сделать форматирование более приятным.

print "%s%s" % (str(count).rjust(10), conv)

или

print str(count).ljust(10), conv
2 голосов
/ 02 апреля 2012

Быстрое предупреждение, это довольно многословный ответ.

Печать иногда бывает сложной, у меня были некоторые проблемы с ней, когда я только начинал.То, что вы хотите, это несколько пробелов между двумя переменными после их правильной печати?Есть много способов сделать это, как показано в приведенных выше ответах.

Это ваш код:

count = 1
conv = count * 2.54
print count, conv

Вывод таков:

1 2.54

Если выЕсли между ними есть пробелы, вы можете сделать это наивным способом, вставив между ними строку пробелов.Переменные count и conv должны быть преобразованы в строковые типы, чтобы объединить (объединить) их вместе.Это делается с помощью str ().

print (str(count) + "           " + str(conv))
### Provides an output of:
1           2.54

Чтобы сделать это более новым, более питоническим способом, мы используем знак% в сочетании с буквой, чтобы обозначить тип значения, которое мы используем.Здесь я использую подчеркивание вместо пробелов, чтобы показать, сколько их.Модуль по модулю перед последними значениями просто говорит Python вставить следующие значения в указанном порядке:

print ('%i____%s' % (count, conv))
### provides an output of:
1____2.54

Я использовал% i для счетчика, потому что это целое число, а% s для conv,потому что использование% i в этом случае предоставило бы нам «2» вместо «2.54». Технически я мог бы использовать оба% s, но это все хорошо.

Надеюсь, это поможет!

-Joseph

PS Если вы хотите усложнить форматирование, вам следует обратить внимание на довольно много текста, такого как словари и списки кортежей (импортированные как pprint), а также на автоматические вкладки,spacing и другой классный мусор.

Вот еще немного информации о строках в документации по python.http://docs.python.org/library/string.html#module-string

1 голос
/ 02 апреля 2012

Это глупый / хакерский способ

print count,    
print conv
0 голосов
/ 29 октября 2016

Вам следует использовать флаг явного преобразования python PEP-3101

'My name is {0!s:10} {1}'.format('Dunkin', 'Donuts')

'My name is Dunkin Donuts'

или

'My name is %-10s %s' % ('Dunkin', 'Donuts')

'My name is Dunkin Donuts'

https://www.python.org/dev/peps/pep-3101/

0 голосов
/ 26 августа 2016

print str(count) + ' ' + str(conv) - Это не сработало. Однако замена + на , работает для меня

...