Data types in Python
Tags: python, programming, beginners, tutorial
Published: 2024-06-18 05:09:45

Data types are one of the building blocks of python.
And You can do a lot of things with data types!

_Fact: In python, all data types are implemented as an object._

A data type is like a specification of what kind of data we would like to store in memory and python has some built-in data types in these categories:

- Text type: str
- Numeric types: int, float, complex
- Sequence types: list, tuple, range
- Mapping type: dict
- Set types: set, frozenset
- Boolean type: bool
- Binary types: bytes, bytearray, memoryview

Now, let's demistify all these data types by using **type()** function to display the data type of the variable.

## Text type
###str

- **str** stands for _string_ in python used for storing text in python.
- Strings can be written either in single quotes or double qoutes in python, hence your choice.

Example:

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/snxjp7m627fn4c9kpoyn.png)

Output:

```
Hello, world!
<class 'str'>
```

## Numeric types
### int

- **int** stands for integer used to store integers (positive and negative numbers).
Example:

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pj1tt16e59pqlxrmsp32.jpeg)

Output:

```
4
<class 'int'>
```

## float

- **float** stands for floating-point numbers (decimal point numbers)

Example:

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yh4cwe7icfyvsjf05ijw.png)

Output:

```
3.14
<class 'float'>
```

## complex

- Complex numbers have a real and imaginary part, which are each a floating point number.
- Complex numbers can be written in two forms:
- real + (imag)j
- complex(real, imag)

Example:

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bryme7guto2vvm0s85w8.png)

Output:

```
(5+10j)
<class 'complex'>
```

## Sequence types
### list

- A **list** is data type where you can store a collection of data
- A list can also contain different data types
- A list is _ordered_ and _changeable_ and _allows duplicate members_

Example:

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/voy7y6pf18vykaa6pwiu.png)

Output:

```
['Captain America', 'Iron Man', 'Thor', 'Hulk', 'Black Widow', 'Hawkeye']
<class 'list'>
```
### tuple

- A **tuple** is data type where you can store a collection of data
- A tuple can also contain different data types
- A tuple is _ordered_ and _unchangeable_ and _allows duplicate members_

Example:

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ug88vzuc1myn6h02unmd.png)

Output:

```
('Captain America', 'Iron Man', 'Thor', 'Hulk', 'Black Widow', 'Hawkeye')
<class 'tuple'>
```
### range

- The range type represents an immutable (unchangable) sequence of numbers
- Commonly used for looping a specific number of times in for loops.

Example:

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/letfvc7bayn5mk6uzmud.jpeg)

Output:

```
range(0, 10)
<class 'range'>
```

## Mapping type

### dict

- **dict** stands for dictionary in python
- Dictionaries are used to store data values in key:value pairs
- A dictionary is a collection which is _unordered_, _changeable_ and _does not allow duplicates_

Example:

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/71e6vo424796f5ael8uj.png)

Output:

```
{'Learning': 'Programming', 'Language': 'Python', 'Day': 4}
<class 'dict'>
```

## Set types

### set

- A set is data type where you can store a collection of data
- A set can also contain different data types
- A set is unordered and _unindexed_ and _allows no duplicate members_

Example:

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ao22f5d1dgw4c9q3c6b4.png)

Output:

```
{'Black Widow', 'Iron Man', 'Thor', 'Hawkeye', 'Hulk', 'Captain America'}
<class 'set'>
```

### frozenset

- **frozenset** data type can be created by _frozenset()_ function
- The _frozenset()_ function accepts an iterable and returns an unchangeable frozenset object (which is like a set object, only unchangeable)

Example:

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9qsuixx6n6bnqo6jtp5i.png)

Output:

```
frozenset({'cherry', 'banana', 'apple'})
<class 'frozenset'>
```

## Boolean type

### bool

- **bool** stands for boolean in python
- Booleans represent one of two values: True or False

Example:

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0k0w53vql9uk8o2u9x0p.png)

Output:

```
True
<class 'bool'>
False
<class 'bool'>
```

## Binary types

### bytes

- **bytes** data type can be created in two forms:
- _bytes()_ function
- prefix 'b'

Example:

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fo9i07sv6q8986sidh0n.jpeg)

Output:

```
b'hello'
<class 'bytes'>
b'Hello'
<class 'bytes'>
```

### bytearray

- **bytearray()** function returns a bytearray object
- It can convert objects into bytearray objects

Example:

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/h14kq66ojntoyds7v42p.jpeg)

Output:

```
bytearray(b'\x00\x00\x00\x00')
<class 'bytearray'>
```

### memoryview

- **memoryview()** function returns a memory view object from a specified object

Example:

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/t2objwsd09k6zowbx5hl.jpeg)

Output:

```
<memory at 0x2b4f7a8a7408>
<class 'memoryview'>
```
**Note**
As you might have observed earlier, some data types can be also implemented using their constructors.
This same technique can also be applied to every data type.
Example:

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/d296k0el4mxn2j4n8t94.png)

Output:

```
Hello, World!
4
3.14
(5+10j)
['Captain America', 'Iron Man', 'Thor', 'Hulk', 'Black Widow', 'Hawkeye']
('Captain America', 'Iron Man', 'Thor', 'Hulk', 'Black Widow', 'Hawkeye')
range(0, 10)
{'Learning': 'Programming', 'Language': 'Python', 'Day': 4}
{'apple', 'cherry', 'banana'}
frozenset({'banana', 'cherry', 'apple'})
True
False
b'\x00\x00\x00\x00'
bytearray(b'\x00\x00\x00\x00')
<memory at 0x2b8346a29408>
```

### Best Resources

- [Python Blog Series](https://dev.to/afraazahmed/series/27589) : A Blog series where I will be learning and sharing my knowledge on each of the above topics.
- [Learn Python for Free, Get Hired, and (maybe) Change the World!](https://zerotomastery.io/blog/best-way-to-learn-python-for-free) : A detailed roadmap blog by Jayson Lennon (a Senior Software Engineer) with links to free resources.
- **Zero To Mastery Course** - [Complete Python Developer](https://zerotomastery.io/courses/learn-python/) : A comprehensive course by Andrei Neagoie (a Senior Developer) that covers all of the above topics.

**Who Am I?**

I’m Afraaz Ahmed, a Software Engineering Nerd who loves building Web Applications, now sharing my knowledge through Blogging during the busy time of my freelancing work life. Here’s the link to all of my socials categorized by platforms under one place: https://linktr.ee/afraazahmed

**Thank you** so much for reading my blog🙂.