Python int() Function Explained
The Python int() function converts a value into an integer.
Beginners often use int() when they want to:
- turn text like
"42"into the number42 - convert user input into a whole number
- remove the decimal part from a float
- read numbers written in binary or hexadecimal
It is a built-in function, so you can use it directly without importing anything.
Quick example #
print(int("42"))
print(int(3.9))
print(int("101", 2))
Output:
42
3
5
Use int() to convert a number-like value to an integer. Strings must contain a valid whole number unless you also provide a base.
What int() does #
int() converts a value into an integer.
Key points:
- It can turn strings, floats, and booleans into
intvalues. - It returns a new integer value.
- It does not change the original object.
Example:
text = "25"
number = int(text)
print(text)
print(number)
print(type(text))
print(type(number))
Output:
25
25
<class 'str'>
<class 'int'>
The original string stays a string. int() creates a new integer from it.
Basic syntax #
int(x)
int(x, base)
int(x) #
Use this form when you want to convert a value like:
- a string such as
"10" - a float such as
3.9 - a boolean such as
True
Example:
print(int("10"))
print(int(8.7))
print(int(True))
Output:
10
8
1
int(x, base) #
Use this form when x is a string that represents a number in another base.
Common bases:
2for binary8for octal16for hexadecimal
Example:
print(int("101", 2))
print(int("17", 8))
print(int("1A", 16))
Output:
5
15
26
If you want to compare integer conversion with decimal conversion, see the float() function.
Using int() with strings #
int() works with strings that contain a valid integer.
Examples that work:
print(int("5"))
print(int("-12"))
print(int(" 42 "))
Output:
5
-12
42
This works because each string contains valid whole-number text. Leading and trailing spaces are usually allowed.
Examples that fail:
# print(int("3.14"))
# print(int("12abc"))
These raise ValueError because the strings are not valid integer text.
Valid string examples #
print(int("0"))
print(int("+7"))
print(int("-100"))
Output:
0
7
-100
Invalid string examples #
values = ["3.14", "12abc", "", "seven"]
for value in values:
try:
print(int(value))
except ValueError as error:
print(f"{value!r} -> {error}")
Output:
'3.14' -> invalid literal for int() with base 10: '3.14'
'12abc' -> invalid literal for int() with base 10: '12abc'
'' -> invalid literal for int() with base 10: ''
'seven' -> invalid literal for int() with base 10: 'seven'
If you are working with user input, see how to convert user input to numbers in Python and the input() function.
Using int() with floats #
When you pass a float to int(), Python removes the decimal part.
Important: int() does not round. It truncates toward zero.
print(int(3.9))
print(int(3.1))
print(int(-3.9))
print(int(-3.1))
Output:
3
3
-3
-3
This behavior matters with negative numbers.
int(3.9)becomes3int(-3.9)becomes-3
If you want decimal conversion instead, use float(). If you want text conversion, use str().
Using int() with booleans #
Booleans can also be converted to integers.
print(int(True))
print(int(False))
Output:
1
0
This can be useful in simple counting logic:
passed = True
total = int(passed)
print(total)
Output:
1
If you want to learn more about boolean values, see the bool() function.
Using the base argument #
Use the base argument when a string represents a number in a different number system.
Binary example #
print(int("101", 2))
Output:
5
"101" in binary means:
1 × 40 × 21 × 1
So the result is 5.
Hexadecimal example #
print(int("1A", 16))
Output:
26
Important rule #
The base argument is for string-like input, not normal numeric values.
Good:
print(int("101", 2))
Not correct:
# int(101, 2)
That causes a TypeError because base should not be used with a normal integer value.
What errors can happen #
Two common errors with int() are ValueError and TypeError.
ValueError #
This happens when a string is not a valid integer.
Example:
try:
print(int("3.14"))
except ValueError as error:
print(error)
Output:
invalid literal for int() with base 10: '3.14'
A decimal string like "3.14" does not work directly with int(). You need to convert it to a float first:
print(int(float("3.14")))
Output:
3
If you see this often, read how to convert string to int in Python and how to fix ValueError: invalid literal for int() with base 10.
TypeError #
This can happen with unsupported input types.
Example:
try:
print(int(None))
except TypeError as error:
print(error)
Output:
int() argument must be a string, a bytes-like object or a real number, not 'NoneType'
Another example is using the base argument with a non-string numeric value:
try:
print(int(101, 2))
except TypeError as error:
print(error)
Output:
int() can't convert non-string with explicit base
When to use int() #
Use int() when you need a whole number.
Common uses:
- Convert user input from
input()into integers - Turn float results into integers when truncation is acceptable
- Parse numeric strings from files or APIs
- Convert binary or hexadecimal strings with the
baseargument
Example with user input:
age_text = "18"
age = int(age_text)
print(age + 1)
Output:
19
Common mistakes #
Here are some common problems beginners run into with int().
Passing a string with decimal text #
This fails:
# int("4.5")
Why: "4.5" is not an integer string.
Use this instead:
print(int(float("4.5")))
Passing text with letters #
This fails:
# int("12abc")
Why: the string contains non-numeric characters.
Trying int(None) #
This fails because None is not a number or numeric string.
value = None
try:
print(int(value))
except TypeError as error:
print(error)
Using the base argument with a non-string #
This fails:
# int(101, 2)
Use a string instead:
print(int("101", 2))
Expecting int() to round #
This is a very common misunderstanding.
print(int(4.9))
Output:
4
If you expected 5, remember that int() truncates. It does not round.
FAQ #
Does int() round numbers? #
No. int() removes the decimal part. It does not round to the nearest whole number.
Why does int("3.14") fail? #
Because "3.14" is not an integer string. Convert it with float() first, then use int() if needed.
What does int(True) return? #
It returns 1. False becomes 0.
When should I use the base argument? #
Use it when the input string is written in another base, such as binary or hexadecimal.