Форматирование целочисленных данных: от простого к сложному

Раздел: Строки -> Форматирование вывода

При выводе целых чисел в Python часто требуется не просто показать значение, а отформатировать его: добавить ведущие нули, выровнять по ширине, перевести в другую систему счисления. Для этого существуют несколько способов. Рассмотрим их.

Форматирование целых чисел в Python

Как вывести целое число с помощью f-строки?

F-строки (f-strings) появились в Python 3.6 и позволяют встраивать выражения прямо в строковый литерал. Для вывода целого числа достаточно поместить его в фигурные скобки.

number = 42
print(f"Число: {number}")

ввод через пробел python (ввод и вывод чисел через пробел в python)

Число: 42

вывод через пробел python (вывод через пробел в python)

Пояснение: f перед кавычками указывает, что это форматированная строка. Внутри {} можно указать переменную или выражение.

Как задать ширину поля и выравнивание?

После двоеточия внутри фигурных скобок можно указать спецификатор формата. Например, :10d задаёт ширину 10 символов и выравнивает число по правому краю. Для выравнивания по левому краю используется :<10, по центру :^10.

n = 7
print(f"{n:<10}")
print(f"{n:^10}")
print(f"{n:>10}")

Python print sep (параметр sep в print python)

7         
    7    
         7

Python форматирование чисел (форматирование чисел при выводе в python)

Как дополнить число нулями слева?

Для этого используется спецификатор :0Nd, где N - общая ширина. Например, :05d выведет число с пятью символами, дополнив слева нулями.

n = 42
print(f"{n:05d}")

формат вывода строки python (формат вывода строки в python)

00042

список без скобок python (вывод списка без скобок в python)

Как вывести целое число в двоичной, восьмеричной или шестнадцатеричной системе?

Спецификаторы b, o, x (строчные буквы) и X (заглавные) преобразуют число в соответствующую систему.

n = 255
print(f"Двоичная: {n:b}")
print(f"Восьмеричная: {n:o}")
print(f"Шестнадцатеричная (строчные): {n:x}")
print(f"Шестнадцатеричная (прописные): {n:X}")

Python число вывести текстом (вывод числа прописью в python)

Двоичная: 11111111
Восьмеричная: 377
Шестнадцатеричная (строчные): ff
Шестнадцатеричная (прописные): FF

как выводить целые числа python (вывод целых чисел в python)

Возможные проблемы: f-строки не поддерживаются в Python версии ниже 3.6. При попытке использовать их в более старых версиях возникнет синтаксическая ошибка. В таких случаях следует применять метод format или оператор %.

Как использовать метод format для вывода целых чисел?

Метод str.format() доступен начиная с Python 3.0. В строке-шаблоне места для подстановки обозначаются фигурными скобками, после строки вызывается .format() с аргументами.

number = 42
print("Число: {}".format(number))
Число: 42

Спецификаторы форматирования те же, что и в f-строках, но указываются после двоеточия внутри фигурных скобок.

n = 7
print("{:<10}".format(n))
print("{:^10}".format(n))
print("{:>10}".format(n))
print("{:05d}".format(42))
print("{:b}".format(255))
7         
    7    
         7
00042
11111111

Типичные ошибки: несоответствие количества аргументов и мест в строке, забытая скобка или двоеточие. Также нельзя забывать, что метод вызывается именно от строки, а не от числа.

Как использовать оператор % для вывода целых чисел?

Оператор % (старый стиль форматирования) заимствован из языка C. В строке указывается шаблон с %d (для целых чисел), %x (шестнадцатеричное) и т.д. После строки ставится % и кортеж значений.

number = 42
print("Число: %d" % number)
Число: 42

Для ширины и нулей: %10d, %010d. Для разных систем: %o, %x, %X.

n = 255
print("%d" % n)
print("%10d" % n)
print("%010d" % n)
print("%x" % n)
print("%X" % n)
255
       255
0000000255
ff
FF

Проблемы: оператор % менее читаем при большом количестве аргументов. В Python 3.6+ он считается устаревшим, хотя и не удалён. Необходимо следить за типом: для строк используется %s, для целых %d.

Как вывести целое число без форматирования, с помощью str?

Простейший способ - преобразовать число в строку функцией str() и объединить с другими строками через конкатенацию или передать в print() несколько аргументов.

number = 42
print("Число: " + str(number))
print("Число:", number)
Число: 42
Число: 42

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

Выбор способа зависит от версии Python, требуемой гибкости и личных предпочтений. Для современных проектов рекомендуется использовать f-строки как наиболее лаконичный и производительный инструмент.

Расширенные примеры форматирования целых чисел

Пример
# 1. Динамическое задание ширины через переменную
width = 8
num = 123
print(f"{num:{width}d}")
     123

Здесь ширина берётся из переменной width. Можно комбинировать с выравниванием: f"{num:<{width}}".

Пример
# 2. Использование разделителей разрядов (тысячные)
big = 1234567
print(f"{big:,}")
print(f"{big:_}")
1,234,567
1_234_567

Спецификатор , добавляет запятые, _ - нижние подчёркивания. Работает только в Python 3.6+ для целых и чисел с плавающей точкой.

Пример
# 3. Вывод с учётом локали
import locale
locale.setlocale(locale.LC_ALL, '')
value = 1234567
print(f"{value:n}")
1 234 567   (в зависимости от локали может быть точка или пробел)

Код :n форматирует число согласно текущей локали (разделители тысяч, десятичный знак).

Пример
# 4. Вывод в разных системах счисления с префиксами
num = 255
print(f"Десятичная: {num:d}")
print(f"Двоичная:   {num:#b}")
print(f"Восьмеричная: {num:#o}")
print(f"Шестнадцатеричная: {num:#x}")
Десятичная: 255
Двоичная:   0b11111111
Восьмеричная: 0o377
Шестнадцатеричная: 0xff

Символ # перед спецификатором системы счисления добавляет соответствующий префикс.

Пример
# 5. Форматирование отрицательных чисел
neg = -42
print(f"{neg:+d}")
print(f"{neg: d}")
print(f"{neg:=10d}")
-42
-42
-       42

Спецификатор + выводит знак всегда, (пробел) - только для положительных, = помещает знак в самое левое поле перед заполнением.

Пример
# 6. Использование format_map для шаблонов
template = "Число: {num:{width}d}"
params = {'num': 42, 'width': 10}
print(template.format_map(params))
Число:         42

Метод format_map принимает словарь и подставляет значения по ключам. Удобно для динамических шаблонов.

Пример
# 7. Вложенные f-строки (редкий случай)
nested = f"{f'{255:#x}'}"
print(nested)
0xff

Хотя это возможно, такие конструкции ухудшают читаемость и не рекомендуются.

Пример
# 8. Форматирование с выравниванием по ширине и нулями
# Пример вывода таблицы квадратов
for i in range(1, 6):
    print(f"{i:3d} {i**2:>5d} {i**3:>7d}")
  1     1       1
  2     4       8
  3     9      27
  4    16      64
  5    25     125

Здесь каждое число выводится в поле заданной ширины, выравнивание по правому краю.

Пример
# 9. Использование метода str.zfill()
s = str(42).zfill(5)
print(s)
00042

Метод zfill() добавляет нули слева до заданной длины. Удобно, когда нужно просто дополнить нулями строковое представление.

Эти примеры демонстрируют гибкость форматирования целых чисел в Python. Комбинируя различные спецификаторы, можно добиться практически любого вида вывода.

Вывод целых чисел в Python - comments

En
как выводить целые числа python (python)