Ответ 1
>>> str(10)
'10'
>>> int('10')
10
Ссылки на документацию:
Преобразование в строку выполняется с помощью встроенной функции str()
, которая в основном вызывает метод __str__()
своего параметра.
Я хочу преобразовать целое число в строку в Python. Я напрасно печатаю это:
d = 15
d.str()
Когда я пытаюсь преобразовать его в строку, он показывает ошибку, как у int
нет атрибута с именем str
.
>>> str(10)
'10'
>>> int('10')
10
Ссылки на документацию:
Преобразование в строку выполняется с помощью встроенной функции str()
, которая в основном вызывает метод __str__()
своего параметра.
Попробуйте следующее:
str(i)
В Python нет приведения типов и никакого принуждения типа. Вы должны преобразовать вашу переменную явным образом.
Чтобы преобразовать объект в строку, вы используете функцию str()
. Он работает с любым объектом, который имеет метод с именем __str__()
. Фактически
str(a)
эквивалентно
a.__str__()
То же самое, если вы хотите преобразовать что-то в int, float и т.д.
a = 2
Вы можете использовать str(a)
, который дает строковый объект int(2)
.
Для управления нецелыми входами:
number = raw_input()
try:
value = int(number)
except ValueError:
value = 0
>>> 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
В Python => 3.6 вы можете использовать форматирование f
:
>>> int_value = 10
>>> f'{int_value}'
'10'
>>>
Самый достойный способ, на мой взгляд, - `..
i = 32 --> `i` == '32'
Можно использовать %s
или .format
>>> "%s" % 10
'10'
>>>
(ИЛИ ЖЕ)
>>> '{}'.format(10)
'10'
>>>
Для тех, кто хочет преобразовать int в строку в определенных цифрах, рекомендуется следующий метод.
month = "{0:04d}".format(localtime[1])
Для более подробной информации, вы можете обратиться к вопросу о переполнении стека. Отображаемый номер с начальными нулями.
С введением f-строк в Python 3.6 это также будет работать:
f'{10}' == '10'
На самом деле это быстрее, чем вызов str()
, за счет читабельности.
На самом деле, это быстрее, чем %x
форматирование строки и .format()
!
Для 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