To convert a string to an integer, use the built-in int()
function. The
function takes a string as input and returns an integer as its output.
Here's an example of using int()
:
>>> string = "123"
>>> int(string)
123
You need to convert a string to an int before you can use it to calculate things. In other words, changing the type of a variable can affect the behavior when using that variable.
As an example, consider the difference between the two uses of +
in this
example:
>>> "123" + "456"
'123456'
>>> int("123") + int("456")
579
Some strings do not represent valid numbers. If you try to convert such a string, you will get an exception:
>>> int("not a number")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: 'not a number'
To handle such cases, use a try
/except
block:
try:
number = int(some_variable)
except ValueError:
print("some_variable did not contain a number!")
Sometimes your number has a dot in it. In this case, you might want to use
float()
instead of int()
; otherwise you will get an error:
>>> text = "123.456"
>>> int(text)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: '123.456'
>>> float(text)
123.456
If your string uses a different base, you can specify the base as a second
argument to int()
. For example:
>>> int("0x123", 16)
291