Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 10, 2011 07:42:00

pupkin2
От:
Зарегистрирован: 2011-10-23
Сообщения: 103
Репутация: +  1  -
Профиль   Отправить e-mail  

вставит нужное кол-во пробелов

привет.

есть необходимость выводить в stdout строку после нужного кол-ва пробелов. реализовал это тупо с использованием цикла. но это через*опное решение.
подскажите как это сделать правильно?
и такой же вопрос касательно строк. как выводить в строку после нужного кол-ва пробелов?

спасибо.



Офлайн

#2 Ноя. 10, 2011 08:06:02

PooH
От:
Зарегистрирован: 2006-12-05
Сообщения: 1948
Репутация: +  72  -
Профиль   Отправить e-mail  

вставит нужное кол-во пробелов

In [6]: n = 10
In [7]: s = "test"
In [8]: "%s%s" % (' '*n, s)
Out[8]: ' test'



Вот здесь один из первых отарков съел лаборанта. Это был такой умный отарк, что понимал даже теорию относительности. Он разговаривал с лаборантом, а потом бросился на него и загрыз…

Офлайн

#3 Ноя. 10, 2011 08:14:12

s0rg
От:
Зарегистрирован: 2011-06-05
Сообщения: 777
Репутация: +  25  -
Профиль   Отправить e-mail  

вставит нужное кол-во пробелов

print  ' ' * 10, 'string'

Офлайн

#4 Ноя. 10, 2011 10:26:04

Enchantner
От:
Зарегистрирован: 2009-02-11
Сообщения: 442
Репутация: +  0  -
Профиль   Отправить e-mail  

вставит нужное кол-во пробелов

print '{:>10}'.format('string')
Хотя нет, вру, это выравнивание в поле 10.



Отредактировано (Ноя. 10, 2011 10:29:47)

Офлайн

#5 Ноя. 10, 2011 10:37:39

Yurietc
От:
Зарегистрирован: 2007-07-18
Сообщения: 112
Репутация: +  0  -
Профиль   Отправить e-mail  

вставит нужное кол-во пробелов

Используйте rjust:

>>> q='qwe'
>>> q.rjust(10,'.')
'.......qwe'
Вместо точки можно ставить любой символ.



Офлайн

#6 Ноя. 10, 2011 14:01:22

pupkin2
От:
Зарегистрирован: 2011-10-23
Сообщения: 103
Репутация: +  1  -
Профиль   Отправить e-mail  

вставит нужное кол-во пробелов

всем благодарен.



Офлайн

#7 Ноя. 10, 2011 14:13:18

pupkin2
От:
Зарегистрирован: 2011-10-23
Сообщения: 103
Репутация: +  1  -
Профиль   Отправить e-mail  

вставит нужное кол-во пробелов

PooH, скажите, для python-3.2 как ваш способ записать нужно?
записал так:

sys.stdout.write("%s%s".format(" " * tab, name))
но выводит: %s%s
что тут не правильно?

еще вопрос. тут “*” что означает?

спасибо.



Офлайн

#8 Ноя. 11, 2011 02:51:54

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9975
Репутация: +  856  -
Профиль   Отправить e-mail  

вставит нужное кол-во пробелов

>>> s = 'abc'
>>> print ' ' * 10 + s
abc
>>>
>>> import sys
>>> sys.stdout.write(' ' * 10 + s)
abc>>>
s0rg, у тебя там лишний пробел
Yurietc, выравнивание может вообще не дать пробелов

pupkin2
что тут не правильно?
неправильно используешь .format()



Отредактировано (Ноя. 11, 2011 02:55:55)

Офлайн

#9 Ноя. 11, 2011 02:54:44

pupkin2
От:
Зарегистрирован: 2011-10-23
Сообщения: 103
Репутация: +  1  -
Профиль   Отправить e-mail  

вставит нужное кол-во пробелов

неправильно используешь .format()
спасибо. это я отлично понял. но вопрос как бэ намекал на пояснение ;)



Офлайн

#10 Ноя. 11, 2011 02:57:12

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9975
Репутация: +  856  -
Профиль   Отправить e-mail  

вставит нужное кол-во пробелов

>>> '%s%s'
'%s%s'
>>> '%s%s' % (1, 2)
'12'
>>>



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version