Преобразование целого числа в строку?

1363

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

d = 15
d.str()

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

деревенщина
источник

Ответы:

2096
>>> str(10)
'10'
>>> int('10')
10

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

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

Бастьен Леонар
источник
119

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

str(i)
Лассе В. Карлсен
источник
62

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

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

str(a)

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

a.__str__()

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

Андреа Амбу
источник
это решение помогло мне, я преобразовывал буквенно-цифровую строку в числовую строку, заменяя буквы их значениями ascii, однако непосредственное использование функции str () не работало, но __str __ () работало. Пример (python2.7); s = "14.2.2.10a2" нерабочий код: print "" .join ([str (ord (c)) if (c.isalpha ()) else c для c in s]) рабочий код: print "" .join ([ог (с) .__ ул __ () , если (c.isalpha ()) еще с для с в s]) Ожидаемый результат: 14.2.2.10972
Jayant
18

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

number = raw_input()
try:
    value = int(number)
except ValueError:
    value = 0
Nik
источник
14
>>> 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
maxaposteriori
источник
11

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

>>> int_value = 10
>>> f'{int_value}'
'10'
>>>
SuperNova
источник
7

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

age = 45
strAge = f'{age}'

По этой причине Python предоставляет функцию str ().

digit = 10
print(type(digit)) # will show <class 'int'>
convertedDigit= str(digit)
print(type(convertedDigit)) # will show <class 'str'>

Для более подробного ответа вы можете проверить эту статью: Преобразование Python Int в строку и Python String в Int

Мохамед Маккауи
источник
6

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

i = 32   -->    `i` == '32'
Nikolas
источник
3
Обратите внимание, что это эквивалентно repr(i), так что это будет странно для длинных. (Попробуйте i = `2 ** 32`; print i)
16
Это было объявлено устаревшим в Python 2 и полностью удалено в Python 3, поэтому я бы не советовал использовать его больше. docs.python.org/3.0/whatsnew/3.0.html#removed-syntax
teeks99
6

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

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

(ИЛИ)

>>> '{}'.format(10)
'10'
>>>
SuperNova
источник
5

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

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

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

Евгений
источник
4

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

f'{10}' == '10'

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

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

Алек Аламеддин
источник