1. Home

Python Tutorials - Elevate Your Coding Skills with Comprehensive Tutorials

Discover Python tutorials covering everything from the basics to advanced topics. Whether you're new to programming or looking to level up your skills, our tutorials will guide you every step of the way

  • 201 Lessons
  • 33 Hours

Tutorial Playlist

200 Lessons

Data Types in Python

Updated on 22/05/20245,661 Views


In this tutorial, we will dive deep into the rich world of data types in Python. As Python has gained traction in multiple domains, from web development to data science, understanding its data types becomes crucial. These data types form the foundational elements of Python, and mastery over them paves the way for advanced programming.

Let’s embark on this enlightening journey!


Python, a dynamic and multifaceted programming language, boasts a comprehensive assortment of data types tailored to cater to diverse applications and user needs. Whether you are working on web development, data analysis, artificial intelligence, or just basic scripting, understanding these data types in Python becomes imperative. Ranging from the simple numeric and sequence types to the advanced binary and memory types, Python furnishes programmers with the tools needed for efficient coding and problem-solving.

Dive in to explore these data building blocks!

What are the Standard Data Types?

Python, being a versatile and modern language, introduces an assortment of standard data types. These data types in Python form the building blocks of the language, empowering developers to craft efficient and diverse applications. Grasping these is pivotal for any Python enthusiast. Let's delve deep into each of these data types.


Python data types are fundamental and cater to various mathematical needs:

  • Integer (int):
    • Represents both positive and negative whole numbers.
    • Examples: 0, -5, 8, 20.
  • Floating point (float):
    • Signifies decimal numbers.
    • Allows for greater precision.
    • Examples: 0.5, -3.14, 2.71.
  • Complex (complex):
    • Comprises a real and an imaginary component.
    • Used for complex mathematical operations.
    • Format: x + yj (where x is the real part and y is the imaginary).
    • Example: 3 + 4j.

Sequence Type

Sequences in Python are ordered collections. These are quintessential and exhibit different properties:

  • String (str):
    • An ordered collection of characters.
    • Enclosed within quotes.
    • Examples: "Python", "Hello".
  • List (list):
    • An ordered collection of items.
    • Items can be heterogeneous (of different types).
    • Mutable - items can be changed.
    • Examples: [1, 2, 3], ['a', 'b', 'c'].
  • Tuple (tuple):
    • Resembles a list but has immutability.
    • Useful for fixed collections.
    • Examples: (1, 2, 3), ('apple', 'banana').
  • Range (range):
    • Generates a sequence of numbers based on start, stop, and step values.
    • Widely used in loops.


Captures the essence of logical operations:

  • True: Represents the positive truth value.
  • False: Represents the negative truth value.


Set Types

Dealing with unique collection items:

  • Set (set):
    • Unordered collection with no duplicate entries.
    • Examples: {1, 2, 3}, {"apple", "banana"}.
  • Frozen set (frozenset):
    • Holds the properties of sets.
    • Immutable, hence hashable.


For associating keys with values:

  • Dictionary (dict):
    • Collection of key-value pairs.
    • Keys are unique.
    • Examples: {"name": "John", "age": 30}, {"fruit": "apple", "color": "red"}.

Binary Types( memoryview, bytearray, bytes)

Binary Types

Manipulate binary data:

  • Bytes (bytes):
    • Immutable sequence.
    • Represents a group of byte numbers.
  • Byte Array (bytearray):
    • Mutable counterpart of bytes.
    • Useful for in-place modifications.
  • Memory View (memoryview):
    • Exposes an object's buffer interfaces.
    • Used for accessing the internal data of an object without copying.

What is Python type() Function?


x = 5
y = "Hello, World!"
z = [1, 2, 3]
print(type(x))  # Output: <class 'int'>
print(type(y))  # Output: <class 'str'>
print(type(z))  # Output: <class 'list'>

Describe the Numeric Data Type in Python


# Integer
x = 5
print("Integer:", x)
print("Type of x:", type(x))
# Floating-point number
y = 3.14
print("Float:", y)
print("Type of y:", type(y))
# Complex number
z = 2 + 3j
print("Complex:", z)
print("Type of z:", type(z))

Sequence Data Types in Python


