Перетворення цілого числа в рядок?


1361

Я хочу перетворити ціле число в рядок в Python. Я набираю це даремно:

d = 15
d.str()

Коли я намагаюся перетворити його в рядок, він відображає помилку, начебто intне має жодного атрибута, який називається str.

Відповіді:


2094
>>> str(10)
'10'
>>> int('10')
10

Посилання на документацію:

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



62

У Python не існує типового і примусового типу. Ви повинні конвертувати свою змінну явним чином.

Для перетворення об'єкта в рядок ви використовуєте str()функцію. Він працює з будь-яким об’єктом, який має метод, який називається __str__()визначеним. Фактично

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 for 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

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

11

У Python => 3.6 ви можете використовувати fформатування:

>>> int_value = 10
>>> f'{int_value}'
'10'
>>>

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 в String та Python String в Int


6

На найдостойніший спосіб, на мою думку, це ``.

i = 32   -->    `i` == '32'

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'
>>>

5

Для тих, хто хоче перетворити int в рядок у конкретні цифри, рекомендується наведений нижче метод.

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

Для отримання докладніших відомостей ви можете звернутися до питання щодо переповнення стека із записом номер відображення з провідними нулями .


4

З введенням f-рядків у Python 3.6 це також буде працювати:

f'{10}' == '10'

Це насправді швидше, ніж дзвінки str(), ціною читабельності.

Насправді, це швидше, ніж %xформатування рядків і .format()!

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.