Как перевести число в строку в языке Python

Раздел: Строки -> Преобразование типов

Преобразование чисел в строковые значения в Python

В Python возникает необходимость получить строковое представление числа для вывода, конкатенации с текстом, записи в файлы или передачи в API. Рассмотрим несколько подходов с примерами и разбором типичных проблем.

Основное решение: функция str() и f-строки

Как просто получить строку из числа?

Функция str() возвращает десятичное строковое представление любого числового типа. Это самый прямой способ.

number = 42
string_number = str(number)
print(string_number, type(string_number))

изменить тип в python (изменить тип в python)

42 <class 'str'>

задать тип данных python (как задать тип данных в python)

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

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

pi = 3.14159
message = f"Число π приблизительно равно {pi}"
print(message)

Python int to str (преобразование int в строку в python)

Число π приблизительно равно 3.14159

Python bytes to string (преобразование байтов в строку в python)

Типичная ошибка: Попытка сложить строку и число вызывает TypeError: can only concatenate str (not "int") to str. Используйте преобразование.

age = 25
text = "Мне " + age + " лет"  # Ошибка

как выводить в строку python (преобразование вывода в строку в python)

Исправление:

text = "Мне " + str(age) + " лет"  # Правильно

Python list to string (преобразование списка в строку python)

Как задать формат числа (количество знаков, ведущие нули)?

Метод format() предоставляет гибкое форматирование.

num = 123.456789
formatted = "{:.2f}".format(num)
print(formatted)

Python string integer (преобразование строки в целое число python)

123.46

преобразовать тип данных python (преобразование типа данных в python)

f-строки также поддерживают форматирование:

value = 7
result = f"{value:03d}"
print(result)

Python целое в строку (преобразование целого числа в строку)

007

Python сделать число целым (преобразование числа в целое в python)

Округление float может дать неожиданные результаты из-за двоичного представления. Для точных финансовых расчетов используйте Decimal.

Как использовать старый стиль форматирования (% )?

Оператор % применяется для подстановки значений.

name = "температура"
value = 36.6
result = "%s: %.1f" % (name, value)
print(result)

Python string number (строковое представление числа в python)

температура: 36.6

функция str в python (функция str() в python)

При несовпадении количества аргументов возникает TypeError: not enough arguments for format string. Следите за порядком.

Как преобразовать список чисел в одну строку?

Сочетание join() и map() эффективно для объединения.

numbers = [1, 2, 3, 4]
joined = ''.join(map(str, numbers))
print(joined)

Python int char (преобразование int в символ в python)

1234

Python список str в int (преобразование списка строк в список целых чисел в python)

С разделителем:

joined = ', '.join(map(str, numbers))
print(joined)

Python перевести в число (преобразование в число в python)

1, 2, 3, 4

дробное число в целое python (преобразование дробного числа в целое в python)

Если в списке есть нечисловые элементы, map(str) их тоже преобразует, но могут появиться неожиданные строки (например, None превратится в 'None').

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

Функция repr() возвращает строку, которая может быть использована для восстановления объекта (eval).

x = 123.456
print(repr(x))
print(str(x))

Python число в строку (преобразование числа в строку в python)

123.456
123.456

Python привести к int (преобразование в целое число int в python)

Разница заметна для специальных значений:

import math
print(repr(math.inf), repr(math.nan))

Python элемент списка в строку (преобразование элемента списка в строку в python)

inf nan

Не путайте repr() и str(): первое предназначено для разработчиков, второе - для пользователя.

Как преобразовать число в строку в другой системе счисления?

Встроенные функции bin(), oct(), hex() возвращают строки с префиксами.

n = 255
print(bin(n))
print(oct(n))
print(hex(n))
0b11111111
0o377
0xff

Для кастомного основания используйте format():

print(format(n, 'b'))  # '11111111'
print(format(n, 'x'))  # 'ff'

Префиксы могут мешать при парсинге. Убирайте их срезом или используйте format() без префикса.

Расширенные примеры преобразования числа в строку

Форматирование с разделителями разрядов

Для больших чисел удобно добавлять разделители тысяч.

Пример
number = 1234567890
formatted = f"{number:,}"
print(formatted)
1,234,567,890

Для дробной части с разделителем:

Пример
number = 1234567.89123
formatted = f"{number:,.2f}"
print(formatted)
1,234,567.89

Преобразование комплексных чисел

Пример
c = 3 + 4j
str_c = str(c)
repr_c = repr(c)
print(str_c, repr_c)
# В f-строке
print(f"Комплексное число: {c}")
(3+4j) (3+4j)
Комплексное число: (3+4j)

Использование Decimal для точного округления

Пример
from decimal import Decimal, ROUND_HALF_UP
d = Decimal('123.455')
d_rounded = d.quantize(Decimal('0.00'), rounding=ROUND_HALF_UP)
print(str(d_rounded))  # '123.46'
123.46

Преобразование с локализацией (русский формат)

Пример
import locale
locale.setlocale(locale.LC_ALL, 'ru_RU.UTF-8')  # может потребоваться установка
number = 1234567.89
formatted = locale.format_string('%.2f', number, grouping=True)
print(formatted)
1 234 567,89

При отсутствии локали используйте babel или ручное форматирование.

Преобразование bool в строку (частный случай)

Пример
flag = True
print(str(flag))        # 'True'
print(repr(flag))       # 'True'
print(f"{flag}”)        # 'True'
True
True
True

Обратите внимание: str(True) даёт 'True', а не '1'. Для получения '1' используйте int(True) и затем str().

Преобразование None (не число, но часто встречается)

Пример
value = None
print(str(value))   # 'None'
# Ошибка при конкатенации с числом: 'None' + 1 - недопустимо.
None

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

Использование eval и repr для восстановления числа

Пример
number = 3.14
s = repr(number)
restored = eval(s)
print(restored, type(restored))
3.14 <class 'float'>

eval() опасен при работе с пользовательским вводом. Для безопасного преобразования строки в число используйте float(), int() или Decimal.

Преобразование числа в строку в Python - comments

En
Python число в строку (python)