Как перевести число в строку в языке 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.