Преобразование целого числа в строку? - PullRequest
1208 голосов
/ 07 июня 2009

Я хочу преобразовать целое число в строку в Python. Я напрасно печатаю это:

d = 15
d.str()

Когда я пытаюсь преобразовать его в строку, появляется сообщение об ошибке, например int не имеет атрибута с именем str.

Ответы [ 10 ]

1885 голосов
/ 07 июня 2009
>>> str(10)
'10'
>>> int('10')
10

Ссылки на документацию:

Преобразование в строку выполняется с помощью встроенной функции str(), которая в основном вызывает метод __str__() своего параметра.

104 голосов
/ 07 июня 2009

Попробуйте это:

str(i)
50 голосов
/ 07 июня 2009

В Python нет типов и типов. Вы должны преобразовать вашу переменную явным образом.

Для преобразования объекта в строку вы используете функцию str(). Он работает с любым объектом, для которого определен метод с именем __str__(). На самом деле

str(a)

эквивалентно

a.__str__()

То же самое, если вы хотите преобразовать что-то в int, float и т. Д.

15 голосов
/ 07 июня 2009

Для управления нецелыми входами:

number = raw_input()
try:
    value = int(number)
except ValueError:
    value = 0
13 голосов
/ 07 июня 2009
>>> i = 5
>>> print "Hello, world the number is " + i
TypeError: must be str, not int
>>> s = str(i)
>>> print "Hello, world the number is " + s
Hello, world the number is 5
8 голосов
/ 20 июля 2018

В Python => 3.6 вы можете использовать f форматирование:

>>> int_value = 10
>>> f'{int_value}'
'10'
>>>
5 голосов
/ 06 мая 2015

Самый приличный способ на мой взгляд это ``.

i = 32   -->    `i` == '32'
4 голосов
/ 09 февраля 2018

Для тех, кто хочет преобразовать int в строку в определенных цифрах, рекомендуется следующий метод.

month = "{0:04d}".format(localtime[1])

Для более подробной информации, вы можете обратиться к вопросу переполнения стека Показать номер с ведущими нулями .

4 голосов
/ 11 декабря 2017

Можно использовать %s или .format

>>> "%s" % 10
'10'
>>>

(ИЛИ)

>>> '{}'.format(10)
'10'
>>>
1 голос
/ 25 мая 2019

С введением f-строк в Python 3.6 это также будет работать:

f'{10}' == '10'

Это на самом деле быстрее, чем вызов str(), за счет читабельности.

На самом деле это быстрее, чем %x форматирование строки и .format()!

...