Grade11 Python TestPaper WithAnswers
Grade11 Python TestPaper WithAnswers
General Instructions:
→ Section A contains 20 Multiple Choice Questions of 1 mark each.
→ Section B contains 10 Short Answer Questions of 3 marks each.
→ Section C contains 5 Long Answer Questions of 6 marks each.
→ Read each question carefully before answering. For code, write proper indentation.
→ The Answer Key section follows each question inline for self-study and revision.
Page
Data Science: Python, AI & ML (COD1102) | Grade 11 | DBSE
Q1. Which operator is used for Exponentiation (raising a number to a power) in Python? [1
mark]
(a) ^
(b) ** ✓ CORRECT
(c) ^^
(d) exp()
✎ Answer:
The correct answer is (b) **
💡 Concept Used:
In Python, the double-asterisk ** is the exponentiation operator. For example, 2 ** 3 means 2 raised to
the power 3, which equals 8. Python does NOT use the caret (^) for powers — the caret is actually the
bitwise XOR operator in Python, which is a common mistake. The built-in function pow(2, 3) also gives 8
but is a function call, not an operator.
Page
Data Science: Python, AI & ML (COD1102) | Grade 11 | DBSE
Python uses the simple and readable keyword 'def'. Functions promote the concept of code reuse — write
once, use many times.
Q4. Which Python data structure stores data in the form of key-value pairs? [1 mark]
(a) List
(b) Tuple
(c) Set
(d) Dictionary ✓ CORRECT
✎ Answer:
The correct answer is (d) Dictionary
💡 Concept Used:
A Dictionary in Python is a data structure that maps keys to values — just like a real-world dictionary
maps a word to its definition. Each entry has a unique key (like 'name') and an associated value (like
'Alice'). You access values using their key: student['name']. Dictionaries are defined using curly braces {}
with colon-separated pairs. They are perfect for storing structured, labelled data such as student records,
configuration settings, or any lookup table.
Q5. Which of the following data structures is IMMUTABLE — meaning it cannot be changed
after creation? [1 mark]
(a) List
(b) Dictionary
(c) Tuple ✓ CORRECT
(d) Set
✎ Answer:
The correct answer is (c) Tuple
💡 Concept Used:
Immutable means 'cannot be changed after creation'. A Tuple is Python's immutable sequence. Once you
create a tuple like t = (1, 2, 3), you cannot add, remove, or modify its elements — attempting to do so
causes a TypeError. This makes tuples reliable for storing data that should never change, such as GPS
coordinates, RGB colour values, or database records. In contrast, Lists are mutable (changeable), Sets can
have items added or removed, and Dictionaries can be updated.
Page
Data Science: Python, AI & ML (COD1102) | Grade 11 | DBSE
the characters are at positions 0 through 5. len() works on all sequences — strings, lists, tuples, and
dictionaries — making it one of the most commonly used built-in functions.
Q9. Which list method adds an element to the END of a list? [1 mark]
(a) insert()
(b) add()
(c) append() ✓ CORRECT
(d) push()
✎ Answer:
The correct answer is (c) append()
💡 Concept Used:
The append() method is one of the most commonly used list methods. It adds a single element to the very
end of an existing list without affecting the other elements. For example: fruits = ['apple', 'banana'] →
[Link]('cherry') → ['apple', 'banana', 'cherry']. Note the difference: insert(index, value) adds at a
Page
Data Science: Python, AI & ML (COD1102) | Grade 11 | DBSE
specific position, add() does not exist for lists (it exists for sets), and push() is from other languages like
JavaScript, not Python.
Q11. What is the name of the special method in Python that is automatically called when a
new object is created from a class? [1 mark]
(a) __start__
(b) __init__ ✓ CORRECT
(c) __create__
(d) __begin__
✎ Answer:
The correct answer is (b) __init__
💡 Concept Used:
__init__ is called the Constructor method in Python. It is a special (or 'dunder') method — dunder stands
for 'double underscore'. This method is automatically invoked by Python every time a new object is
created from a class. Its job is to initialise the object's attributes with starting values. The first parameter
is always 'self', which refers to the specific object being created. For example: def __init__(self, name):
[Link] = name — when you write Dog('Buddy'), Python automatically calls __init__ and sets
[Link] = 'Buddy'.
Q12. Which of the following is the correct command to install a Python package called 'numpy'
using pip? [1 mark]
(a) python install numpy
(b) pip install numpy ✓ CORRECT
(c) install pip numpy
(d) import numpy
✎ Answer:
The correct answer is (b) pip install numpy
💡 Concept Used:
Page
Data Science: Python, AI & ML (COD1102) | Grade 11 | DBSE
pip stands for 'Package Installer for Python'. It is a command-line tool that comes bundled with Python
and is used to download and install third-party modules (packages) from the Python Package Index
(PyPI). The syntax is simply: pip install package_name. Once installed, you use import numpy inside your
Python code to access it. Note that 'import' only loads an already-installed package into your program —
it does not download or install anything. You must run pip commands in the terminal/command prompt,
not inside Python code.
Q13. Which file opening mode appends new content to an existing file without deleting what is
already in it? [1 mark]
(a) "r" — Read mode
(b) "w" — Write mode
(c) "a" — Append mode ✓ CORRECT
(d) "x" — Create mode
✎ Answer:
The correct answer is (c) "a" — Append mode
💡 Concept Used:
Python's open() function accepts a mode argument that tells it how to access the file. The four main
modes are: 'r' (read-only, file must exist), 'w' (write — creates new or OVERWRITES existing content,
which means all old data is deleted), 'a' (append — opens the file and adds new content at the END
without removing existing data), and 'x' (exclusive create — creates a new file but fails if the file already
exists). Choosing the wrong mode, especially 'w' instead of 'a', is a common mistake that causes
permanent data loss.
Q15. Which of the following is NOT a valid built-in data type in Python? [1 mark]
(a) int
(b) char ✓ CORRECT
(c) float
(d) bool
✎ Answer:
The correct answer is (b) char
Page
Data Science: Python, AI & ML (COD1102) | Grade 11 | DBSE
💡 Concept Used:
Python does NOT have a 'char' data type. In languages like C or Java, 'char' stores a single character. In
Python, there is no need for this — a single character is simply a string of length 1, using the 'str' type.
Python's built-in types include: int (whole numbers), float (decimal numbers), str (text/strings), bool (True
or False), list, tuple, dict, set, and NoneType. This simplicity is one reason Python is beginner-friendly —
fewer data types to memorise.
Q17. Which set operation returns ONLY the elements that are common to BOTH sets? [1 mark]
(a) Union ( | )
(b) Difference ( - )
(c) Intersection ( & ) ✓ CORRECT
(d) Concatenation ( + )
✎ Answer:
The correct answer is (c) Intersection ( & )
💡 Concept Used:
Python sets support mathematical set operations. Intersection (&) finds elements present in BOTH sets —
like the overlapping region of a Venn diagram. For example: {1,2,3,4} & {3,4,5,6} = {3,4}. Union (|)
combines ALL elements from both sets with no duplicates. Difference (-) returns elements in the first set
that are NOT in the second. Concatenation (+) does not work on sets. These operations are very fast
because sets use a hash-table internally, making membership testing much quicker than in lists.
Q18. Which keyword in Python is used inside a child class to call a method from its parent
class? [1 mark]
(a) parent()
(b) base()
(c) super() ✓ CORRECT
(d) inherit()
✎ Answer:
The correct answer is (c) super()
Page
Data Science: Python, AI & ML (COD1102) | Grade 11 | DBSE
💡 Concept Used:
super() is a built-in Python function used inside a child (derived) class to call methods from the parent
(base) class. It is most commonly used inside __init__ to ensure the parent class also initialises properly.
For example, if Dog inherits from Animal, writing super().__init__(name) inside Dog's __init__ calls
Animal's __init__ and sets the name attribute. Without super(), the child class would need to repeat all
the parent's initialisation code, which breaks the principle of code reuse that is central to OOP.
Q19. Which tkinter widget is used to accept single-line text input from the user? [1 mark]
(a) Label
(b) Entry ✓ CORRECT
(c) Text
(d) Button
✎ Answer:
The correct answer is (b) Entry
💡 Concept Used:
Tkinter is Python's built-in GUI (Graphical User Interface) library. It provides several widgets for building
windows: Label displays text or images, Button creates a clickable button, Entry creates a single-line text
input box (like a login form field), and Text creates a multi-line text area. Entry is the correct choice for
short inputs like names or passwords. To get the value typed by the user, you use entry_widget.get(). GUI
programming makes programs visual and interactive, allowing users who are not programmers to use
them easily.
Page
Data Science: Python, AI & ML (COD1102) | Grade 11 | DBSE
Q1. What is a Flowchart? Draw and explain any THREE flowchart symbols with their purpose.
[3 marks]
✎ Answer:
A flowchart is a visual, diagrammatic representation of an algorithm or process. It uses standardised
geometric shapes connected by arrows to show the order of steps in a program or a decision-making
process. Flowcharts are written BEFORE actual code to plan the logic of a program. They make
complex programs easier to understand because they turn written steps into a visual picture.
Q2. What is indentation in Python? Why is it compulsory? Write an example showing correct
and incorrect indentation. [3 marks]
✎ Answer:
Indentation refers to the spaces or tabs added at the beginning of a line of code. In most
programming languages, indentation is optional and used only for readability. However, in Python,
indentation is MANDATORY — it is part of the language's syntax and is used to define code blocks. A
code block is a group of statements that belong together, such as the body of an if statement, a loop,
or a function.
Python typically uses 4 spaces per indentation level. Lines at the same indentation level belong to the
same block. If you break the indentation rules, Python raises an IndentationError and the program will
not run.
Correct Indentation:
age = 20
if age >= 18:
print('You are an adult') # correctly indented
print('You can vote') # same block
print('Program finished') # outside the if block
Page
Data Science: Python, AI & ML (COD1102) | Grade 11 | DBSE
💡 Concept Used:
Concept: Python Syntax and Code Blocks. Python's indentation rule enforces clean, readable code by
design. This is one of the features that makes Python stand out from other languages like Java or C, which
use curly braces {} to define blocks. The Python creator Guido van Rossum intentionally made indentation
mandatory so that all Python code looks consistent and readable.
Q3. Write a Python program that asks the user to enter a number and checks whether it is Even
or Odd. [3 marks]
✎ Answer:
This program uses the modulus operator (%) to find the remainder when the number is divided by 2. If
the remainder is 0, the number is even; otherwise, it is odd.
if num % 2 == 0:
print(num, 'is an Even number')
else:
print(num, 'is an Odd number')
💡 Concept Used:
Concepts Used: (1) input() reads user input as a string; int() converts it to an integer so we can do
arithmetic. (2) The Modulus operator % returns the remainder of division — any even number divided by
2 gives remainder 0. (3) The if-else control structure makes a decision based on a condition. If the
condition (num % 2 == 0) is True, the first block runs; if False, the else block runs.
Q4. Explain any FOUR methods of the Python List data structure with examples. [3 marks]
✎ Answer:
A List in Python is an ordered, mutable (changeable) collection that can hold multiple values of any
data type. Lists come with many built-in methods that allow us to manipulate them easily.
Method 1: append(element)
Adds a single element to the END of the list. The list grows by one item.
fruits = ['apple', 'banana']
[Link]('cherry')
Output: ['apple', 'banana', 'cherry']
Page
Data Science: Python, AI & ML (COD1102) | Grade 11 | DBSE
Inserts an element at a specific position (index). Elements after that position shift one place to the
right.
[Link](1, 'mango') # insert 'mango' at position 1
Output: ['apple', 'mango', 'banana', 'cherry']
Method 3: remove(element)
Searches the list for the first occurrence of the given element and removes it. If the element is not
found, it raises a ValueError.
[Link]('banana')
Output: ['apple', 'mango', 'cherry']
Method 4: sort()
Sorts the list in ascending order by default (A-Z for strings, smallest to largest for numbers). To sort in
descending order, use sort(reverse=True). This modifies the original list.
nums = [5, 2, 8, 1, 9]
[Link]()
Output: [1, 2, 5, 8, 9]
💡 Concept Used:
Concept: List Data Structure and Methods. Lists are one of the most versatile data structures in Python
because they are ordered (items maintain their position), mutable (can be changed after creation), and
allow duplicate values. The methods above are essential for day-to-day programming tasks such as
building shopping carts, tracking student records, or managing any collection of data.
Q5. Differentiate between a Tuple and a Set in Python with one example of each. [3 marks]
✎ Answer:
Both Tuple and Set are built-in Python data structures, but they have very different properties and are
used in different situations.
Tuple Example:
location = (28.6139, 77.2090) # latitude, longitude — should not change
print(location[0]) # access by index
Output: 28.6139
Set Example:
tags = {'python', 'coding', 'python', 'ai'} # duplicate 'python' added
print(tags)
Page
Data Science: Python, AI & ML (COD1102) | Grade 11 | DBSE
💡 Concept Used:
Concept: Choosing the Right Data Structure. Understanding when to use a Tuple versus a Set is
important. Use a Tuple when data is fixed and order matters (e.g., storing a date as (day, month, year)).
Use a Set when you need fast membership checking or when you want to automatically eliminate
duplicate values from a collection.
Page
Data Science: Python, AI & ML (COD1102) | Grade 11 | DBSE
Q6. What is a Dictionary in Python? Create a dictionary of 3 students with their marks and print
each student's name and marks using a loop. [3 marks]
✎ Answer:
A Dictionary is a built-in Python data structure that stores data as key-value pairs. Each key acts as a
unique identifier (like a label), and each value is the data associated with that key. Dictionaries are
defined using curly braces {}, with each entry written as key: value and entries separated by commas.
Keys must be unique and are typically strings or numbers; values can be of any type.
Dictionaries are ideal for representing structured data — for example, a student record where the key
is the student's name and the value is their marks.
💡 Concept Used:
Concepts Used: (1) Dictionary creation with key-value pairs. (2) The .items() method returns each key-
value pair as a tuple, which we unpack into two variables (name, marks) in the for loop. (3) The for loop
iterates through the dictionary automatically. Dictionaries are one of the most powerful and widely-used
data structures in Python, used in web development, data science, and almost every real-world Python
application.
Q7. What is the purpose of the __init__ method in Python? Write a class called 'Rectangle' with
length and width attributes, and a method to calculate its area. [3 marks]
✎ Answer:
The __init__ method (also called the constructor) is a special method in Python classes that is
automatically called by Python every time a new object is created from that class. Its purpose is to
initialise the object's attributes — that is, to set the starting values for the object's data. Without
__init__, every object created from the class would have no attributes until you manually set them,
which is error-prone.
The first parameter of __init__ is always 'self', which is a reference to the specific object being
created. Any attributes defined as self.attribute_name = value inside __init__ become part of that
object.
class Rectangle:
Page
Data Science: Python, AI & ML (COD1102) | Grade 11 | DBSE
def area(self):
return [Link] * [Link]
💡 Concept Used:
Concepts Used: (1) OOP — classes and objects. A class is the blueprint and an object is an instance of it.
(2) __init__ as constructor to set up initial state. (3) Instance methods — functions defined inside a class
that operate on the object's own data using 'self'. (4) Encapsulation — the Rectangle class bundles its
data (length, width) and behaviour (area()) together in one place.
Q8. What are modules in Python? How do you import a module? Give examples of at least
TWO built-in modules and show how to use them. [3 marks]
✎ Answer:
A module in Python is a file that contains Python code — specifically functions, classes, and variables
— that can be imported and reused in other Python programs. Instead of writing the same code again
and again, you can put it in a module and import it wherever needed. Python comes with a large
Standard Library of built-in modules that are ready to use.
There are three main ways to import a module:
1. import module_name — imports the whole module; access items using module_name.item
2. from module_name import function — imports only a specific function directly
3. import module_name as alias — imports with a short nickname for convenience
💡 Concept Used:
Concept: Modular Programming. The ability to import modules is one of Python's greatest strengths. It
allows programmers to stand on the shoulders of giants — using thousands of pre-written, tested
functions without having to write them from scratch. Built-in modules like math, random, and os are
Page
Data Science: Python, AI & ML (COD1102) | Grade 11 | DBSE
always available. Third-party modules like numpy, pandas, and tensorflow must first be installed using
pip.
Q9. Write a Python program using a for loop that prints the multiplication table of any number
entered by the user (from 1 to 10). [3 marks]
✎ Answer:
A for loop in Python is used when we know in advance how many times we want to repeat a block of
code. Combined with range(), it gives us precise control over the iteration. For a multiplication table
from 1 to 10, we loop through the numbers 1 to 10 and multiply each by the user's chosen number.
💡 Concept Used:
Concepts Used: (1) for loop with range(1, 11) — iterates exactly 10 times, with i taking values 1 through
10. (2) f-strings (formatted string literals) — the f before the quote allows variables inside {}. (3) :2 inside
the f-string pads the number with spaces for neat alignment. (4) int(input()) converts the user's text input
to an integer for arithmetic.
Q10. What is File Handling in Python? Write a program to write 'Hello World' to a file, then
read it back and display it. [3 marks]
✎ Answer:
File handling in Python refers to the ability of a program to create, read, write, and manage files
stored on a computer's disk. This is essential for data persistence — saving data so that it survives
even after the program closes. Without file handling, all data stored in variables is lost as soon as the
program ends.
Python's built-in open() function is used to work with files. It takes two arguments: the filename and
the mode ('r' for read, 'w' for write, 'a' for append). The recommended way to open files is using the
'with' statement, which automatically closes the file when the block ends, even if an error occurs —
preventing data corruption.
Page
Data Science: Python, AI & ML (COD1102) | Grade 11 | DBSE
💡 Concept Used:
Concepts Used: (1) open() with mode 'w' creates a new file (or overwrites an existing one) and opens it for
writing. (2) [Link]() writes a string to the file. The escape character \n adds a newline. (3) open() with
mode 'r' opens the file for reading. (4) [Link]() reads the entire file content as a single string. (5) The
'with' statement ensures the file is properly closed after the block, which is best practice in Python.
Page
Data Science: Python, AI & ML (COD1102) | Grade 11 | DBSE
Q1. Explain in detail the four main Data Structures in Python — List, Tuple, Set, and Dictionary.
For each structure, describe its key properties, when it should be used, and provide a code
example demonstrating its creation and access. [6 marks]
✎ Answer:
Python provides four primary built-in data structures. Each is designed for a different purpose. A data
structure is essentially a way to organise and store multiple pieces of data so that we can access and
work with them efficiently. Understanding which one to use in which situation is a fundamental skill in
Python programming.
Page
Data Science: Python, AI & ML (COD1102) | Grade 11 | DBSE
💡 Concept Used:
Key Takeaway: Choose List when order matters and data changes. Choose Tuple when data is fixed.
Choose Set when uniqueness matters. Choose Dictionary when you need to look up values by a
meaningful label (key). These four structures cover virtually every data storage need in Python
programming.
Q2. Explain Object-Oriented Programming (OOP). What is Inheritance? Write a Python program
demonstrating inheritance with a parent class 'Animal' and two child classes 'Dog' and 'Cat'.
Your program must include: use of super(), method overriding, and creating objects. [6 marks]
✎ Answer:
Object-Oriented Programming (OOP) is a programming approach that organises code around objects
rather than functions and procedures. An object is a real-world entity that has two things: attributes
(data/properties) and methods (behaviours/functions). For example, a 'Car' object has attributes like
colour and speed, and methods like drive() and stop().
OOP is built on four key principles:
(1) Encapsulation: Bundling data and methods that work on that data together inside a class.
(2) Inheritance: A child class can acquire all properties and methods of a parent class and add its own.
(3) Polymorphism: The same method name can behave differently in different classes.
(4) Abstraction: Hiding the complex implementation details and showing only what is necessary.
What is Inheritance?
Inheritance is one of the most powerful features of OOP. It allows a new class (called the child class or
derived class) to inherit all the attributes and methods of an existing class (called the parent class or
base class). This promotes code reuse — you write the common functionality once in the parent, and
all child classes automatically get it. The child can also override inherited methods to give them
different behaviour, and can add entirely new methods of its own.
Page
Data Science: Python, AI & ML (COD1102) | Grade 11 | DBSE
# Parent class
class Animal:
def describe(self):
print(f'Name: {[Link]}, Age: {[Link]} years')
def speak(self):
print(f'{[Link]} makes a sound') # generic — will be
overridden
Page
Data Science: Python, AI & ML (COD1102) | Grade 11 | DBSE
💡 Concept Used:
Concepts Demonstrated: (1) Inheritance — Dog and Cat both inherit from Animal, so they get describe()
for free. (2) super().__init__() — calls the parent constructor to initialise shared attributes (name, age),
avoiding code repetition. (3) Method Overriding — both Dog and Cat define their own speak() method,
replacing the parent's generic version. (4) Polymorphism — both [Link]() and [Link]() call the same
method name but produce different output based on the object's type.
Q3. Write a complete Python program that creates a 'Student' class with attributes for name,
age, and marks. Include a method that calculates and returns the grade based on marks. Create
at least three student objects and print a formatted report. [6 marks]
✎ Answer:
This program demonstrates how OOP can model a real-world scenario — a school's student grading
system. Instead of using separate variables for each student, we create a Student class that bundles all
student data and the grading logic together. This makes the code organised, reusable, and easy to
extend.
The grading logic uses if-elif-else, which is a chain of conditions checked one by one. As soon as one
condition is True, its block runs and the rest are skipped.
class Student:
def grade(self):
'''Returns grade based on marks using if-elif-else'''
if [Link] >= 90:
return 'A — Outstanding'
elif [Link] >= 80:
return 'B — Very Good'
elif [Link] >= 70:
return 'C — Good'
elif [Link] >= 60:
return 'D — Satisfactory'
else:
return 'F — Fail (Need Improvement)'
def report(self):
'''Prints a formatted student report card'''
print('=' * 40)
print(f' Student Name : {[Link]}')
print(f' Age : {[Link]}')
print(f' Marks : {[Link]} / 100')
print(f' Grade : {[Link]()}')
print('=' * 40)
Page
Data Science: Python, AI & ML (COD1102) | Grade 11 | DBSE
# Printing reports
students = [s1, s2, s3]
for student in students:
[Link]()
Output: ========================================
Output: Student Name : Alice
Output: Age : 16
Output: Marks : 94 / 100
Output: Grade : A — Outstanding
Output: ========================================
Output: Student Name : Bob ... Grade: C — Good
Output: Student Name : Charlie ... Grade: F — Fail
💡 Concept Used:
Concepts Demonstrated: (1) Class design — the Student class combines name, age, marks as attributes,
and grade() and report() as methods. (2) if-elif-else chain — the grade() method checks conditions in
order from highest to lowest. (3) List of objects — storing s1, s2, s3 in a list and looping through them
shows how OOP and data structures work together. (4) String formatting with f-strings — makes output
clean and readable. (5) Docstrings (triple quotes inside methods) — document what the method does.
Q4. Explain control structures and loops in Python with detailed examples. Your answer must
cover: (a) if/elif/else, (b) while loop, (c) for loop with range(), and (d) the use of break and
continue. [6 marks]
✎ Answer:
Control structures are the decision-making tools of programming. Without them, every program
would execute every line from top to bottom exactly once — which is not very useful. Control
structures let us make decisions, repeat actions, and skip certain parts of code based on conditions.
Python has two categories: conditional statements (if/elif/else) and loops (while and for).
if age < 5:
print('Free entry')
elif age < 18:
print('Child ticket: Rs. 100')
elif age < 60:
print('Adult ticket: Rs. 250')
else:
print('Senior citizen ticket: Rs. 150')
condition eventually becomes False, otherwise the loop will run forever (called an infinite loop). A
common use is asking for input repeatedly until the user types something valid.
# Count down from 5 to 1
count = 5
while count > 0:
print(f'T-minus {count}...')
count -= 1 # count decreases each time, so condition
eventually becomes False
print('Blast off!')
Output: T-minus 5... T-minus 4... T-minus 3... T-minus 2... T-minus
1... Blast off!
Q5. Write a detailed explanation of Python Libraries covering: (a) what modules are and why
they are useful, (b) the math module with at least 5 functions, (c) the random module with 4
examples, (d) the os module and its uses, and (e) what tkinter is with a working GUI window
example. [6 marks]
✎ Answer:
Page
Data Science: Python, AI & ML (COD1102) | Grade 11 | DBSE
One of Python's greatest strengths is its vast ecosystem of modules and libraries. Instead of writing
every function from scratch, Python programmers can import pre-built, tested, optimised code from
modules. This follows the programming principle of 'Do not reinvent the wheel'.
Page
Data Science: Python, AI & ML (COD1102) | Grade 11 | DBSE
💡 Concept Used:
Summary of Modules Covered: math — mathematical calculations; random — generating randomness
for games and simulations; os — system-level file and folder operations; tkinter — building visual desktop
applications. Together, these modules demonstrate how Python's Standard Library covers a huge range
of tasks without installing anything extra. For even more powerful libraries (numpy for arrays, pandas for
data, matplotlib for graphs), you can install them using pip.
Page