# String
string_sequence = "Hello, World!"
print("String:", string_sequence)
print("Type of string_sequence:", type(string_sequence))
# List
list_sequence = [1, 2, 3, 4, 5]
print("List:", list_sequence)
print("Type of list_sequence:", type(list_sequence))
# Tuple
tuple_sequence = (10, 20, 30, 40, 50)
print("Tuple:", tuple_sequence)
print("Type of tuple_sequence:", type(tuple_sequence))
# Range
range_sequence = range(5)
print("Range:", list(range_sequence))
print("Type of range_sequence:", type(range_sequence))

Accessing Elements of String


string = "Hello, World!"
# Accessing individual characters using positive indexing
first_character = string[0]
second_character = string[1]
last_character = string[-1]  # Equivalent to string[len(string) - 1]
print("First character:", first_character)
print("Second character:", second_character)
print("Last character:", last_character)
substring = string[7:12]  # Extracts "World"
every_other_character = string[::2]  # Extracts "Hlo ol!"
reversed_string = string[::-1]  # Reverses the string
print("Substring:", substring)
print("Every other character:", every_other_character)
print("Reversed string:", reversed_string)

List Data Type

Creating List


L = []
print("Initial blank List: ")
L = ['upGradTutorial!']
print("\nList with the use of String: ")
L = ["up", "Grad", "Tutorial!"]
print("\nList with multiple values: ")
L = [['up', 'Grad'], ['Tutorial!']]
print("\nMulti-Dimensional List: ")

Python Access List Items


List = ["up", "Grad", "Tutorial!"]
print("Accessing element from the list")
print("Accessing element using negative indexing")

Tuple Data Type

Creating a Tuple


# Creating a tuple
fruits = ("apple", "banana", "cherry", "date", "elderberry")
# Accessing elements by index
first_fruit = fruits[0]
second_fruit = fruits[1]
# Accessing elements using negative indexing
last_fruit = fruits[-1]
# Counting the occurrences of an element
num_cherries = fruits.count("cherry")
# Getting the index of an element
index_of_date = fruits.index("date")
# Creating a new tuple by slicing
selected_fruits = fruits[1:4]
# Printing the results
print("Fruits:", fruits)
print("First fruit:", first_fruit)
print("Second fruit:", second_fruit)
print("Last fruit:", last_fruit)
print("Number of cherries:", num_cherries)
print("Index of 'date':", index_of_date)
print("Selected fruits:", selected_fruits)

Access Tuple Items


# Creating a tuple
fruits = ("apple", "banana", "cherry", "date", "elderberry")
# Accessing elements by index
first_fruit = fruits[0]
second_fruit = fruits[1]
third_fruit = fruits[2]
# Accessing elements using negative indexing
last_fruit = fruits[-1]
second_last_fruit = fruits[-2]
# Printing the results
print("First fruit:", first_fruit)
print("Second fruit:", second_fruit)
print("Third fruit:", third_fruit)
print("Last fruit:", last_fruit)
print("Second last fruit:", second_last_fruit)

Boolean Data Type in Python


# Boolean values
is_true = True
is_false = False
# Logical operations
result_and = is_true and is_false  # Logical AND
result_or = is_true or is_false    # Logical OR
result_not = not is_true           # Logical NOT
# Comparisons
greater_than = 5 > 3
less_than = 2 < 1
equal_to = 10 == 10
not_equal = 5 != 8
# Conditional statements
if is_true:
    print("It's true!")
    print("It's false.")
if greater_than:
    print("5 is greater than 3.")
if less_than:
    print("2 is less than 1.")
    print("2 is not less than 1.")
# Printing the results
print("Result of AND:", result_and)
print("Result of OR:", result_or)
print("Result of NOT:", result_not)
print("Greater than:", greater_than)
print("Less than:", less_than)
print("Equal to:", equal_to)
print("Not equal:", not_equal)

Set Data Type in Python

Create a Set in Python


s = set()
print("Initial blank Set: ")
s = set("upGradTutorial!")
print("\nSet with the use of String: ")
s = set(["up", "Grad", "Tutorial!"])
print("\nSet with the use of List: ")
s = set([1, 2, 'up', 4, 'Grad', 6, 'Tutorial!'])
print("\nSet with the use of Mixed Values")

Access Set Items


s1 = set(["up", "Grad", "Tutorial!"])
print("Initial set")
print("\nElements of set: ")
for i in s1:
print(i, end=" ")
print("up" in s1)

