top

Search

Python Tutorial

.

UpGrad

Python Tutorial

Data Types in Python

Introduction

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!

Overview

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.

Numeric

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.

Boolean

Captures the essence of logical operations:

  • True: Represents the positive truth value.

  • False: Represents the negative truth value.

Set

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.

Dictionary

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?

Code:

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   

Code:

# 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

Code:

# 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  

Code:

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 

Code:

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

Python Access List Items

Code:

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

Tuple Data Type   

Creating a Tuple

Code:

# 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

Code:

# 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   

Code:

# 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!")
else:
    print("It's false.")
if greater_than:
    print("5 is greater than 3.")
if less_than:
    print("2 is less than 1.")
else:
    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

Code:

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

Access Set Items

Code:

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

Dictionary Data Type in Python   

Create a Dictionary

Code:

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

Accessing Key-value in Dictionary

Code:

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

Example of Using Different Data Types in Python

Code:

# 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))

Conclusion

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.

FAQs

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.

Leave a Reply

Your email address will not be published. Required fields are marked *