What Is a Data Type in Python?
A data type in Python tells Python what kind of value you are working with.
For example, a value might be:
- text
- a whole number
- a decimal number
TrueorFalse
Data types matter because they affect what you can do with a value. Python uses them to decide how values are stored and how operations should behave.
What a data type means
A data type describes the kind of value you are using.
Here are a few simple examples:
- Text uses the string type
- Whole numbers use the integer type
- Decimal numbers use the float type
TrueandFalseuse the boolean type
Different data types support different operations.
For example:
- You can add numbers with
+ - You can join strings with
+ - Some operations work for one type but not another
print(2 + 3)
print("hello" + " world")
Output:
5
hello world
Even though both lines use +, Python handles them differently because the data types are different.
Simple examples of data types
Some common built-in Python data types are:
- String: text like
"hello" - Integer: whole number like
5 - Float: decimal number like
3.14 - Boolean:
TrueorFalse - List: a collection like
[1, 2, 3] - Dictionary: key-value data like
{"name": "Sam"}
Example:
message = "hello"
count = 5
price = 3.14
is_ready = True
numbers = [1, 2, 3]
user = {"name": "Sam"}
Each value has its own type.
If you want a broader introduction, see Python data types overview.
Why data types matter
Data types matter because they affect what your code can do.
For example:
- Numbers can be added
- Strings behave like text
- Some combinations of types cause errors
- Choosing the right type makes your code easier to work with
This works:
print(10 + 5)
But this causes a problem:
print("10" + 5)
Python raises an error because "10" is a string and 5 is an integer. These types do not work together in that operation.
If you want to understand this more clearly, see TypeError vs ValueError in Python explained.
How Python knows a value's type
Python usually figures out the type from the value itself.
Common examples:
- Quotes usually mean a string:
"hello" - A whole number is usually an
int:5 - A decimal number is usually a
float:3.14 TrueandFalseare booleans
You can check a value's type with type().
print(type("hello"))
print(type(5))
print(type(3.14))
print(type(True))
Output:
<class 'str'>
<class 'int'>
<class 'float'>
<class 'bool'>
If you want to learn more about this function, see Python type() function explained.
Variables and data types
A variable stores a value.
The value inside the variable has a data type.
In Python, you do not need to declare the type first. Python works it out when you assign the value.
x = 5
print(type(x))
x = "hello"
print(type(x))
Output:
<class 'int'>
<class 'str'>
This means the same variable can later store a different type of value.
If you are still learning variables, see what is a variable in Python.
Common beginner confusion
These are very common mistakes when learning data types:
"5"is a string, not an integer5and5.0are different typesTrueis a boolean, not a string- A list and a tuple are different types, even if they look similar
Example:
print(type("5"))
print(type(5))
print(type(5.0))
print(type(True))
print(type([1, 2, 3]))
print(type((1, 2, 3)))
Output:
<class 'str'>
<class 'int'>
<class 'float'>
<class 'bool'>
<class 'list'>
<class 'tuple'>
When to learn more next
Once you understand the basic idea of data types, the next useful step is to learn specific types in more detail.
Good next topics are:
- what is a string in Python
- what is an integer in Python
- what is a float in Python
- what is a boolean in Python
- type conversion in Python
Type conversion is especially useful because it lets you change one type into another when needed.
Common mistakes
Beginners often run into problems like these:
- Treating a string like a number
- Assuming all numbers are the same type
- Confusing a variable name with the value's type
- Mixing incompatible data types in one operation
These commands can help you check what is happening:
value = "5"
print(type(value))
print(isinstance(value, int))
print(isinstance(value, str))
Output:
<class 'str'>
False
True
Useful checks:
type(value)print(type(value))isinstance(value, int)isinstance(value, str)
FAQ
What is a data type in simple words?
It is the kind of value you are working with, such as text, a number, or True/False.
Does Python require me to declare data types?
No. Python figures out the type from the value you assign.
Is "10" the same as 10 in Python?
No. "10" is a string and 10 is an integer.
How do I check a data type in Python?
Use the type() function, such as type(5) or type("hello").
Why do data types matter?
They affect what operations are allowed and help prevent errors in your code.