Dictionary Data Type in Python

Create a Dictionary


Dict = {}
print("Empty Dictionary: ")
Dict = {1: 'up', 2: 'Grad', 3: 'Tutorial!'}
print("\nDictionary with the use of Integer Keys: ")
Dict = {'Name': 'up', 1: [1, 2, 3, 4]}
print("\nDictionary with the use of Mixed Keys: ")
Dict = dict({1: 'up', 2: 'Grad', 3: 'Tutorial!'})
print("\nDictionary with the use of dict(): ")
Dict = dict([(1, 'up'), (2, 'Grad')])
print("\nDictionary with each item as a pair: ")

Accessing Key-value in Dictionary


D = {1: 'up', 'name': 'Grad', 3: 'Tutorial!'}
print("Accessing a element using key:")
print("Accessing a element using get:")

Example of Using Different Data Types in Python


# Numeric data types
integer_number = 5
float_number = 3.14
complex_number = 2 + 3j
# String data type
text = "Hello, World!"
# Boolean data type
is_true = True
is_false = False
# List data type
fruits = ["apple", "banana", "cherry"]
# Tuple data type
coordinates = (10, 20)
# Set data type
unique_numbers = {1, 2, 3, 4, 5}
# Dictionary data type
person = {"name": "John", "age": 25, "city": "New York"}
# Printing the values and their types
print(integer_number, type(integer_number))
print(float_number, type(float_number))
print(complex_number, type(complex_number))
print(text, type(text))
print(is_true, type(is_true))
print(is_false, type(is_false))
print(fruits, type(fruits))
print(coordinates, type(coordinates))
print(unique_numbers, type(unique_numbers))
print(person, type(person))


Diving into Python's data types, we've covered the essentials that shape our coding projects. Now, with this foundation, navigating Python becomes much smoother. As this tutorial concludes, remember that the world of programming is ever-evolving, urging us to keep learning. For those keen on enhancing their Python expertise, consider exploring courses by upGrad. Every step in your learning journey is significant, and having the right guidance makes all the difference.


1. Are lists mutable in Python?

In Python, lists are indeed mutable. This characteristic allows programmers to modify, add, or delete items from a list even after its initial creation. This adaptability makes lists a versatile data structure, especially when data needs constant updates or modifications.

2. What's the difference between tuples and lists?

Both tuples and lists are sequence types in Python. The primary distinction lies in their mutability. Lists can be altered after creation, offering dynamic modification capabilities. In contrast, tuples are immutable, meaning once they are created, their content remains static and cannot be changed, which can be advantageous for ensuring data consistency.

3. Can dictionaries hold multiple data types?

Absolutely! Dictionaries in Python are incredibly flexible. They can store key-value pairs where values can be of varied data types, including integers, strings, lists, or even other dictionaries and objects. This multifaceted nature of dictionaries makes them ideal for representing structured data in diverse scenarios.

4. How is the range data type commonly used?

The range data type in Python is predominantly employed in loops, especially the 'for' loop. It generates a sequence of numbers, which can dictate how many times the loop will iterate. This is particularly useful when an action needs repetition over a fixed set of iterations, ensuring code conciseness and efficiency.

5. What is the role of the complex data type in Python?

In Python, the complex data type provides a means to represent numbers that comprise both a real and an imaginary component. This capability is particularly vital in domains like engineering and mathematics, where complex number operations and computations are frequent. Python's innate support for this data type facilitates intricate mathematical tasks with ease.



Director of Engineering

Director of Engineering @ upGrad. Motivated to leverage technology to solve problems. Seasoned leader for startups and fast moving orgs. Working … Read More

Get Free Career Counselling
form image
By clicking, I accept theT&Cand
Privacy Policy
Join 10M+ Learners & Transform Your Career
Learn on a personalised AI-powered platform that offers best-in-class content, live sessions & mentorship from leading industry experts.

upGrad Learner Support

Talk to our experts. We’re available 24/7.


Indian Nationals

1800 210 2020


Foreign Nationals



upGrad does not grant credit; credits are granted, accepted or transferred at the sole discretion of the relevant educational institution offering the diploma or degree. We advise you to enquire further regarding the suitability of this program for your academic, professional requirements and job prospects before enr...