Печать целочисленных значений в Python: практическое руководство
Основные способы вывода целых чисел
Для вывода целого числа в Python используется функция print(). Она принимает один или несколько аргументов, преобразует их в строку и выводит в стандартный поток вывода.
print(42)Python print float (вывод вещественного числа в python)
42
Python print integer (вывод целого числа в python)
Функция print автоматически вызывает str() для каждого переданного объекта. Для целых чисел это даёт десятичное представление. Данный способ подходит для простого вывода, когда не требуется особое форматирование.
Как вывести несколько целых чисел в одной строке?
Функция print() принимает произвольное количество аргументов. По умолчанию они разделяются пробелом.
print(10, 20, 30)
10 20 30
Если требуется изменить разделитель, используется параметр sep. Например, sep=',' выведет числа через запятую. Ошибка: при передаче нечисловых объектов print также вызовет str(), что может привести к неожиданному формату.
Как вывести целое число без перевода строки в конце?
Параметр end определяет символ, добавляемый после вывода. По умолчанию это \n. Замена на пустую строку убирает переход на новую строку.
print(1, end='')
print(2, end='')
12
Частая ошибка: забыть указать end или указать неверный тип (например, число вместо строки). end должен быть строкой.
Как вывести целое число с заданной шириной и ведущими нулями?
Для форматирования числа до определённой ширины с заполнением нулями слева используется спецификатор формата. В f-строках: f'{value:05d}'. Здесь 5 общая ширина, d целое десятичное, 0 заполнитель.
n = 7
print(f'{n:03d}')
print(format(n, '05d'))
007 00007
Ошибка: если ширина меньше реального количества цифр, число выводится полностью без обрезания. Неверный спецификатор (например, :s для целого) вызовет ValueError.
Как вывести целое число в двоичном, восьмеричном или шестнадцатеричном виде?
В Python встроенные функции bin(), oct(), hex() возвращают строку с префиксом. Для вывода без префикса используются f-строки с форматами b, o, x (строчные) или X (заглавные).
x = 255
print(bin(x))
print(f'{x:b}')
print(f'{x:#x}')
0b11111111 11111111 0xff
Проблема: при передаче в bin() нецелого числа возникает TypeError. Для отрицательных чисел представление включает знак минус. В f-строках можно управлять шириной: f'{x:08b}'.
Как вывести целое число с разделителями тысяч?
В f-строках и методе format() можно использовать запятую , в качестве разделителя тысяч: f'{x:,}'. Альтернативно символ подчёркивания _ (PEP 515) работает с Python 3.6+.
n = 1000000
print(f'{n:,}')
print(f'{n:_}')
1,000,000 1_000_000
Разделитель запятой не работает с плавающими числами? Работает, но для целых. При использовании _ символ подчёркивания, а не пробел. В некоторых локалях запятая может быть не принята; в таких случаях лучше использовать _.
Как вывести целое число вместе с пояснительным текстом?
Самый наглядный способ - f-строки: print(f'Значение: {value}'). Также можно использовать конкатенацию, но требуется явное преобразование числа в строку через str().
age = 25
print('Возраст: ' + str(age))
print(f'Возраст: {age}')
Возраст: 25 Возраст: 25
Типичная ошибка при конкатенации: print('Возраст: ' + age) вызывает TypeError, так как нельзя складывать строку и число. Использование str() решает проблему. f-строки работают быстрее и читаются легче.
Как вывести целое число с явным указанием знака?
Спецификатор + перед d выводит знак для положительных чисел: f'{x:+d}'. Пробел оставляет место для знака у положительных чисел.
print(f'{42:+d}')
print(f'{-5:+d}')
print(f'{42: d}')
+42 -5 42
Если число равно нулю, знак также будет выведен (например, +0). Для подавления знака у нуля используйте условное форматирование.
Как вывести целые числа из списка или кортежа?
С помощью распаковки через оператор * можно передать элементы списка как отдельные аргументы print(): print(*lst). Для вывода в столбик используется sep='\n' или '\n'.join().
nums = [1, 2, 3]
print(*nums)
print(*nums, sep='\n')
1 2 3 1 2 3
Ошибка: если список содержит не строки, join потребует преобразования в строки, например '\n'.join(map(str, nums)).
Расширенные примеры вывода целых чисел
Пример 1: Комбинация всех форматов для числа 123456789
x = 123456789
print(f'Десятичное: {x}')
print(f'Двоичное: {x:b}')
print(f'Восьмеричное: {x:o}')
print(f'Шестнадцатеричное: {x:X}')
print(f'С разделителями тысяч: {x:,}')
print(f'С ведущими нулями шириной 12: {x:012d}')
print(f'Со знаком: {x:+d}')
print(f'Выравнивание влево: {x:<15}')
print(f'Выравнивание по центру: {x:^15}')
Десятичное: 123456789 Двоичное: 111010110111100110100010101 Восьмеричное: 726746425 Шестнадцатеричное: 75BCD15 С разделителями тысяч: 123,456,789 С ведущими нулями шириной 12: 000123456789 Со знаком: +123456789 Выравнивание влево: 123456789 Выравнивание по центру: 123456789
Пример 2: Вывод таблицы умножения с выравниванием
for i in range(1, 11):
for j in range(1, 11):
print(f'{i*j:4}', end='')
print()
1 2 3 4 5 6 7 8 9 10 2 4 6 8 10 12 14 16 18 20 3 6 9 12 15 18 21 24 27 30 4 8 12 16 20 24 28 32 36 40 5 10 15 20 25 30 35 40 45 50 6 12 18 24 30 36 42 48 54 60 7 14 21 28 35 42 49 56 63 70 8 16 24 32 40 48 56 64 72 80 9 18 27 36 45 54 63 72 81 90 10 20 30 40 50 60 70 80 90 100
Пример 3: Использование repr() для отладки
x = 100
print(repr(x))
100
Пример 4: Запись целого числа в текстовый файл
with open('output.txt', 'w') as f:
print(42, file=f)
with open('output.txt', 'r') as f:
print(f.read())
42
Пример 5: Прямой вывод через sys.stdout.write
import sys
sys.stdout.write(str(123) + '\n')
123
Пример 6: Вывод очень большого целого числа
big = 10**100
print(big)
10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
Пример 7: Использование format с именованными аргументами
print('Число {num} в квадрате равно {sq}'.format(num=5, sq=25))
Число 5 в квадрате равно 25
Пример 8: Форматирование через оператор %
a, b = 10, 20
print('a = %d, b = %d' % (a, b))
a = 10, b = 20
Пример 9: Перенаправление вывода в строковый буфер
from io import StringIO
buf = StringIO()
print(123, file=buf)
print(buf.getvalue())
123
Пример 10: Вывод целой части числа с плавающей точкой
f = 3.99
print(int(f))
3