Несколько вопросов о форматировании строки в python. центровка - PullRequest
2 голосов
/ 04 апреля 2020

ПЕРВЫЙ ВОПРОС

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

print(f'{"INFO":=^50}')
print(f'{"some info":<50}')
print(f'{"another info":>50}')

И получу

=======================INFO=======================
some info                                         
                                      another info

Но что, если я хочу получить что-то подобное?

=======================INFO=======================
some info.............................another info   

Хорошо. Я могу это сделать

print(f'{"INFO":=^50}')
print('some info' + f'{"another info":.>{50-len("some info")}}')

Может быть, python имеет другой, самый простой способ сделать это?

ВТОРОЙ ВОПРОС

Для выравнивания мы можем использовать>, <, ^ и = And = работает только с номерами. И он работает так же, как>

Например

print(f'{13:.=5}')
print(f'{13:.>5}')
...13
...13

Так зачем нам =, если он работает так же? Чтобы быть уверенным, что значение является числом? Какие плюсы это дает больше?

Ответы [ 2 ]

1 голос
/ 04 апреля 2020

То, что вы пытаетесь сделать, - это выравнивание между двумя переменными. Это довольно конкретно c. Что же насчет выравнивания между тремя переменными, четырьмя и т. Д. c ...?

Однако вы можете подойти к нему как к проблеме выравнивания для каждой из двух переменных: разделить 50 на две части.

print(f'{"INFO":=^50}')
print(f'{"some info":.<25}{"another info":.>25}')

=======================INFO=======================
some info.............................another info
1 голос
/ 04 апреля 2020

Ответ на второй вопрос: Спецификация формата Mini-Language :

'='

Принудительное размещение отступов после знак (если есть), но перед цифрами. Используется для печати полей в форме «+000000120». Этот параметр выравнивания действителен только для числовых типов c. Это становится значением по умолчанию, когда '0' непосредственно предшествует ширине поля.

Это становится понятным, когда у вас есть номер со знаком:

print(f'{-13:0=5}')
# -0013

print(f'{-13:0>5}')
# 00-13
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...