This page is a summary of Python int (integer) data type – its basic characteristics, how to create an int, how to convert other data types to int, basic arithmetic and comparison operations, and typical use cases.
Basic characteristics
Python int
data type represents integers = whole numbers = numbers without decimal point. This is the main difference from Python float
data type, which is a floating point number (number with decimal point).
An int
can be positive, negative, or zero.
The int
data type as well as the corresponding int()
function are built-in. You don't need to import anything to use them.
How to create an int
The simplest way to create an int
variable is by assigning a whole number to it, using the =
assignment operator.
a = 123
b = -456
c = 0
Converting other data types to int
Alternatively, an int
can be created by converting another type variable to it, using the int()
function.
str to int
For example, this converts the string '123'
to the int 123
:
a = int('123')
float to int
When a float
is converted to int
, it loses everything after the decimal point:
>>> int(123.456) 123 >>> int(-123.456) -123
As a result, a positive float
is rounded down to the nearest smaller integer (closer to zero), while a negative float
is rounded up to the nearest higher integer (closer to zero).
Arithmetic operations with ints
Python supports all common arithmetic operations using the usual symbols:
- Addition:
a + b
- Subtraction:
a - b
- Multiplication:
a * b
- Division:
a / b
- Modulo (remainder):
a % b
- Exponentiation:
a ** b
>>> 5 + 2 # 5 plus 2 7 >>> 5 - 2 # 5 minus 2 3 >>> 5 * 2 # 5 times 2 10 >>> 5 / 2 # 5 divided by 2 2.5 >>> 5 % 2 # remainder of 5 divided by 2 1 >>> 5 ** 2 # 5 to the power of 2 (5 squared) 25
All these operations return another int
, except division which returns a float
, even when the result would be a whole number mathematically. For example:
>>> 10 / 5 2.0 >>> type(10 / 5) <class 'float'>
To avoid this an get an integer, use the integer division operator //
(double slash):
>>> 10 // 5 2 >>> type( 10 // 5) <class 'int'>
Comparison operators
Python supports all the common comparison operators between integers. They return a bool
(True
/False
):
>>> 12 > 5 # 12 is greater than 5 True >>> 12 >= 5 # 12 is greater than or equal to 5 True >>> 12 < 5 # 12 is smaller than 5 False >>> 12 <= 5 # 12 is smaller than or equal to 5 False >>> 5 <= 5 True >>> 12 == 5 # 12 equals 5 False >>> 12 == 12 True >>> 12 != 5 # 12 does not equal 5 True >>> 12 != 12 False
Comparison operators also work between ints and other numeric types, such as floats:
>>> 12 > 5.75 True >>> 12 <= 5.75 False >>> 12 == 12.0 True
However, comparison operators do not work between ints and strings, even when the string represents a numeric value. We get a TypeError:
>>> 12 > '5' Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: '>' not supported between instances of 'int' and 'str'
Boolean evaluation of ints
When an int is used in the boolean context or evaluated using the bool()
function:
>>> bool(0) False >>> bool(123) True >>> bool(-123) True
Typical use cases
As one of the most basic data types, int
has a wide variety of uses in Python. The following are just of few common examples.
Discrete numeric variables, such as number of persons, number of website visitors, number of items sold or items in stock, or number of seats in a concert hall.
Moreover, integers are often used to represent even variables which are not discrete in the real world, but the particular use case does not require decimal point precision. For example, age or financial amounts.
Date and time. Although there are modules such as datetime
dedicated to working with time and date, at the low level they work with integers – years, months, days, hours, minutes, seconds, microseconds, or weekdays.
Primary key in databases and big data applications. Because of its simplicity and performance benefits, int
is typically used as primary key and unique identifier of rows in databases and big datasets.
Indexing and slicing. An int
can represent a character position in a string
or an item position in a list
, tuple
, or another sequence:
>>> s = 'PyTut' >>> s[1] 'y' >>> colors = ['red', 'green', 'blue'] >>> colors[2] 'blue'
Counter in loops. The typical use case is an int
as argument to range()
in a for-loop:
for i in range(20):
# do something 20 times
Coordinates in game development and other graphics. Integers represent x and y positions of individual pixels.
Error handling. Integers are typically used as error codes to identify what went wrong in a script execution.
Official documentation
Numeric data types (int
, float
, complex
):
https://docs.python.org/3/library/stdtypes.html#numeric-types-int-float-complex
The int()
function:
https://docs.python.org/3/library/functions.html#int