Усечение целых чисел в format () в Python 2.7 - PullRequest
0 голосов
/ 18 января 2019

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

'%-5.5s' % 4257647474747

, который производит 42576

Если я попытаюсь сделать то же самое с format():

'{:<5.5}'.format(4257647474747)

Я получаю ошибку ValueError: Precision not allowed in integer format specifier

Мне нужно иметь возможность обрезать входящий номер, потому что он должен помещаться в строку фиксированного размера. Есть ли способ обрезать целое число, используя формат?

1 Ответ

0 голосов
/ 18 января 2019

s в '%-5.5s' преобразует аргументы в строки с str, а затем применяет интерпретации %s для -5.5. Вы не делаете ничего подобного в своем format вызове, поэтому вы получаете int интерпретацию типа <5.5.

Преобразовать ваше целое число в строку перед форматированием:

'{:<5.5}'.format(str(4257647474747))

или используйте !s в строке формата, чтобы сделать то же самое:

'{!s:<5.5}'.format(4257647474747)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...