Как настроить длину поля строки с помощью форматирования печати? - PullRequest
2 голосов
/ 20 февраля 2020

Я новичок, и я увидел этот пример, который я не понял, в курсе Udemy Python:

"В фигурных скобках вы можете назначать длины полей, выравнивания влево / вправо, параметры округления и многое другое. "

print('{0:8} | {1:9}'.format('Fruit', 'Quantity'))
print('{0:8} | {1:9}'.format('Apples', 3.))
print('{0:8} | {1:9}'.format('Oranges', 10))

Fruit    | Quantity
Apples   |       3.0
Oranges  |        10

Я не понял, на что смотрю, поэтому я попытался поиграть с первой строкой так, чтобы выяснить правила:

print('{0:25} | {1:9}'.format('Fruit', 'Quantity'))

Fruit                     | Quantity

Далее Я пробовал это:

print('{0:8} | {1:25}'.format('Fruit', 'Quantity'))

Fruit    | Quantity                 

Вы не можете видеть это, но если вы выделите пробел после количества, я, кажется, создал длину, равную 25 пробелам, включая слово.

Неожиданно уменьшение числа не удаляет буквы из слов "Фрукты или Количество":

print('{0:4} | {1:4}'.format('Fruit', 'Quantity'))

Fruit | Quantity

Кажется, что в следующей строке действуют другие правила, влияющие на число с плавающей точкой 3.0, чем строка "Количество":

print('{0:8} | {1:9}'.format('Fruit', 'Quantity'))
print('{0:8} | {1:25}'.format('Apples', 3.))

Fruit    | Quantity 
Apples   |                       3.0

Далее я попытался уменьшить длину поля для числа с плавающей запятой.

print('{0:8} | {1:9}'.format('Fruit', 'Quantity'))
print('{0:8} | {1:1}'.format('Apples', 3.))

Fruit    | Quantity 
Apples   | 3.0

Настройка этого числа ставит пробелы перед числами с плавающей запятой / целыми числами, но по возможности добавляет пробел в конец строки. Глядя на 10 в третьей строке, кажется, что целое число появляется в конце определенного числа пробелов. Это мое предположение о правилах.

Есть ли где-нибудь объяснение этой технике в Интернете? Дальнейшего объяснения в курсе не было, и я не знал, что искать именно в Google.

Спасибо всем, кто нашел время, чтобы прочитать все это!

1 Ответ

1 голос
/ 20 февраля 2020

Вы правильно поняли. Как правило, строки выравниваются по левому краю, а цифры - по правому. Если количество символов, необходимое для представления поля, превышает допустимое пространство, оно займет дополнительное пространство.

Вы можете настроить выравнивание каждого поля с помощью «<» или «>». Для более подробной информации проверьте это

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...