Converting integer to string in Python

PythonStringInteger

Python Problem Overview


Trying my_int.str() gives an error saying int doesn't have any attribute called str.

Python Solutions


Solution 1 - Python

>>> str(10)
'10'

>>> int('10')
10

Links to the documentation:

Conversion to a string is done with the builtin str() function, which basically calls the __str__() method of its argument.

Solution 2 - Python

Try this:

str(i)

Solution 3 - Python

There is not typecast and no type coercion in Python. You have to convert your variable in an explicit way.

To convert an object in string you use the str() function. It works with any object that has a method called __str__() defined. In fact

str(a)

is equivalent to

a.__str__()

The same if you want to convert something to int, float, etc.

Solution 4 - Python

To manage non-integer inputs:

number = raw_input()
try:
    value = int(number)
except ValueError:
    value = 0

Solution 5 - Python

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

Solution 6 - Python

In Python => 3.6 you can use f formatting:

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

Solution 7 - Python

For Python 3.6, you can use the f-strings new feature to convert to string and it's faster compared to str() function. It is used like this:

age = 45
strAge = f'{age}'

Python provides the str() function for that reason.

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

For a more detailed answer, you can check this article: Converting Python Int to String and Python String to Int

Solution 8 - Python

The most decent way in my opinion is ``.

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

Solution 9 - Python

You can use %s or .format:

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

Or:

>>> '{}'.format(10)
'10'
>>>

Solution 10 - Python

For someone who wants to convert int to string in specific digits, the below method is recommended.

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

For more details, you can refer to Stack Overflow question https://stackoverflow.com/questions/134934/display-number-with-leading-zeros.

Solution 11 - Python

With the introduction of f-strings in Python 3.6, this will also work:

f'{10}' == '10'

It is actually faster than calling str(), at the cost of readability.

In fact, it's faster than %x string formatting and .format()!

Solution 12 - Python

There are several ways to convert an integer to string in python. You can use [ str(integer here) ] function, the f-string [ f'{integer here}'], the .format()function [ '{}'.format(integer here) and even the '%s'% keyword [ '%s'% integer here]. All this method can convert an integer to string.

See below example

#Examples of converting an intger to string

#Using the str() function
number = 1
convert_to_string = str(number)
print(type(convert_to_string)) # output (<class 'str'>)

#Using the f-string
number = 1
convert_to_string = f'{number}'
print(type(convert_to_string)) # output (<class 'str'>)

#Using the  {}'.format() function
number = 1
convert_to_string = '{}'.format(number)
print(type(convert_to_string)) # output (<class 'str'>)

#Using the  '% s '% keyword
number = 1
convert_to_string = '% s '% number
print(type(convert_to_string)) # output (<class 'str'>)


Solution 13 - Python

Here is a simpler solution:

one = "1"
print(int(one))
Output console
>>> 1

In the above program, int() is used to convert the string representation of an integer.

Note: A variable in the format of string can be converted into an integer only if the variable is completely composed of numbers.

In the same way, str() is used to convert an integer to string.

number = 123567
a = []
a.append(str(number))
print(a) 

I used a list to print the output to highlight that variable (a) is a string.

Output console
>>> ["123567"]

But to understand the difference how a list stores a string and integer, view the below code first and then the output.

Code
a = "This is a string and next is an integer"
listone=[a, 23]
print(listone)
Output console
>>> ["This is a string and next is an integer", 23]

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionHickView Question on Stackoverflow
Solution 1 - PythonBastien LéonardView Answer on Stackoverflow
Solution 2 - PythonLasse V. KarlsenView Answer on Stackoverflow
Solution 3 - PythonAndrea AmbuView Answer on Stackoverflow
Solution 4 - PythonnikView Answer on Stackoverflow
Solution 5 - PythonmaxaposterioriView Answer on Stackoverflow
Solution 6 - PythonSuperNovaView Answer on Stackoverflow
Solution 7 - PythonMohamed MakkaouiView Answer on Stackoverflow
Solution 8 - PythonNikolasView Answer on Stackoverflow
Solution 9 - PythonSuperNovaView Answer on Stackoverflow
Solution 10 - PythonEugeneView Answer on Stackoverflow
Solution 11 - PythonAlecView Answer on Stackoverflow
Solution 12 - PythonEdem RobinView Answer on Stackoverflow
Solution 13 - PythonCode CarbonateView Answer on Stackoverflow