0% found this document useful (0 votes)
43 views94 pages

Essential Python Interview Questions

This document contains a comprehensive list of Python interview questions and answers, covering fundamental concepts such as variable scope, iterators, and data types. It also addresses more advanced topics like memory management, algorithms, and error handling. The content is structured to assist candidates in preparing for both entry-level and intermediate Python interviews.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
43 views94 pages

Essential Python Interview Questions

This document contains a comprehensive list of Python interview questions and answers, covering fundamental concepts such as variable scope, iterators, and data types. It also addresses more advanced topics like memory management, algorithms, and error handling. The content is structured to assist candidates in preparing for both entry-level and intermediate Python interviews.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Python Interview Questions

These questions and answers cover some fundamental Python concepts that are often
discussed in interviews.

1) What is the di erence between global and local scope?

 A variable created inside a function belongs to the local scope of that function,
and can only be used inside that function.

 A variable created in the main body of the Python code is a global variable and
belongs to the global scope. Global variables are available from within any
scope, global and local.

2) What is an iterator in Python?

 An iterator is an object that contains a countable number of values.

 An iterator is an object that can be iterated upon, meaning that you can traverse
through all the values.

 Technically, in Python, an iterator is an object which implements the iterator


protocol, which consist of the methods __iter__() and __next__().

3) What is the __init__() function in Python?

 All classes in Python have a function called __init__(), which is always executed
when the class is being initiated.

 We can use the __init__() function to assign values to object properties, or other
operations that are necessary to do when the object is being created.

4) When should you use lambda functions in Python?

 Use lambda functions when an anonymous function is required for a short


period of time.

5) What is the di erence between lists, tuples and sets?

Lists, tuples, and sets are all used to store multiple items in a single variable, but they
have di erent properties:
 A list is ordered and changeable. It allows duplicate values.

 A tuple is ordered but unchangeable (immutable). It also allows duplicates.

 A set is unordered, unindexed, and contains only unique items. It is changeable,


but you cannot modify individual elements by index.

6) How can you check if all the characters in a string are alphanumeric?

 You can use the isalnum() method, which returns True if all the characters are
alphanumeric, meaning alphabet letter (a-z) and numbers (0-9).

7) How can you convert a string to an integer?

 You can use the int() function, like this:

num = "5"
convert = int(num)

8) What is indentation in Python, and why is it important?

 Indentation refers to the spaces at the beginning of a code line. Where in other
programming languages the indentation in code is for readability only, the
indentation in Python is very important.

 Python uses indentation to indicate a block of code.

 Python will give you an error if you skip the indentation.

9) What is the correct syntax to output the type of a variable or object in Python?

print(type(x))

10) Which collection does not allow duplicate members?

 SET

11) What is Inheritance in Python?


 Inheritance allows us to define a class that inherits all the methods and
properties from another class.

 Parent class is the class being inherited from, also called base class.

 Child class is the class that inherits from another class, also called derived
class.

12) What is the output of the following code?

x = 41

if x > 10:

print("Above ten,")

if x > 20:

print("and also above 20!")

else:

print("but not above 20.")

 Above ten,
and also above 20!

13) Can you list Python's primary built-in data types, in 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

14) What are Membership Operators?


 Membership operators are used to test if a sequence is present in an object.
The in and not in operators are examples of these:

x = ["apple", "banana"]
print("banana" in x) # returns True

x = ["apple", "banana"]
print("pineapple" not in x) # returns True

15) Which statement can be used to avoid errors if an if statement has no content?

 The pass statement

16) What are Arbitrary Arguments?

 Arbitrary Arguments are often shortened to *args in Python documentations.

 If you do not know how many arguments that will be passed into your function,
add a * before the parameter name in the function definition. This way the
function will receive a tuple of arguments, and can access the items accordingly.

17) How can you create and use a Module in Python??

 To create a module just save the code you want in a file with the file
extension .py:

def greeting(name):
print("Hello, " + name)

 Now we can use the module we just created, by using the import statement:

import mymodule

[Link]("Jonathan")

18) Can you copy a List in Python by simply writing: list2 = list1?

 No, because: list2 will only be a reference to list1, and changes made in list1 will
automatically also be made in list2.

 To make a copy of a list, you can use copy() or the list() method.
19) How can you return a range of characters of a string?

 You can return a range of characters by using the "slice syntax".

 Specify the start index and the end index, separated by a colon, to return a part
of the string, for example:

Get the characters from position 2 to position 5 (not included):

b = "Hello, World!"
print(b[2:5])

20) What is a class in Python, and how do you use it?

 A Class is like an object constructor, or a "blueprint" for creating objects.

 You can create a class with the class keyword:

class MyClass:
x=5

Now we can use the class named MyClass to create objects:

Create an object named p1, and print the value of x:

p1 = MyClass()
print(p1.x)

Basic Python Interview Questions

These are some of the questions you might encounter during an entry-level Python
interview.

1. What is Python, and list some of its key features.

Python is a versatile, high-level programming language known for its easy-to-read syntax
and broad applications. Here are some of Python’s key features:

 Simple and Readable Syntax: Python’s syntax is clear and straightforward,


making it accessible for beginners and e icient for experienced developers.

 Interpreted Language: Python executes code line by line, which helps in


debugging and testing.

 Dynamic Typing: Python does not require explicit data type declarations,
allowing more flexibility.
 Extensive Libraries and Frameworks: Libraries like NumPy, Pandas, and Django
expand Python’s functionality for specialized tasks in data science, web
development, and more.

 Cross-Platform Compatibility: Python can run on di erent operating systems,


including Windows, macOS, and Linux.

2. What are Python lists and tuples?

Lists and tuples are fundamental Python data structures with distinct characteristics
and use cases.

List:

 Mutable: Elements can be changed after creation.

 Memory Usage: Consumes more memory.

 Performance: Slower iteration compared to tuples but better for insertion and
deletion operations.

 Methods: O ers various built-in methods for manipulation.

Example:

a_list = ["Data", "Camp", "Tutorial"]

a_list.append("Session")

print(a_list) # Output: ['Data', 'Camp', 'Tutorial', 'Session']

Powered By

Tuple:

 Immutable: Elements cannot be changed after creation.

 Memory Usage: Consumes less memory.

 Performance: Faster iteration compared to lists but lacks the flexibility of lists.

 Methods: Limited built-in methods.

Example:

a_tuple = ("Data", "Camp", "Tutorial")

print(a_tuple) # Output: ('Data', 'Camp', 'Tutorial')

Powered By

Learn more in our Python Lists tutorial.


3. What is __init__() in Python?

The __init__() method is known as a constructor in object-oriented programming (OOP)


terminology. It is used to initialize an object's state when it is created. This method is
automatically called when a new instance of a class is instantiated.

Purpose:

 Assign values to object properties.

 Perform any initialization operations.

Example:

We have created a book_shop class and added the constructor and book() function. The
constructor will store the book title name and the book() function will print the book
name.

To test our code we have initialized the b object with “Sandman” and executed
the book() function.

class book_shop:

# constructor

def __init__(self, title):

[Link] = title

# Sample method

def book(self):

print('The tile of the book is', [Link])

b = book_shop('Sandman')

[Link]()

# The tile of the book is Sandman

Powered By

4. What is the di erence between a mutable data type and an immutable data
type?
Mutable data types:

 Definition: Mutable data types are those that can be modified after their
creation.

 Examples: List, Dictionary, Set.

 Characteristics: Elements can be added, removed, or changed.

 Use Case: Suitable for collections of items where frequent updates are needed.

Example:

# List Example

a_list = [1, 2, 3]

a_list.append(4)

print(a_list) # Output: [1, 2, 3, 4]

# Dictionary Example

a_dict = {'a': 1, 'b': 2}

a_dict['c'] = 3

print(a_dict) # Output: {'a': 1, 'b': 2, 'c': 3}

Powered By

Immutable data types:

 Definition: Immutable data types are those that cannot be modified after their
creation.

 Examples: Numeric (int, float), String, Tuple.

 Characteristics: Elements cannot be changed once set; any operation that


appears to modify an immutable object will create a new object.

Example:

# Numeric Example

a_num = 10

a_num = 20 # Creates a new integer object

print(a_num) # Output: 20
# String Example

a_str = "hello"

a_str = "world" # Creates a new string object

print(a_str) # Output: world

# Tuple Example

a_tuple = (1, 2, 3)

# a_tuple[0] = 4 # This will raise a TypeError

print(a_tuple) # Output: (1, 2, 3)

Powered By

5. Explain list, dictionary, and tuple comprehension with an example.

List

List comprehension o ers one-liner syntax to create a new list based on the values of
the existing list. You can use a for loop to replicate the same thing, but it will require you
to write multiple lines, and sometimes it can get complex.

List comprehension eases the creation of the list based on existing iterable.

my_list = [i for i in range(1, 10)]

my_list

# [1, 2, 3, 4, 5, 6, 7, 8, 9]

Powered By

Dictionary

Similar to a List comprehension, you can create a dictionary based on an existing table
with a single line of code. You need to enclose the operation with curly brackets {}.

# Creating a dictionary using dictionary comprehension

my_dict = {i: i**2 for i in range(1, 10)}

# Output the dictionary

my_dict
{1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64, 9: 81}

Powered By

Tuple

It is a bit di erent for Tuples. You can create Tuple comprehension using round
brackets (), but it will return a generator object, not a tuple comprehension.

You can run the loop to extract the elements or convert them to a list.

my_tuple = (i for i in range(1, 10))

my_tuple

# <generator object <genexpr> at 0x7fb91b151430>

Powered By

You can learn more about it in our Python Tuples tutorial.

6. What is the Global Interpreter Lock (GIL) in Python, and why is it important?

The Global Interpreter Lock (GIL) is a mutex used in CPython (the standard Python
interpreter) to prevent multiple native threads from executing Python bytecode
simultaneously. It simplifies memory management but limits multi-threading
performance for CPU-bound tasks. This makes threading in Python less e ective for
certain tasks, though it works well for I/O-bound operations.

Intermediate Python Interview Questions

Here are some of the questions you might encounter during an intermediate-level
Python interview.

7. Can you explain common searching and graph traversal algorithms in Python?

Python has a number of di erent powerful algorithms for searching and graph traversal,
and each one deals with di erent data structures and solves di erent problems. I can
them here:

 Binary Search: If you need to quickly find an item in a sorted list, binary
search is your go-to. It works by repeatedly dividing the search range in half until
the target is found.

 AVL Tree: An AVL tree keeps things balanced, which is a big advantage if you’re
frequently inserting or deleting items in a tree. This self-balancing binary search
tree structure keeps searches fast by making sure the tree never gets too
skewed.
 Breadth-First Search (BFS): BFS is all about exploring a graph level by level. It’s
especially useful if you’re trying to find the shortest path in an unweighted graph
since it checks all possible moves from each node before going deeper.

 Depth-First Search (DFS): DFS takes a di erent approach by exploring as far as


it can down each branch before backtracking. It’s great for tasks like maze-
solving or tree traversal.

 A Algorithm*: The A* algorithm is a bit more advanced and combines the best of
both BFS and DFS by using heuristics to find the shortest path e iciently. It’s
commonly used in pathfinding for maps and games.

8. What is a KeyError in Python, and how can you handle it?

A KeyError in Python occurs when you try to access a key that doesn’t exist in a
dictionary. This error is raised because Python expects every key you look up to be
present in the dictionary, and when it isn’t, it throws a KeyError.

For example, if you have a dictionary of student scores and try to access a student who
isn’t in the dictionary, you’ll get a KeyError. To handle this error, you have a few options:

 Use the .get() method: This method returns None (or a specified default value)
instead of throwing an error if the key isn’t found.

 Use a try-except block: Wrapping your code in try-except allows you to catch
the KeyError and handle it gracefully.

 Check for the key with in: You can check if a key exists in the dictionary using if
key in dictionary before trying to access it.

To learn more, read our full tutorial: Python KeyError Exceptions and How to Fix Them.

9. How does Python handle memory management, and what role does garbage
collection play?

Python manages memory allocation and deallocation automatically using a private


heap, where all objects and data structures are stored. The memory management
process is handled by Python’s memory manager, which optimizes memory usage, and
the garbage collector, which deals with unused or unreferenced objects to free up
memory.

Garbage collection in Python uses reference counting as well as a cyclic garbage


collector to detect and collect unused data. When an object has no more references, it
becomes eligible for garbage collection. The gc module in Python allows you to interact
with the garbage collector directly, providing functions to enable or disable garbage
collection, as well as to perform manual collection.
10. What is the di erence between shallow copy and deep copy in Python, and
when would you use each?

In Python, shallow and deep copies are used to duplicate objects, but they handle
nested structures di erently.

 Shallow Copy: A shallow copy creates a new object but inserts references to the
objects found in the original. So, if the original object contains other mutable
objects (like lists within lists), the shallow copy will reference the same inner
objects. This can lead to unexpected changes if you modify one of those inner
objects in either the original or copied structure. You can create a shallow copy
using the copy() method or the copy module’s copy() function.

 Deep Copy: A deep copy creates a new object and recursively copies all objects
found within the original. This means that even nested structures get duplicated,
so changes in one copy don’t a ect the other. To create a deep copy, you can use
the copy module’s deepcopy() function.

Example Usage: A shallow copy is suitable when the object contains only immutable
items or when you want changes in nested structures to reflect in both copies. A deep
copy is ideal when working with complex, nested objects where you want a completely
independent duplicate. Read our Python Copy List: What You Should Know tutorial to
learn more. This tutorial includes a whole section on the di erence between shallow
copy and deep copy.

11. How can you use Python’s collections module to simplify common tasks?

The collections module in Python provides specialized data structures


like defaultdict, Counter, deque, and OrderedDict to simplify various tasks. For
instance, Counter is ideal for counting elements in an iterable, while defaultdict can
initialize dictionary values without explicit checks.

Example:

from collections import Counter

data = ['a', 'b', 'c', 'a', 'b', 'a']

count = Counter(data)

print(count) # Output: Counter({'a': 3, 'b': 2, 'c': 1})

Powered By

Advanced Python Interview Questions

These interview questions are for more experienced Python practitioners.


12. What is monkey patching in Python?

Monkey patching in Python is a dynamic technique that can change the behavior of the
code at run-time. In short, you can modify a class or module at run-time.

Example:

Let’s learn monkey patching with an example.

1. We have created a class monkey with a patch() function. We have also created
a monk_p function outside the class.

2. We will now replace the patch with the monk_p function by


assigning [Link] to monk_p.

3. In the end, we will test the modification by creating the object using
the monkey class and running the patch() function.

Instead of displaying patch() is being called, it has displayed monk_p() is being called.

class monkey:

def patch(self):

print ("patch() is being called")

def monk_p(self):

print ("monk_p() is being called")

# replacing address of "patch" with "monk_p"

[Link] = monk_p

obj = monkey()

[Link]()

# monk_p() is being called

Powered By

13. What is the Python “with” statement designed for?


The with statement is used for exception handling to make code cleaner and simpler. It
is generally used for the management of common resources like creating, editing, and
saving a file.

Example:

Instead of writing multiple lines of open, try, finally, and close, you can create and write
a text file using the with statement. It is simple.

# using with statement

with open('myfi[Link]', 'w') as file:

fi[Link]('DataCamp Black Friday Sale!!!')

Powered By

14. Why use else in try/except construct in Python?

try: and except: are commonly known for exceptional handling in Python, so where
does else: come in handy? else: will be triggered when no exception is raised.

Example:

Let’s learn more about else: with a couple of examples.

1. On the first try, we entered 2 as the numerator and d as the denominator. Which
is incorrect, and except: was triggered with “Invalid input!”.

2. On the second try, we entered 2 as the numerator and 1 as the denominator and
got the result 2. No exception was raised, so it triggered the else: printing the
message Division is successful.

try:

num1 = int(input('Enter Numerator: '))

num2 = int(input('Enter Denominator: '))

division = num1/num2

print(f'Result is: {division}')

except:

print('Invalid input!')

else:

print('Division is successful.')
## Try 1 ##

# Enter Numerator: 2

# Enter Denominator: d

# Invalid input!

## Try 2 ##

# Enter Numerator: 2

# Enter Denominator: 1

# Result is: 2.0

# Division is successful.

Powered By

Take the Python Fundamentals skill track to gain the foundational skills you need to
become a Python programmer.

15. What are decorators in Python?

Decorators in Python are a design pattern that allows you to add new functionality to an
existing object without modifying its structure. They are commonly used to extend the
behavior of functions or methods.

Example:

def my_decorator(func):

def wrapper():

print("Something is happening before the function is called.")

func()

print("Something is happening after the function is called.")

return wrapper

@my_decorator

def say_hello():

print("Hello!")
say_hello()

# Output:

# Something is happening before the function is called.

# Hello!

# Something is happening after the function is called.

Powered By

16. What are context managers in Python, and how are they implemented?

Context managers in Python are used to manage resources, ensuring that they are
properly acquired and released. The most common use of context managers is
the with statement.

Example:

class FileManager:

def __init__(self, filename, mode):

self.filename = filename

[Link] = mode

def __enter__(self):

self.file = open(self.filename, [Link])

return self.file

def __exit__(self, exc_type, exc_value, traceback):

self.fi[Link]()

with FileManager('[Link]', 'w') as f:

[Link]('Hello, world!')

Powered By

In this example, the FileManager class is a context manager that ensures the file is
properly closed after it is used within the with statement.
17. What are metaclasses in Python, and how do they di er from regular classes?

Metaclasses are classes of classes. They define how classes behave and are created.
While regular classes create objects, metaclasses create classes. By using
metaclasses, you can modify class definitions, enforce rules, or add functionality
during class creation.

Example:

class Meta(type):

def __new__(cls, name, bases, dct):

print(f"Creating class {name}")

return super().__new__(cls, name, bases, dct)

class MyClass(metaclass=Meta):

pass

# Output: Creating class MyClass

Powered By

Python Data Science Interview Questions

For those focused more on data science applications of Python, these are some
questions you may encounter.

18. What are the advantages of NumPy over regular Python lists?

Memory

Numpy arrays consume less memory.

For example, if you create a list and a Numpy array of a thousand elements. The list will
consume 48K bytes, and the Numpy array will consume 8k bytes of memory.

Speed

Numpy arrays take less time to perform the operations on arrays than lists.

For example, if we are multiplying two lists and two Numpy arrays of 1 million elements
together. It took 0.15 seconds for the list and 0.0059 seconds for the array to operate.

Vesititly
Numpy arrays are convenient to use as they o er simple array multiple, addition, and a
lot more built-in functionality. Whereas Python lists are incapable of running basic
operations.

19. What is the di erence between merge, join, and concatenate?

Merge

Merge two DataFrames named series objects using the unique column identifier.

It requires two DataFrame, a common column in both DataFrame, and “how” you want
to join them together. You can left, right, outer, inner, and cross join two data
DataFrames. By default, it is an inner join.

[Link](df1, df2, how='outer', on='Id')

Powered By

Join

Join the DataFrames using the unique index. It requires an optional on argument that
can be a column or multiple column names. By default, the join function performs a left
join.

[Link](df2)

Powered By

Concatenate

Concatenate joins two or multiple DataFrames along a particular axis (rows or


columns). It doesn't require an on argument.

[Link](df1,df2)

Powered By

 join(): combines two DataFrames by index.

 merge(): combines two DataFrames by the column or columns you specify.

 concat(): combines two or more DataFrames vertically or horizontally.

20. How do you identify and deal with missing values?

Identifying missing values

We can identify missing values in the DataFrame by using the isnull() function and then
applying sum(). Isnull() will return boolean values, and the sum will give you the number
of missing values in each column.
In the example, we have created a dictionary of lists and converted it into a pandas
DataFrame. After that, we used isnull().sum() to get the number of missing values in
each column.

import pandas as pd

import numpy as np

# dictionary of lists

dict = {'id':[1, 4, [Link], 9],

'Age': [30, 45, [Link], [Link]],

'Score':[[Link], 140, 180, 198]}

# creating a DataFrame

df = [Link](dict)

[Link]().sum()

# id 1

# Age 2

# Score 1

Powered By

Dealing with missing values

There are various ways of dealing with missing values.

1. Drop the entire row or the columns if it consists of missing values using dropna().
This method is not recommended, as you will lose important information.

2. Fill the missing values with the constant, average, backward fill, and forward fill
using the fillna() function.

3. Replace missing values with a constant String, Integer, or Float using


the replace() function.

4. Fill in the missing values using an interpolation method.

Note: make sure you are working with a larger dataset while using
the dropna() function.
# drop missing values

[Link](axis = 0, how ='any')

#fillna

df.fillna(method ='bfill')

#replace null values with -999

[Link](to_replace = [Link], value = -999)

# Interpolate

[Link](method ='linear', limit_direction ='forward')

Powered By

Become a professional data scientist by taking the Data Scientist with Python career
track. It includes 25 courses and six projects to help you learn all the fundamentals of
data science with the help of Python libraries.

21. Which all Python libraries have you used for visualization?

Data visualization is the most important part of data analysis. You get to see your data in
action, and it helps you find hidden patterns.

The most popular Python data visualization libraries are:

1. Matplotlib

2. Seaborn
3. Plotly

4. Bokeh

In Python, we generally use Matplotlib and seaborn to display all types of data
visualization. With a few lines of code, you can use it to display scatter plot, line plot,
box plot, bar chart, and many more.

For interactive and more complex applications, we use Plotly. You can use it to create
colorful interactive graphs with a few lines of code. You can zoom, apply animation, and
even add control functions. Plotly provides more than 40 unique types of charts, and we
can even use them to create a web application or dashboard.

Bokeh is used for detailed graphics with a high level of interactivity across large
datasets.

22. How would you normalize or standardize a dataset in Python?

Normalization scales data to a specific range, usually [0, 1], while standardization
transforms it to have a mean of 0 and a standard deviation of 1. Both techniques are
essential for preparing data for machine learning models.

Example:

from [Link] import MinMaxScaler, StandardScaler

import numpy as np

data = [Link]([[1, 2], [3, 4], [5, 6]])

# Normalize

normalizer = MinMaxScaler()

normalized = normalizer.fit_transform(data)

print(normalized)

# Standardize

scaler = StandardScaler()

standardized = scaler.fit_transform(data)

print(standardized)
Powered By

Python Coding Interview Questions

If you have a Python coding interview coming up, preparing questions similar to these
can help you impress the interviewer.

23. How can you replace string space with a given character in Python?

It is a simple string manipulation challenge. You have to replace the space with a
specific character.

Example 1: A user has provided the string l vey u and the character o, and the output
will be loveyou.

Example 2: A user has provided the string D t C mpBl ckFrid yS le and the character a,
and the output will be DataCampBlackFridaySale.

In the str_replace() function, we will loop over each letter of the string and check if it is
space or not. If it consists of space, we will replace it with the specific character
provided by the user. Finally, we will be returning the modified string.

def str_replace(text,ch):

result = ''

for i in text:

if i == ' ':

i = ch

result += i

return result

text = "D t C mpBl ckFrid yS le"

ch = "a"

str_replace(text,ch)

# 'DataCampBlackFridaySale'

Powered By

24. Given a positive integer num, write a function that returns True if num is a
perfect square else False.
This has a relatively straightforward solution. You can check if the number has a perfect
square root by:

1. Finding the square root of the number and converting it into an integer.

2. Applying the square to the square root number and checking if it's a perfect
square root.

3. Returning the result as a boolean.

Test 1

We have provided number 10 to the valid_square() function.

1. By taking the square root of the number, we get 3.1622776601683795.

2. By converting it into an integer, we get 3.

3. Then, take the square of 3 and get 9.

4. 9 is not equal to the number, so the function will return False.

Test 2

We have provided number 36 to the valid_square() function.

1. By taking the square root of the number, we get 6.

2. By converting it into an integer, we get 6.

3. Then, take the square of 6 and get 36.

4. 36 is equal to the number, so the function will return True.

def valid_square(num):

square = int(num**0.5)

check = square**2==num

return check

valid_square(10)

# False

valid_square(36)

# True

Powered By

25. Given an integer n, return the number of trailing zeroes in n factorial n!


To pass this challenge, you have to first calculate n factorial (n!) and then calculate the
number of training zeros.

Finding factorial

In the first step, we will use a while loop to iterate over the n factorial and stop when the
n is equal to 1.

Calculating trailing zeros

In the second step, we will calculate the trailing zero, not the total number of zeros.
There is a huge di erence.

7! = 5040

Powered By

The seven factorials have a total of two zeros and only one trailing zero, so our solution
should return 1.

1. Convert the factorial number to a string.

2. Read it back and apply for a loop.

3. If the number is 0, add +1 to the result, otherwise break the loop.

4. Returns the result.

The solution is elegant but requires attention to detail.

def factorial_trailing_zeros(n):

fact = n

while n > 1:

fact *= n - 1

n -= 1

result = 0

for i in str(fact)[::-1]:

if i == "0":

result += 1
else:

break

return result

factorial_trailing_zeros(10)

#2

factorial_trailing_zeros(18)

#3

Powered By

Take the essential practicing coding interview questions course to prepare for your
next coding interviews in Python.

26. Can the String Be Split into Dictionary Words?

You are provided with a large string and a dictionary of the words. You have to find if the
input string can be segmented into words using the dictionary or not.
Image by Author

The solution is reasonably straightforward. You have to segment a large string at each
point and check if the string can be segmented to the words in the dictionary.

1. Run the loop using the length of the large string.

2. We will create two substrings.

3. The first substring will check each point in the large string from s[0:i]

4. If the first substring is not in the dictionary, it will return False.

5. If the first substring is in the dictionary, it will create the second substring using
s[i:0].

6. If the second substring is in the dictionary or the second substring is of zero


length, then return True. Recursively call can_segment_str() with the second
substring and return True if it can be segmented.

def can_segment_str(s, dictionary):

for i in range(1, len(s) + 1):

first_str = s[0:i]

if first_str in dictionary:
second_str = s[i:]

if (

not second_str

or second_str in dictionary

or can_segment_str(second_str, dictionary)

):

return True

return False

s = "datacamp"

dictionary = ["data", "camp", "cam", "lack"]

can_segment_string(s, dictionary)

# True

Powered By

27. Can you remove duplicates from a sorted array?

Given an integer sorted array in increasing order, remove the duplicate numbers such
that each unique element appears only once. Make sure you keep the final order of the
array the same.

It is impossible to change the length of the array in Python, so we will place the result in
the first part of the array. After removing duplicates, we will have k elements, and the
first k elements in the array should hold the results.

Image from LeetCode

Example 1: input array is [1,1,2,2], the function should return 2.

Example 2: input array is [1,1,2,3,3], the function should return 3.

Solution:

1. Run the loop for the range of 1 to the size of the array.
2. Check if the previous number is unique or not. We are comparing previous
elements with the current one.

3. If it is unique, update the array using insertIndex, which is 1 at the start, and add
+1 to the insertIndex.

4. Return insertIndex as it is the k.

This question is relatively straightforward once you know how. If you put more time into
understanding the statement, you can easily come up with a solution.

def removeDuplicates(array):

size = len(array)

insertIndex = 1

for i in range(1, size):

if array[i - 1] != array[i]:

# Updating insertIndex in our main array

array[insertIndex] = array[i]

# Incrementing insertIndex count by 1

insertIndex = insertIndex + 1

return insertIndex

array_1 = [1,2,2,3,3,4]

removeDuplicates(array_1)

#4

array_2 = [1,1,3,4,5,6,6]

removeDuplicates(array_2)

#5

Powered By

28. Can you find the missing number in the array?


You have been provided with the list of positive integers from 1 to n. All the numbers
from 1 to n are present except x, and you must find x.

Example:

4 5 3 2 8 1 6

 n=8

 missing number = 7

This question is a simple math problem.

1. Find the sum of all elements in the list.

2. By using arithmetic series sum formula, we will find the expected sum of the first
n numbers.

3. Return the di erence between the expected sum and the sum of the elements.

def find_missing(input_list):

sum_of_elements = sum(input_list)

# There is exactly 1 number missing

n = len(input_list) + 1

actual_sum = (n * ( n + 1 ) ) / 2

return int(actual_sum - sum_of_elements)

list_1 = [1,5,6,3,4]

find_missing(list_1)

#2

Powered By

29. Write a Python function to determine if a given string is a palindrome.

A string is a palindrome if it reads the same forward and backward.


Example:

def is_palindrome(s):

s = ''.join(e for e in s if [Link]()).lower() # Remove non-alphanumeric and convert to


lowercase

return s == s[::-1]

print(is_palindrome("A man, a plan, a canal: Panama")) # Output: True

print(is_palindrome("hello")) # Output: False

Powered By

Python Interview Questions for Facebook, Amazon, Apple, Netflix, and Google

Below, we’ve picked out some of the questions you might expect from the most sought-
after roles in the industries, those at Meta, Amazon, Google, and the like.

Facebook/Meta Python interview questions

The exact questions you’ll encounter at Meta depend largely on the role. However, you
might expect some of the following:

30. Can you find the maximum single sell profit?

You are provided with the list of stock prices, and you have to return the buy and sell
price to make the highest profit.

Note: We have to make maximum profit from a single buy/sell, and if we can’t make a
profit, we have to reduce our losses.

Example 1: stock_price = [8, 4, 12, 9, 20, 1], buy = 4, and sell = 20. Maximizing the
profit.

Example 2: stock_price = [8, 6, 5, 4, 3, 2, 1], buy = 6, and sell = 5. Minimizing the loss.

Solution:

1. We will calculate the global profit by subtracting global sell (the first element in
the list) from current buy (the second element in the list).

2. Run the loop for the range of 1 to the length of the list.

3. Within the loop, calculate the current profit using list elements and current buy
value.

4. If the current profit is greater than the global profit, change the global profit with
the current profit and global sell to the i element of the list.
5. If the current buy is greater than the current element of the list, change the
current buy with the current element of the list.

6. In the end, we will return global buy and sell value. To get global buy value, we
will subtract global sell from global profit.

The question is a bit tricky, and you can come up with your unique algorithm to solve the
problems.

def buy_sell_stock_prices(stock_prices):

current_buy = stock_prices[0]

global_sell = stock_prices[1]

global_profit = global_sell - current_buy

for i in range(1, len(stock_prices)):

current_profit = stock_prices[i] - current_buy

if current_profit > global_profit:

global_profit = current_profit

global_sell = stock_prices[i]

if current_buy > stock_prices[i]:

current_buy = stock_prices[i]

return global_sell - global_profit, global_sell

stock_prices_1 = [10,9,16,17,19,23]

buy_sell_stock_prices(stock_prices_1)

# (9, 23)

stock_prices_2 = [8, 6, 5, 4, 3, 2, 1]
buy_sell_stock_prices(stock_prices_2)

# (6, 5)

Powered By

Amazon Python interview questions

Amazon Python interview questions can vary greatly but could include:

31. Can you find a Pythagorean triplet in an array?

Write a function that returns True if there is a Pythagorean triplet that satisfies a2+ b2 =
c2.

Example:

Input Output

[3, 1, 4, 6, 5] True

[10, 4, 6, 12, 5] False

Solution:

1. Square all the elements in the array.

2. Sort the array in increasing order.

3. Run two loops. The outer loop starts from the last index of the array to 1, and the
inner loop starts from (outer_loop_index - 1) to the start.

4. Create set() to store the elements between outer loop index and inner loop index.

5. Check if there is a number present in the set which is equal


to (array[outerLoopIndex] – array[innerLoopIndex]). If yes, return True, else False.

def checkTriplet(array):

n = len(array)

for i in range(n):

array[i] = array[i]**2

[Link]()
for i in range(n - 1, 1, -1):

s = set()

for j in range(i - 1, -1, -1):

if (array[i] - array[j]) in s:

return True

[Link](array[j])

return False

arr = [3, 2, 4, 6, 5]

checkTriplet(arr)

# True

Powered By

32. How many ways can you make change with coins and a total amount?

We need to create a function that takes a list of coin denominations and total amounts
and returns the number of ways we can make the change.

In the example, we have provided coin denominations [1, 2, 5] and the total amount of
5. In return, we got five ways we can make the change.
Image by Author

Solution:

1. We will create the list of size amount + 1. Additional spaces are added to store
the solution for a zero amount.

2. We will initiate a solution list with 1.

3. We will run two loops. The outer loop will return the number of denominations,
and the inner loop will run from the range of the outer loop index to the amount
+1.

4. The results of di erent denominations are stored in the array solution. solution[i]
= solution[i] + solution[i - den]

5. The process will be repeated for all the elements in the denomination list, and at
the last element of the solution list, we will have our number.

def solve_coin_change(denominations, amount):

solution = [0] * (amount + 1)

solution[0] = 1

for den in denominations:

for i in range(den, amount + 1):


solution[i] += solution[i - den]

return solution[len(solution) - 1]

denominations = [1,2,5]

amount = 5

solve_coin_change(denominations,amount)

#4

Powered By

Google Python interview questions

As with the other companies mentioned, Google Python interview questions will
depend on the role and level of experience. However, some common questions include:

33. Define a lambda function, an iterator, and a generator in Python.

The Lambda function is also known as an anonymous function. You can add any
number of parameters but with only one statement.

An iterator is an object that we can use to iterate over iterable objects like lists,
dictionaries, tuples, and sets.

The generator is a function similar to a normal function, but it generates a value using
the yield keyword instead of return. If the function body contains yield, it automatically
becomes a generator.

Read more about Python iterators and generators in our full tutorial.

34. Given an array arr[], find the maximum j – i such that arr[j] > arr[i]

This question is quite straightforward but requires special attention to detail. We are
provided with an array of positive integers. We have to find the maximum di erence
between j-i where array[j] > array[i].

Examples:

1. Input: [20, 70, 40, 50, 12, 38, 98], Output: 6 (j = 6, i = 0)

2. Input: [10, 3, 2, 4, 5, 6, 7, 8, 18, 0], Output: 8 ( j = 8, i = 0)

Solution:
1. Calculate the length of the array and initiate max di erence with -1.

2. Run two loops. The outer loop picks elements from the left, and the inner loop
compares the picked elements with elements starting from the right side.

3. Stop the inner loop when the element is greater than the picked element and
keep updating the maximum di erence using j - I.

def max_index_di (array):

n = len(array)

max_di = -1

for i in range(0, n):

j=n-1

while(j > i):

if array[j] > array[i] and max_di < (j - i):

max_di = j - i

j -= 1

return max_di

array_1 = [20,70,40,50,12,38,98]

max_index_di (array_1)

#6

Powered By

35. How would you use the ternary operators in Python?

Ternary operators are also known as conditional expressions. They are operators that
evaluate expression based on conditions being True and False.

You can write conditional expressions in a single line instead of writing using multiple
lines of if-else statements. It allows you to write clean and compact code.

For example, we can convert nested if-else statements into one line, as shown below.

If-else statement
score = 75

if score < 70:

if score < 50:

print('Fail')

else:

print('Merit')

else:

print('Distinction')

# Distinction

Powered By

Nested Ternary Operator

print('Fail' if score < 50 else 'Merit' if score < 70 else 'Distinction')

# Distinction

Powered By

36. How would you implement an LRU Cache in Python?

Python provides a built-in functools.lru_cache decorator to implement an LRU (Least


Recently Used) cache. Alternatively, you can create one manually using
the OrderedDict from collections.

Example using functools:

from functools import lru_cache

@lru_cache(maxsize=3)

def add(a, b):

return a + b

print(add(1, 2)) # Calculates and caches result

print(add(1, 2)) # Retrieves result from cache


Basic Python Interview Questions for Freshers

Q1. What is the di erence between list and tuples in Python?

LIST vs TUPLES

LIST TUPLES

Lists are mutable i.e., they can be Tuples are immutable, meaning they cannot be edited after
edited. creation.

Lists are slower than tuples. Tuples are faster than lists.

Syntax: list_1 = [10, ‘Chelsea’, 20] Syntax: tup_1 = (10, ‘Chelsea’, 20)

Q2. What are the key features of Python?

 Python is an interpreted language. That means that, unlike languages like C and
its variants, Python does not need to be compiled before it is run. Other
interpreted languages include PHP and Ruby.

 Python is dynamically typed, this means that you don’t need to state the types
of variables when you declare them or anything like that. You can do things
like x=111 and then x="I'm a string" without error

 Python is well suited to object orientated programming in that it allows the


definition of classes along with composition and inheritance. Python does not
have access specifiers (like C++’s public, private).

 In Python, functions are first-class objects. This means that they can be
assigned to variables, returned from other functions and passed into functions.
Classes are also first class objects

 Writing Python code is quick but running it is often slower than compiled
languages. Fortunately,Python allows the inclusion of C-based extensions so
bottlenecks can be optimized away and often are. The numpy package is a good
example of this, it’s really quite quick because a lot of the number-crunching it
does isn’t actually done by Python

 Python finds use in many spheres – web applications, automation, scientific


modeling, big data applications and many more. It’s also often used as “glue”
code to get other languages and components to play nice. Learn more about Big
Data and its applications from theAzure data engineer training course.
Q3. What type of language is python? Programming or scripting?

Ans: Python is capable of scripting, but in general sense, it is considered as a general-


purpose programming language. To know more about Scripting, you can refer to the

[Link] an interpreted language. Explain.

Ans: An interpreted language is any programming language which is not in machine-


level code before runtime. Therefore, Python is an interpreted language.

[Link] is pep 8?

Ans: PEP stands for Python Enhancement Proposal. It is a set of rules that specify how
to format Python code for maximum readability.

[Link] are the benefits of using Python?

Ans: The benefits of using python are-

1.

1. Easy to use– Python is a high-level programming language that is easy to


use, read, write and learn.

2. Interpreted language– Since python is interpreted language, it executes


the code line by line and stops if an error occurs in any line.

3. Dynamically typed– the developer does not assign data types to


variables at the time of coding. It automatically gets assigned during
execution.

4. Free and open-source– Python is free to use and distribute. It is open


source.

5. Extensive support for libraries– Python has vast libraries that contain
almost any function needed. It also further provides the facility to import
other packages using Python Package Manager(pip).

6. Portable– Python programs can run on any platform without requiring any
change.

7. The data structures used in python are user friendly.

8. It provides more functionality with less coding.

[Link] are Python namespaces?


Ans: A namespace in python refers to the name which is assigned to each object in
python. The objects are variables and functions. As each object is created, its name
along with space(the address of the outer function in which the object is), gets created.
The namespaces are maintained in python like a dictionary where the key is the
namespace and value is the address of the object. There 4 types of namespace in
python-

1. Built-in namespace– These namespaces contain all the built-in objects in


python and are available whenever python is running.

2. Global namespace– These are namespaces for all the objects created at the
level of the main program.

3. Enclosing namespaces– These namespaces are at the higher level or outer


function.

4. Local namespaces– These namespaces are at the local or inner function.

[Link] are decorators in Python?

Ans: Decorators are used to add some design patterns to a function without changing
its structure. Decorators generally are defined before the function they are enhancing.
To apply a decorator we first define the decorator function. Then we write the function it
is applied to and simply add the decorator function above the function it has to be
applied to. For this, we use the @ symbol before the decorator.

[Link] are Dict and List comprehensions?

Ans: Dictionary and list comprehensions are just another concise way to define
dictionaries and lists.

Example of list comprehension is-

x=[i for i in range(5)]

The above code creates a list as below-

[0,1,2,3,4]

Example of dictionary comprehension is-


x=[i : i+2 for i in range(5)]

The above code creates a list as below-

[0: 2, 1: 3, 2: 4, 3: 5, 4: 6]

[Link] are the common built-in data types in Python?

Ans: The common built-in data types in python are-

Numbers– They include integers, floating-point numbers, and complex numbers. eg. 1,
7.9,3+4i

List– An ordered sequence of items is called a list. The elements of a list may belong to
di erent data types. Eg. [5,’market’,2.4]

Tuple– It is also an ordered sequence of elements. Unlike lists , tuples are immutable,
which means they can’t be changed. Eg. (3,’tool’,1)

String– A sequence of characters is called a string. They are declared within single or
double-quotes. Eg. “Sana”, ‘She is going to the market’, etc.

Set– Sets are a collection of unique items that are not in order. Eg. {7,6,8}

Dictionary– A dictionary stores values in key and value pairs where each value can be
accessed through its key. The order of items is not important. Eg. {1:’apple’,2:’mango}

Boolean– There are 2 boolean values- True and False.

[Link] is the di erence between .py and .pyc files?

Ans: The .py files are the python source code files. While the .pyc files contain the
bytecode of the python files. .pyc files are created when the code is imported from
some other source. The interpreter converts the source .py files to .pyc files which helps
by saving time.

[Link] is slicing in Python?

Ans: Slicing is used to access parts of sequences like lists, tuples, and strings. The
syntax of slicing is-[start:end:step]. The step can be omitted as well. When we
write [start:end] this returns all the elements of the sequence from the start (inclusive)
till the end-1 element. If the start or end element is negative i, it means the ith element
from the end. The step indicates the jump or how many elements have to be skipped.
Eg. if there is a list- [1,2,3,4,5,6,7,8]. Then [-[Link] will return elements starting from the
last element till the third element by printing every second element.i.e. [8,6,4].

[Link] are Keywords in Python?

Ans: Keywords in python are reserved words that have special [Link] are
generally used to define type of variables. Keywords cannot be used for variable or
function names. There are following 33 keywords in python-

 And

 Or

 Not

 If

 Elif

 Else

 For

 While

 Break

 As

 Def

 Lambda

 Pass

 Return

 True

 False

 Try

 With

 Assert

 Class

 Continue

 Del

 Except
 Finally

 From

 Global

 Import

 In

 Is

 None

 Nonlocal

 Raise

 Yield

[Link] are Literals in Python and explain about di erent Literals

Ans: A literal in python source code represents a fixed value for primitive data types.
There are 5 types of literals in python-

1. String literals– A string literal is created by assigning some text enclosed in


single or double quotes to a variable. To create multiline literals, assign the
multiline text enclosed in triple quotes. [Link]=”Tanya”

2. A character literal– It is created by assigning a single character enclosed in


double quotes. Eg. a=’t’

3. Numeric literals include numeric values that can be either integer, floating point
value, or a complex number. Eg. a=50

4. Boolean literals– These can be 2 values- either True or False.

5. Literal Collections– These are of 4 types-

a) List collections-Eg. a=[1,2,3,’Amit’]

b) Tuple literals- Eg. a=(5,6,7,8)

c) Dictionary literals- Eg. dict={1: ’apple’, 2: ’mango, 3: ’banana`’}

d) Set literals- Eg. {“Tanya”, “Rohit”, “Mohan”}

6. Special literal- Python has 1 special literal None which is used to return a null
variable.

[Link] are the new features added in Python [Link] version?

Ans: The new features in Python [Link] version are-


 New Dictionary functions Merge(|) and Update(|=)

 New String Methods to Remove Prefixes and Su ixes

 Type Hinting Generics in Standard Collections

 New Parser based on PEG rather than LL1

 New modules like zoneinfo and graphlib

 Improved Modules like ast, asyncio, etc.

 Optimizations such as optimized idiom for assignment, signal handling,


optimized python built ins, etc.

 Deprecated functions and commands such as deprecated parser and symbol


modules, deprecated functions, etc.

 Removal of erroneous methods, functions, etc.

Q16. How is memory managed in Python?

Ans: Memory is managed in Python in the following ways:

1. Memory management in python is managed by Python private heap space. All


Python objects and data structures are located in a private heap. The
programmer does not have access to this private heap. The python interpreter
takes care of this instead.

2. The allocation of heap space for Python objects is done by Python’s memory
manager. The core API gives access to some tools for the programmer to code.

3. Python also has an inbuilt garbage collector, which recycles all the unused
memory and so that it can be made available to the heap space.

Q17. What is namespace in Python?

Ans: A namespace is a naming system used to make sure that names are unique to
avoid naming conflicts.

Q18. What is PYTHONPATH?

Ans: It is an environment variable which is used when a module is imported. Whenever


a module is imported, PYTHONPATH is also looked up to check for the presence of the
imported modules in various directories. The interpreter uses it to determine which
module to load.

Q19. What are python modules? Name some commonly used built-in modules in
Python?
Ans: Python modules are files containing Python code. This code can either be
functions classes or variables. A Python module is a .py file containing executable code.

Some of the commonly used built-in modules are:

 os

 sys

 math

 random

 data time

 JSON

[Link] are local variables and global variables in Python?

Global Variables:

Variables declared outside a function or in global space are called global variables.
These variables can be accessed by any function in the program.

Local Variables:

Any variable declared inside a function is known as a local variable. This variable is
present in the local space and not in the global space.

Example:

a=2

def add():

b=3

c=a+b

print(c)

add()

Output: 5

When you try to access the local variable outside the function add(), it will throw an
error.

Q21. Is python case sensitive?


Ans: Yes. Python is a case sensitive language.

[Link] is type conversion in Python?

Ans: Type conversion refers to the conversion of one data type into another.

int() – converts any data type into integer type

float() – converts any data type into float type

ord() – converts characters into integer

hex() – converts integers to hexadecimal

oct() – converts integer to octal

tuple() – This function is used to convert to a tuple.

set() – This function returns the type after converting to set.

list() – This function is used to convert any data type to a list type.

dict() – This function is used to convert a tuple of order (key, value) into a dictionary.

str() – Used to convert integer into a string.

complex(real,imag) – This function converts real numbers to complex(real,imag)


number.

Q23. How to install Python on Windows and set path variable?

Ans: To install Python on Windows, follow the below steps:

 Install python from this link: [Link]

 After this, install it on your PC. Look for the location where PYTHON has been
installed on your PC using the following command on your command prompt:
cmd python.

 Then go to advanced system settings and add a new variable and name it as
PYTHON_NAME and paste the copied path.

 Look for the path variable, select its value and select ‘edit’.

 Add a semicolon towards the end of the value if it’s not present and then type
%PYTHON_HOME%

Q24. Is indentation required in python?

Ans: Indentation is necessary for Python. It specifies a block of code. All code within
loops, classes, functions, etc is specified within an indented block. It is usually done
using four space characters. If your code is not indented necessarily, it will not execute
accurately and will throw errors as well.

Q25. What is the di erence between Python Arrays and lists?

Ans: Arrays and lists, in Python, have the same way of storing data. But, arrays can hold
only a single data type elements whereas lists can hold any data type elements.

Example:

import array as arr

My_Array=[Link]('i',[1,2,3,4])

My_list=[1,'abc',1.20]

print(My_Array)

print(My_list)

Output:

array(‘i’, [1, 2, 3, 4])

[1, ‘abc’, 1.2]

Q26. What are functions in Python?

Ans: A function is a block of code which is executed only when it is called. To define
a Python function, the def keyword is used.

Example:

def Newfunc():

print("Hi, Welcome to Edureka")

Newfunc(); #calling the function

Output: Hi, Welcome to Edureka

[Link] is __init__?

Ans: __init__ is a method or constructor in Python. This method is automatically called


to allocate memory when a new object/ instance of a class is created. All classes have
the __init__ method.

Here is an example of how to use it.

class Employee:

def __init__(self, name, age,salary):


[Link] = name

[Link] = age

[Link] = 20000

E1 = Employee("XYZ", 23, 20000)

# E1 is the instance of class Employee.

#__init__ allocates memory for E1.

print([Link])

print([Link])

print([Link])

Output:

XYZ

23

20000

[Link] is a lambda function?

Ans: An anonymous function is known as a lambda function. This function can have any
number of parameters but, can have just one statement.

Example:

a = lambda x,y : x+y

print(a(5, 6))

Output: 11

Q29. What is self in Python?

Ans: Self is an instance or an object of a class. In Python, this is explicitly included as


the first parameter. However, this is not the case in Java where it’s optional. It helps to
di erentiate between the methods and attributes of a class with local variables.

The self variable in the init method refers to the newly created object while in other
methods, it refers to the object whose method was called.

[Link] is the use of Break, Continue and Pass Keyword in Python?

Allows loop termination when some condition is met and the


Break
control is transferred to the next statement.
Allows skipping some part of a loop when some specific condition
Continue
is met and the control is transferred to the beginning of the loop

Used when you need some block of code syntactically, but you
Pass want to skip its execution. This is basically a null operation.
Nothing happens when this is executed.

Q31. What does [::-1} do?

Ans: [::-1] is used to reverse the order of an array or a sequence.

For example:

import array as arr

My_Array=[Link]('i',[1,2,3,4,5])

My_Array[::-1]

Output: array(‘i’, [5, 4, 3, 2, 1])

[::-1] reprints a reversed copy of ordered data structures such as an array or a list. the
original array or list remains unchanged.

Q32. How can you randomize the items of a list in place in Python?

Ans:Consider the example shown below:

from random import shu le

x = ['Keep', 'The', 'Blue', 'Flag', 'Flying', 'High']

shu le(x)

print(x)

The output of the following code is as below.

['Flying', 'Keep', 'Blue', 'High', 'The', 'Flag']

Q33. What are python iterators?

Ans: Iterators are objects which can be traversed though or iterated upon.

Q34. How can you generate random numbers in Python?

Ans:Random module is the standard module that is used to generate a random number.
The method is defined as:

import random
[Link]

The statement [Link]() method return the floating-point number that is in the
range of [0, 1). The function generates random float numbers. The methods that are
used with the random class are the bound methods of the hidden instances. The
instances of the Random can be done to show the multi-threading programs that
creates a di erent instance of individual threads. The other random generators that are
used in this are:

1. randrange(a, b): it chooses an integer and define the range in-between [a, b). It
returns the elements by selecting it randomly from the range that is specified. It
doesn’t build a range object.

2. uniform(a, b): it chooses a floating point number that is defined in the range of
[a,b).Iyt returns the floating point number

3. normalvariate(mean, sdev): it is used for the normal distribution where the mu


is a mean and the sdev is a sigma that is used for standard deviation.

4. The Random class that is used and instantiated creates independent multiple
random number generators.

Q35. What is the di erence between range & xrange?

Ans:For the most part, xrange and range are the exact same in terms of functionality.
They both provide a way to generate a list of integers for you to use, however you please.
The only di erence is that range returns a Python list object and x range returns an
xrange object.

This means that xrange doesn’t actually generate a static list at run-time like range does.
It creates the values as you need them with a special technique called yielding. This
technique is used with a type of object known as generators. That means that if you
have a really gigantic range you’d like to generate a list for, say one billion, xrange is the
function to use.

This is especially true if you have a really memory sensitive system such as a cell phone
that you are working with, as range will use as much memory as it can to create your
array of integers, which can result in a Memory Error and crash your program. It’s a
memory hungry beast.

Q36. How do you write comments in python?

Ans: Comments in Python start with a # character. However, alternatively at times,


commenting is done using docstrings(strings enclosed within triple quotes).

Example:

#Comments in Python start like this


print("Comments in Python start with a #")

Output: Comments in Python start with a #

Q37. What is pickling and unpickling?

Ans:Pickle module accepts any Python object and converts


it into a string representation and dumps it into a file by using dump function, this
process is called pickling. While the process of retrieving original Python objects from
the stored string representation is called unpickling.

Q38. What are the generators in python?

Ans: Functions that return an iterable set of items are called generators.

Q39. How will you capitalize the first letter of string?

Ans: In Python, the capitalize() method capitalizes the first letter of a string. If the string
already consists of a capital letter at the beginning, then, it returns the original string.

Q40. How will you convert a string to all lowercase?

Ans: To convert a string to lowercase, lower() function can be used.

Example:

stg='ABCD'

print([Link]())

Output: abcd

Q41. How to comment multiple lines in python?

Ans: Multi-line comments appear in more than one line. All the lines to be commented
are to be prefixed by a #. You can also a very good shortcut method to comment
multiple lines. All you need to do is hold the ctrl key and left click in every place
wherever you want to include a # character and type a # just once. This will comment all
the lines where you introduced your cursor.

[Link] are docstrings in Python?

Ans: Docstrings are not actually comments, but, they are documentation strings.
These docstrings are within triple quotes. They are not assigned to any variable and
therefore, at times, serve the purpose of comments as well.

Example:

"""

Using docstring as a comment.


This code divides 2 numbers

"""

x=8

y=4

z=x/y

print(z)

Output: 2.0

Q43. What is the purpose of ‘is’, ‘not’ and ‘in’ operators?

Ans: Operators are special functions. They take one or more values and produce a
corresponding result.

is: returns true when 2 operands are true (Example: “a” is ‘a’)

not: returns the inverse of the boolean value

in: checks if some element is present in some sequence

Q44. What is the usage of help() and dir() function in Python?

Ans:Help() and dir() both functions are accessible from the Python interpreter and used
for viewing a consolidated dump of built-in functions.

1. Help() function: The help() function is used to display the documentation string
and also facilitates you to see the help related to modules, keywords, attributes,
etc.

2. Dir() function: The dir() function is used to display the defined symbols.

Q45. Whenever Python exits, why isn’t all the memory de-allocated?

Ans:

1. Whenever Python exits, especially those Python modules which are having
circular references to other objects or the objects that are referenced from the
global namespaces are not always de-allocated or freed.

2. It is impossible to de-allocate those portions of memory that are reserved by the


C library.

3. On exit, because of having its own e icient clean up mechanism, Python would
try to de-allocate/destroy every other object.

Q46. What is a dictionary in Python?


Ans:The built-in datatypes in Python is called dictionary. It defines one-to-one
relationship between keys and values. Dictionaries contain pair of keys and their
corresponding values. Dictionaries are indexed by keys.

Let’s take an example:

The following example contains some keys. Country, Capital & PM. Their corresponding
values are India, Delhi and Modi respectively.

dict={'Country':'India','Capital':'Delhi','PM':'Modi'}

print dict[Country]

Output:India

print dict[Capital]

Output:Delhi

print dict[PM]

Output:Modi

Q47. How can the ternary operators be used in python?

Ans:The Ternary operator is the operator that is used to show the conditional
statements. This consists of the true or false values with a statement that has to be
evaluated for it.

Syntax:

The Ternary operator will be given as:


[on_true] if [expression] else [on_false]x, y = 25, 50big = x if x < y else y

Example:

The expression gets evaluated like if x<y else y, in this case if x<y is true then the value is
returned as big=x and if it is incorrect then big=y will be sent as a result.

Q48. What does this mean: *args, **kwargs? And why would we use it?

Ans:We use *args when we aren’t sure how many arguments are going to be passed to a
function, or if we want to pass a stored list or tuple of arguments to a function. **kwargs
is used when we don’t know how many keyword arguments will be passed to a function,
or it can be used to pass the values of a dictionary as keyword arguments. The
identifiers args and kwargs are a convention, you could also use *bob and **billy but
that would not be wise.

Q49. What does len() do?

Ans: It is used to determine the length of a string, a list, an array, etc.


Example:

stg='ABCD'

len(stg)

Output:4

Q50. Explain split(), sub(), subn() methods of “re” module in Python.

Ans:To modify the strings, Python’s “re” module is providing 3 methods. They are:

 split() – uses a regex pattern to “split” a given string into a list.

 sub() – finds all substrings where the regex pattern matches and then replace
them with a di erent string

 subn() – it is similar to sub() and also returns the new string along with the no. of
replacements.

Q51. What are negative indexes and why are they used?

Ans:The sequences in Python are indexed and it consists of the positive as well as
negative numbers. The numbers that are positive uses ‘0’ that is uses as first index and
‘1’ as the second index and the process goes on like that.

The index for the negative number starts from ‘-1’ that represents the last index in the
sequence and ‘-2’ as the penultimate index and the sequence carries forward like the
positive number.

The negative index is used to remove any new-line spaces from the string and allow the
string to except the last character that is given as S[:-1]. The negative index is also used
to show the index to represent the string in correct order.

[Link] are Python packages?

Ans: Python packages are namespaces containing multiple modules.

Q53. How can files be deleted in Python?

Ans: To delete a file in Python, you need to import the OS Module. After that, you need
to use the [Link]() function.

Example:

import os

[Link]("[Link]")

Q54. What are the di erent types of variables in Python OOP?


Ans: Variables can be used to store data of di erent types. Python has the following
data types built-in by default, 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
None Type: NoneType

You can get the data type of any object by using the type() function.

Q55. What advantages do NumPy arrays o er over (nested) Python lists?

Ans:

1. Python’s lists are e icient general-purpose containers. They support (fairly)


e icient insertion, deletion, appending, and concatenation, and Python’s list
comprehensions make them easy to construct and manipulate.

2. They have certain limitations: they don’t support “vectorized” operations like
elementwise addition and multiplication, and the fact that they can contain
objects of di ering types mean that Python must store type information for every
element, and must execute type dispatching code when operating on each
element.

3. NumPy is not just more e icient; it is also more convenient. You get a lot of
vector and matrix operations for free, which sometimes allow one to avoid
unnecessary work. And they are also e iciently implemented.

4. NumPy array is faster and You get a lot built in with NumPy, FFTs, convolutions,
fast searching, basic statistics, linear algebra, histograms, etc.

[Link] to add values to a python array?

Ans: Elements can be added to an array using the append(), extend() and the insert
(i,x) functions.

Example:

a=[Link]('d', [1.1 , 2.1 ,3.1] )

[Link](3.4)

print(a)

[Link]([4.5,6.3,6.8])
print(a)

[Link](2,3.8)

print(a)

Output:

array(‘d’, [1.1, 2.1, 3.1, 3.4])

array(‘d’, [1.1, 2.1, 3.1, 3.4, 4.5, 6.3, 6.8])

array(‘d’, [1.1, 2.1, 3.8, 3.1, 3.4, 4.5, 6.3, 6.8])

Q57. How to remove values to a python array?

Ans: Array elements can be removed using pop() or remove() method. The di erence
between these two functions is that the former returns the deleted value whereas the
latter does not.

Example:

a=[Link]('d', [1.1, 2.2, 3.8, 3.1, 3.7, 1.2, 4.6])

print([Link]())

print([Link](3))

[Link](1.1)

print(a)

Output:

4.6

3.1

array(‘d’, [2.2, 3.8, 3.7, 1.2])

[Link] Python have OOPS concepts?

Ans: Python is an object-oriented programming language. This means that any program
can be solved in python by creating an object model. However, Python can be treated as
a procedural as well as structural language.

Check out this AI and ML course in collaboration with Illinois Tech to learn Python
usage in Generative AI and ML and build a successful career.

Q59. What is the di erence between deep and shallow copy?

Ans:Shallow copy is used when a new instance type gets created and it keeps the
values that are copied in the new instance. Shallow copy is used to copy the reference
pointers just like it copies the values. These references point to the original objects and
the changes made in any member of the class will also a ect the original copy of
it. Shallow copy allows faster execution of the program and it depends on the size of the
data that is used.

Deep copy is used to store the values that are already copied. Deep copy doesn’t copy
the reference pointers to the objects. It makes the reference to an object and the new
object that is pointed by some other object gets stored. The changes made in the
original copy won’t a ect any other copy that uses the object. Deep copy makes
execution of the program slower due to making certain copies for each object that is
been called.

Q60. How is Multithreading achieved in Python?

Ans:

1. Python has a multi-threading package but if you want to multi-thread to speed


your code up, then it’s usually not a good idea to use it.

2. Python has a construct called the Global Interpreter Lock (GIL). The GIL makes
sure that only one of your ‘threads’ can execute at any one time. A thread
acquires the GIL, does a little work, then passes the GIL onto the next thread.

3. This happens very quickly so to the human eye it may seem like your threads are
executing in parallel, but they are really just taking turns using the same CPU
core.

4. All this GIL passing adds overhead to execution. This means that if you want to
make your code run faster then using the threading package often isn’t a good
idea.

[Link] is the process of compilation and linking in python?

Ans:The compiling and linking allow the new extensions to be compiled properly
without any error and the linking can be done only when it passes the compiled
procedure. If the dynamic loading is used then it depends on the style that is being
provided with the system. The python interpreter can be used to provide the dynamic
loading of the configuration setup files and will rebuild the interpreter.

The steps that are required in this as:

1. Create a file with any name and in any language that is supported by the
compiler of your system. For example file.c or fi[Link]

2. Place this file in the Modules/ directory of the distribution which is getting used.

3. Add a line in the file [Link] that is present in the Modules/ directory.
4. Run the file using spam file.o

5. After a successful run of this rebuild the interpreter by using the make command
on the top-level directory.

6. If the file is changed then run rebuildMakefile by using the command as ‘make
Makefile’.

[Link] are Python libraries? Name a few of them.

Ans. Python libraries are a collection of Python packages. Some of the majorly used
python libraries are – Numpy, Pandas, Matplotlib, Scikit-learn and many more.

Q63. What is split used for?

Ans. The split() method is used to separate a given String in Python.

Example:

a="edureka python"

print([Link]())

Output: [‘edureka’, ‘python’]

Q64. What are immutable and mutable data types?

Ans. Data types in Python are categorized into mutable and immutable data types.

 Mutable Data Type – A mutable data type is those whose values can be
changed. Example: List, Dictionaries, and Set

 Immutable Data Type – An immutable data type is one in which the values can’t
be changed or altered. Example: String and Tuples

 Mutable Immutable

Data type whose values can be Data types whose values can’t be
Definition
changed after creation. changed or altered.

Retains the same memory


Memory Any modification results in a new
location even after the content is
Location object and new memory location
modified.

It is memory-e icient, as no new It might be faster in some


Performance objects are created for frequent scenarios as there’s no need to
changes. track changes.
When you want to ensure data
When you need to modify, add, or
Use-cases remains consistent and
remove existing data frequently.
unaltered.

Example List, Dictionaries, Set Strings, Types, Integer

Q65. What is the use of try and except block in Python?

Ans. The try block is used to check some code for errors i.e the code inside the try block
will execute when there is no error in the program. Whereas the code inside the except
block will execute whenever the program encounters some error in the preceding try
block.

Syntax:

try:

#Code 1

except:

#Code 2

The try clause is executed first i.e. the code between try. If there is no exception, then
only the try clause will run, except clause is finished. If any exception occurs, the try
clause will be skipped and except clause will run. If any exception occurs, but the
except clause within the code doesn’t handle it, it is passed on to the outer try
statements. If the exception is left unhandled, then the execution stops. A try statement
can have more than one except clause.

Q66. What is an ordered dictionary in Python?

Ans. OrderedDict() is used to maintains the sequence in which keys are added,
ensuring that the order is preserved during iteration. In contrast, a standard dictionary
does not guarantee any specific order when iterated, providing values in an arbitrary
sequence. OrderedDict() distinguishes itself by retaining the original insertion order of
items.

Q67. What is the di erence between ‘return’ and ‘yield’ keywords?


Ans. In Python, ‘return’ sends a value and terminates a function, while ‘yield’ produces
a value but retains the function’s state, allowing it to resume from where it left o .

YIELD RETURN

It replace the return of a function to suspend its It exits from a function and
execution without destroying local variables. handing back a value to its caller.

It is used when the generator returns an It is used when a function is ready


intermediate result to the caller. to send a value.

Code written after yield statement execute in next while, code written after return
function call. statement wont execute.

It can run multiple times. It only runs single time.

Yield statement function is executed from the last Every function calls run the
state from where the function get paused. function from the start.

Q68. What’s the di erence between a set() and a frozenset()?

Ans. Set and frozenset are two built-in collection data types in Python that are used to
store a collection of unique elements. While set is mutable, meaning that we can add,
remove, or change elements in a set, frozenset is immutable and cannot be modified
after creation.

Q69. What are the ways to swap the values of two elements?
Ans. The below program can be used to swap the value in a List:

# Swap function

def swapPositions(list, pos1, pos2)

list[pos1], list[pos2] = list[pos2], list[pos1]

return list

# Driver function

List = [23, 65, 19, 90]

pos1, pos2 = 1, 3

print(swapPositions(List, pos1-1, pos2-1))


Output: [19, 65, 23, 90]

Q70. How to import modules in python?

Ans. Modules can be imported using the import keyword. You can import modules in
three ways-

Example:

import array #importing using the original module name

import array as arr # importing using an alias name

from array import * #imports everything present in the array module

Next, in this Interview Questions blog, let’s have a look at Object Oriented Concepts in
Python.

These Python Interview Questions and Answers will help you prepare for Python job
interviews. Start your preparation by going through the most frequently asked questions
on Python.

OOPS Python Interview Questions

Q71. Explain Inheritance in Python with an example.

Ans:Inheritance allows One class to gain all the members(say attributes and methods)
of another class. Inheritance provides code reusability, makes it easier to create and
maintain an application. The class from which we are inheriting is called super-class
and the class that is inherited is called a derived / child class.

They are di erent types of inheritance supported by Python:

1. Single Inheritance – where a derived class acquires the members of a single


super class.

2. Multi-level inheritance – a derived class d1 in inherited from base class base1,


and d2 are inherited from base2.

3. Hierarchical inheritance – from one base class you can inherit any number of
child classes

4. Multiple inheritance – a derived class is inherited from more than one base
class.
Q72. How are classes created in Python?

Ans: Class in Python is created using the class keyword.

Example:

class Employee:

def __init__(self, name):

[Link] = name

E1=Employee("abc")

print([Link])

Output: abc

Q73. What is monkey patching in Python?

Ans:In Python, the term monkey patch only refers to dynamic modifications of a class
or module at run-time.

Consider the below example:

# [Link]

class MyClass:

def f(self):

print "f()"

We can then run the monkey-patch testing like this:

import m

def monkey_f(self):

print "monkey_f()"

[Link].f = monkey_f

obj = [Link]()

obj.f()

The output will be as below:

monkey_f()

As we can see, we did make some changes in the behavior of f() in MyClass using the
function we defined, monkey_f(), outside of the module m.
Q74. Does python support multiple inheritance?

Ans: Multiple inheritance means that a class can be derived from more than one parent
classes. Python does support multiple inheritance, unlike Java.

Q75. What is Polymorphism in Python?

Ans: Polymorphism means the ability to take multiple forms. So, for instance, if the
parent class has a method named ABC then the child class also can have a method
with the same name ABC having its own parameters and variables. Python allows
polymorphism.

Q76. Define encapsulation in Python?

Ans: Encapsulation means binding the code and the data together. A Python class in an
example of encapsulation.

Q77. How do you do data abstraction in Python?

Ans: Data Abstraction is providing only the required details and hiding the
implementation from the world. It can be achieved in Python by using interfaces and
abstract classes.

[Link] python make use of access specifiers?

Ans: Python does not deprive access to an instance variable or function. Python lays
down the concept of prefixing the name of the variable, function or method with a single
or double underscore to imitate the behavior of protected and private access
specifiers.

Q79. How to create an empty class in Python?

Ans: An empty class is a class that does not have any code defined within its block. It
can be created using the pass keyword. However, you can create objects of this class
outside the class itself. IN PYTHON THE PASS command does nothing when its
executed. it’s a null statement.

For example-

class a:

pass

obj=a()

[Link]="xyz"

print("Name = ",[Link])

Output:
Name = xyz

Q80. What does an object() do?

Ans: It returns a featureless object that is a base for all classes. Also, it does not take
any parameters.

Next, let’s have a look at some Python Pandas Questions in this Python Interview
Questions.

Python Pandas Interview Questions

Q81. What do you know about Pandas in Python?

Ans. Pandas is a data manipulation package in Python for tabular data. That is, data in
the form of rows and columns, also known as DataFrames. Intuitively, you can think of a
DataFrame as an Excel sheet. Pandas’ functionality includes data transformations, like
sorting rows and taking subsets, to calculating summary statistics such as the mean,
reshaping DataFrames, and joining DataFrames together. pandas works well with other
popular Python data science packages, often called the PyData ecosystem, including

 NumPy for numerical computing

 Matplotlib, Seaborn, Plotly, and other data visualization packages

 scikit-learn for machine learning

pandas is used throughout the data analysis workflow. With pandas, you can:

 Import datasets from databases, spreadsheets, comma-separated values (CSV)


files, and more.

 Clean datasets, for example, by dealing with missing values.

 Tidy datasets by reshaping their structure into a suitable format for analysis.

 Aggregate data by calculating summary statistics such as the mean of columns,


correlation between them, and more.

 Visualize datasets and uncover insights.

pandas also contains functionality for time series analysis and analyzing text data.

Q82. Define a Dataframe in Pandas?

A Pandas DataFrame is a 2 dimensional data structure, like a 2 dimensional array, or a


table with rows and columns. Below is an example of how to create a Dataframe using
Pandas:

[Python]
import pandas as pd
data = {“Fruits”: [“Apple”, “Mango”, “Orange”],”Quantity”: [4, 8, 7]}
df = [Link](data)
print(df)
[/python]

Output:

Fruits Quantity
0 Apple 4
1 Mango 8
2 Orange 7

[Link] to combine dataframes in pandas?

Ans: The dataframes in Python can be combined in the following ways-

1. Concatenating them by stacking the 2 dataframes vertically.

2. Concatenating them by stacking the 2 dataframes horizontally.

3. Combining them on a common column. This is referred to as joining.

The concat() function is used to concatenate two dataframes. Its syntax


is- [Link]([dataframe1, dataframe2]).

Dataframes are joined together on a common column called a key. When we combine
all the rows in dataframe it is a union and the join used is outer join. While, when we
combine the common rows or intersection, the join used is the inner join. Its syntax
is- [Link]([dataframe1, dataframe2], axis=’axis’, join=’type_of_join)

[Link] to create a series from the dictionary object in pandas?

Ans. To make a series from a dictionary, simply pass the dictionary to the command
[Link] method. The keys of the dictionary form the index values of the series
and the values of the dictionary form the values of the series.

&amp;amp;lt;/div&amp;amp;gt;

&amp;amp;lt;div&amp;amp;gt;

import pandas as pd

# Create the data of the series as a dictionary

ser_data = {'A': 5, 'B': 10, 'C': 15, 'D': 20, 'E': 25}
# Create the series

ser = [Link](ser_data)

print(ser)

Output:

A 5
B 10
C 15
D 20
E 25

Q85. How to identify and deal with missing values in a dataframe?

Ans. To check for missing values in a Pandas dataframe, we use isnull() and notnull()
functions. Both the functions help in checking whether a value is NaN or not. These
functions can also be used with Panda series to identify null value in the series.

Q.86 What is reindexing in Pandas?

Ans. You can modify a DataFrame’s row and column index using reindexing in Pandas.
Indexes can be used with reference to many index DataStructure associated with
several pandas series or pandas DataFrame.

Q87. How to delete row and column from a dataframe in Pandas?

Ans. A Pandas dataframe is a two dimensional data structure which allows you to store
data in rows and columns. To drop a row or column in a dataframe, you need to use the
drop() method available in the dataframe.

Syntax: [Link](labels=None, axis=0, index=None, columns=None,


level=None, inplace=False, errors=’raise’)

Parameters:

 labels: String or list of strings referring row or column name.

 axis: int or string value, 0 ‘index’ for Rows and 1 ‘columns’ for Columns.

 index or columns: Single label or list. index or columns are an alternative to axis
and cannot be used together. level: Used to specify level in case data frame is
having multiple level index.

 inplace: Makes changes in original Data Frame if True.


 errors: Ignores error if any value from the list doesn’t exists and drops rest of the
values when errors = ‘ignore’

Return type: Dataframe with dropped values.

Q88. How to add new column to pandas dataframe?

Ans. To add a new column to an existing dataframe, we can do that using


[Link](). The below code is an example of adding a column to an existing
dataframe:

import pandas as pd

# Define a dictionary containing Students data

data = {'Name': ['John', 'Sam', 'Michel', 'Adam','Justin'],

&amp;amp;amp;nbsp;&amp;amp;amp;nbsp;&amp;amp;amp;nbsp;&amp;amp;amp;n
bsp;&amp;amp;amp;nbsp;&amp;amp;amp;nbsp; 'Age': [24, 22, 25, 24, 26],

&amp;amp;amp;nbsp;&amp;amp;amp;nbsp;&amp;amp;amp;nbsp;&amp;amp;amp;n
bsp;&amp;amp;amp;nbsp;&amp;amp;amp;nbsp; 'Qualification': ['BE', 'MBA', 'Msc',
'Msc','MBA']}

# Convert the dictionary into DataFrame

df = [Link](data)

print(df)

# Using [Link]() to add a column

[Link](2, "GPA", [4, 3.8, 3, 3.5, 3.6], True)

print('nDataframe after insertionn')

# Observe the result

print(df)

Output:

Name Age Qualification


0 John 24 BE

1 Sam 22 MBA

2 Michel 25 Msc

3 Adam 24 Msc

4 Justin 26 MBA

Dataframe after insertion

Name Age GPA Qualification

0 John 24 4.0 BE

1 Sam 22 3.8 MBA

2 Michel 25 3.0 Msc

3 Adam 24 3.5 Msc

4 Justin 26 3.6 MBA

Q89. How to get items of series A that are not available in another series B?

Ans. The below program will help you in identifying items in series A but no in series B:

import pandas as pd

# Creating 2 pandas Series

ps1 = [Link]([2, 4, 8, 20, 10, 47, 99])

ps2 = [Link]([1, 3, 6, 4, 10, 99, 50])

print("Series 1:")

print(ps1)

print("nSeries 2:")
print(ps2)

# Using Bitwise NOT operator along

# with [Link]()

print("nItems of Series 1 not present in Series 2:")

res = ps1[~[Link](ps2)]

print(res)

Output:

Series 1:

0 2

1 4

2 8

3 20

4 10

5 47

6 99

Series 2:

0 1

1 3

2 6

3 4

4 10

5 99

6 50

Items of Series 1 not present in Series 2:


0 2

2 8

3 20

5 47

Q90. How to get the items that are not common to both the given series A and B?

Ans. The below program is to identify the elements which are not common in both
series:

import pandas as pd

import numpy as np

sr1 = [Link]([1, 2, 3, 4, 5])

sr2 = [Link]([2, 4, 6, 8, 10])

print("Original Series:")

print("sr1:")

print(sr1)

print("sr2:")

print(sr2)

print("nItems of a given series not present in another given series:")

sr11 = [Link](np.union1d(sr1, sr2))

sr22 = [Link](np.intersect1d(sr1, sr2))

result = sr11[~[Link](sr22)]

print(result)

Output:

Original Series:

sr1:

0 1
1 2

2 3

3 4

4 5

sr2:

0 2

1 4

2 6

3 8

4 10

Items of a given series not present in another given series:

0 1

2 3

4 5

5 6

6 8

7 10

Next, let us have a look at some Basic Python Programs in these Python Interview
Questions.

Before moving ahead, you may go through the recording of Python Code Interview
Questions and Answers where our instructor has shared his experience and expertise
that will help you to crack any Python Interview:

Top 50 Python Code Interview Questions | Python Interview Questions And Answers |
Edureka

If you have other doubts regarding Python or about this Python Interview Questions
blog, feel free to post them in our QnA Forum. Our expert team will get back to you at
the earliest.
Want to Upskill yourself to get ahead in your Career? Check out the Top Trending
Technologies in 2025 or join our masters in python programming course.

Basic Python Programs – Interview Questions

Q91. Write a program in Python to execute the Bubble sort algorithm.

def bs(a):

# a = name of list

b=len(a)-1nbsp;

# minus 1 because we always compare 2 adjacent values

for x in range(b):

for y in range(b-x):

a[y]=a[y+1]

a=[32,5,3,6,7,54,87]

bs(a)

Output: [3, 5, 6, 7, 32, 54, 87]

Q92. Write a program in Python to produce Star triangle.

def pyfunc(r):

for x in range(r):

print(' '*(r-x-1)+'*'*(2*x+1))

pyfunc(9)

Output:

***

*****

*******

*********

***********

*************
***************

*****************

Q93. Write a program to produce Fibonacci series in Python.

# Enter number of terms needednbsp;#0,1,1,2,3,5....

a=int(input("Enter the terms"))

f=0;#first element of series

s=1#second element of series

if a=0:

print("The requested series is",f)

else:

print(f,s,end=" ")

for x in range(2,a):

print(next,end=" ")

f=s

s=next

Output: Enter the terms 5 0 1 1 2 3

Q94. Write a program in Python to check if a number is prime.

a=int(input("enter number"))

if a=1:

for x in range(2,a):

if(a%x)==0:

print("not prime")

break

else:

print("Prime")
else:

print("not prime")

Output:

enter number 3

Prime

Q95. Write a program in Python to check if a sequence is a Palindrome.

a=input("enter sequence")

b=a[::-1]

if a==b:

print("palindrome")

else:

print("Not a Palindrome")

Output:

enter sequence 323 palindrome

Q96. Write a one-liner that will count the number of capital letters in a file. Your
code should work even if the file is too big to fit in memory.

Ans:Let us first write a multiple line solution and then convert it to one-liner code.

with open(SOME_LARGE_FILE) as fh:

count = 0

text = [Link]()

for character in text:

if [Link]():

count += 1

We will now try to transform this into a single line.

count sum(1 for line in fh for character in line if [Link]())

Q97. Write a sorting algorithm for a numerical dataset in Python.

Ans:The following code can be used to sort a list in Python:

list = ["1", "4", "0", "6", "9"]


list = [int(i) for i in list]

[Link]()

print (list)

Q98. Looking at the below code, write down the final values of A0, A1, …An.

A0 = dict(zip(('a','b','c','d','e'),(1,2,3,4,5)))

A1 = range(10)A2 = sorted([i for i in A1 if i in A0])

A3 = sorted([A0[s] for s in A0])

A4 = [i for i in A1 if i in A3]

A5 = {i:i*i for i in A1}

A6 = [[i,i*i] for i in A1]

print(A0,A1,A2,A3,A4,A5,A6)

Ans:The following will be the final outputs of A0, A1, … A6

A0 = {'a': 1, 'c': 3, 'b': 2, 'e': 5, 'd': 4} # the order may vary

A1 = range(0, 10)

A2 = []

A3 = [1, 2, 3, 4, 5]

A4 = [1, 2, 3, 4, 5]

A5 = {0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64, 9: 81}

A6 = [[0, 0], [1, 1], [2, 4], [3, 9], [4, 16], [5, 25], [6, 36], [7, 49], [8, 64], [9, 81]]

Q99. Write a program in Python to print the given number is odd or even.

&amp;amp;lt;/pre&amp;amp;gt;

def check_odd_even(number):

if number % 2 == 0:

print(f"{number} is even.")

else:

print(f"{number} is odd.")

# Input from the user


num = int(input("Enter a number: "))

# Checking if the number is odd or even

check_odd_even(num)

&amp;amp;lt;pre&amp;amp;gt;

In this program a function named check_odd_even() is defined which takes a number as


input and prints whether it’s odd or even. After the program is executed, it will prompt
the user to enter a number and calls this function to determine if the entered number is
odd or even.

Q100. Write a program to check if the given number is Armstrong or not.

&amp;amp;lt;/pre&amp;amp;gt;

def is_armstrong(num):

# Calculate the number of digits in the number

num_digits = len(str(num))

# Initialize sum to store the result

sum = 0

# Temporary variable to store the original number

temp = num

# Calculate Armstrong sum

while temp &amp;amp;gt; 0:

digit = temp % 10

sum += digit ** num_digits

temp //= 10

# Check if the number is Armstrong or not


if num == sum:

return True

else:

return False

# Input from the user

number = int(input("Enter a number: "))

# Check if the number is Armstrong or not

if is_armstrong(number):

print(f"{number} is an Armstrong number.")

else:

print(f"{number} is not an Armstrong number.")

&amp;amp;lt;pre&amp;amp;gt;

In this program the function is_armstrong() which takes a number as input and
returns True if it’s an Armstrong number, otherwise False. It will prompt the user to
enter a number and calls this function to determine if the entered number is an
Armstrong number or not when executed.

Q101. Write a Python Program for calculating simple interest.

def calculate_simple_interest(principal, rate, time):

# Simple interest formula: SI = (P * R * T) / 100

simple_interest = (principal * rate * time) / 100

return simple_interest

# Input from the user

principal = float(input("Enter the principal amount: "))


rate = float(input("Enter the annual interest rate (in percentage): "))

time = float(input("Enter the time period (in years): "))

# Calculate simple interest

interest = calculate_simple_interest(principal, rate, time)

# Display the result

print(f"The simple interest for the principal amount ${principal}, annual interest rate of
{rate}%, and time period of {time} years is ${interest}.")

The function calculate_simple_interest() takes the principal amount, annual interest


rate, and time period as input and returns the simple interest. Then, it prompts the user
to enter these values and calls the function to calculate the simple interest, finally
displaying the result.

Q102. Write a Python program to check whether the string is Symmetrical or


Palindrome.

&amp;amp;lt;/div&amp;amp;gt;

&amp;amp;lt;div&amp;amp;gt;

def is_symmetrical(input_string):

# Check if the string is symmetrical

return input_string == input_string[::-1]

def is_palindrome(input_string):

# Remove spaces and convert to lowercase

input_string = input_string.replace(" ", "").lower()

# Check if the string is a palindrome

return input_string == input_string[::-1]


# Input from the user

string = input("Enter a string: ")

# Check if the string is symmetrical

if is_symmetrical(string):

print(f"{string} is symmetrical.")

else:

print(f"{string} is not symmetrical.")

# Check if the string is a palindrome

if is_palindrome(string):

print(f"{string} is a palindrome.")

else:

print(f"{string} is not a palindrome.")

&amp;amp;lt;/div&amp;amp;gt;

&amp;amp;lt;div&amp;amp;gt;

This program defines two functions is_symmetrical() and is_palindrome(). The


is_symmetrical() function checks if the string is symmetrical, and the is_palindrome()
function checks if the string is a palindrome. Then, it prompts the user to enter a string
and calls these functions to determine whether the entered string is symmetrical or a
palindrome, and prints the result accordingly.

Q104. Write a Python program to find yesterday’s, today’s and tomorrow’s date.

from datetime import datetime, timedelta


def get_dates():

# Get today's date

today = [Link]().date()

# Calculate yesterday's and tomorrow's date

yesterday = today - timedelta(days=1)

tomorrow = today + timedelta(days=1)

return yesterday, today, tomorrow

# Get the dates

yesterday_date, today_date, tomorrow_date = get_dates()

# Display the dates

print("Yesterday's date:", yesterday_date)

print("Today's date:", today_date)

print("Tomorrow's date:", tomorrow_date)

This program uses the datetime module to work with dates. It defines a
function get_dates() to calculate yesterday’s, today’s, and tomorrow’s dates
using timedelta objects. Then, it calls this function and prints the dates accordingly.

Next, in this Python Programming Interview Questions let’s have a look at some Python
Libraries.

Python Libraries – Python Interview Questions

Q105. Explain what Flask is and its benefits?

Ans:Flask is a web microframework for Python based on “Werkzeug, Jinja2 and good
intentions” BSD license. Werkzeug and Jinja2 are two of their dependencies. This means
it will have little to no dependencies on external libraries. It makes the framework light
while there is a little dependency to update and fewer security bugs.

A session basically allows you to remember information from one request to another. In
a flask, a session uses a signed cookie so the user can look at the session contents and
modify them. The user can modify the session if only it has the secret key
Flask.secret_key.

Q106. Is Django better than Flask?

Ans:Django and Flask map the URL’s or addresses typed in the web browsers to
functions in Python. Flask is much simpler compared to Django but, Flask does not do
a lot for you meaning you will need to specify the details, whereas Django does a lot for
you wherein you would not need to do much work. Django consists of prewritten code,
which the user will need to analyze whereas Flask gives the users to create their own
code, therefore, making it simpler to understand the code. Technically both are equally
good and both contain their own pros and cons.

Q107. Mention the di erences between Django, Pyramid and Flask.

Flask is a “microframework” primarily build for a small application with simpler


requirements. In flask, you have to use external libraries. Flask is ready to use. Pyramid
is built for larger applications. It provides flexibility and lets the developer use the right
tools for their project. The developer can choose the database, URL structure,
templating style and more. Pyramid is heavy configurable. Django can also be used for
larger applications just like Pyramid. It includes an ORM Pyramid is built for larger
applications. It provides flexibility and lets the developer use the right tools for their
project. The developer can choose the database, URL structure, templating style and
more. Pyramid is heavy configurable. Django can also be used for larger applications
just like Pyramid. It includes an ORM. Q108. Discuss Django architecture.

Ans:Django MVT Pattern:

Figure:Django Architecture
The developer provides the Model, the view and the template then just maps it to a URL
and Django does the magic to serve it to the user.

Q109. Explain how you can set up the Database in Django.

Ans:You can use the command edit mysite/[Link], it is a normal python module with
module level representing Django settings.

Django uses SQLite by default; it is easy for Django users as such it won’t require any
other type of installation. In the case your database choice is di erent that you have to
the following keys in the DATABASE ‘default’ item to match your database connection
settings.

Engines: you can change the database by using ‘[Link].sqlite3’ ,


‘[Link]’, ‘[Link].postgresql_psycopg2’,
‘[Link]’ and so on. Name: The name of your database. In the case
if you are using SQLite as your database, in that case, database will be a file on your
computer, Name should be a full absolute path, including the file name of that file.

Django uses SQLite as a default database, it stores data as a single file in the filesystem.
If you do have a database server—PostgreSQL, MySQL, Oracle, MSSQL—and want to
use it rather than SQLite, then use your database’s administration tools to create a new
database for your Django project. Either way, with your (empty) database in place, all
that remains is to tell Django how to use it. This is where your project’s [Link] file
comes in.

We will add the following lines of code to the [Link] file:

DATABASES = {

'default': {

'ENGINE' : '[Link].sqlite3',

'NAME' : [Link](BASE_DIR, 'db.sqlite3'),

Q110. Give an example how you can write a VIEW in Django?


Ans:This is how we can use write a view in Django:

from [Link] import HttpResponse

import datetime

def Current_datetime(request):

now = [Link]()

html = "It is now %s/body/html % now

return HttpResponse(html)

Returns the current date and time, as an HTML document

Q111. Mention what the Django templates consist of.

Ans:The template is a simple text file. It can create any text-based format like XML,
CSV, HTML, etc. A template contains variables that get replaced with values when the
template is evaluated and tags (% tag %) that control the logic of the template.

Figure: Django Template

Q112. Explain the use of session in Django framework?

Ans:Django provides a session that lets you store and retrieve data on a per-site-visitor
basis. Django abstracts the process of sending and receiving cookies, by placing a
session ID cookie on the client side, and storing all the related data on the server side.

Figure: Django Framework


So the data itself is not stored client side. This is nice from a security perspective.

Q113. List out the inheritance styles in Django.

Ans: In Django, there are three possible inheritance styles:

 Abstract Base Classes: This style is used when you only want parent’s class to
hold information that you don’t want to type out for each child model.

 Multi-table Inheritance: This style is used If you are sub-classing an existing


model and need each model to have its own database table.

 Proxy models: You can use this model, If you only want to modify the Python
level behavior of the model, without changing the model’s fields.

Next, in this Python Interview Questions blog, let’s have a look at NumPy Concepts in
Python.

Python NumPy Interview Questions

Q114. What is Numpy in Python?

Ans. NumPy is the fundamental package for scientific computing in Python. It is a


Python library that provides a multidimensional array object, various derived objects
(such as masked arrays and matrices), and an assortment of routines for fast
operations on arrays, including mathematical, logical, shape manipulation, sorting,
selecting, I/O, discrete Fourier transforms, basic linear algebra, basic statistical
operations, random simulation and much more.

Q115. How to create 1D, 2D and 3D arrays?

Ans. Below code helps you create 1D array:

import numpy as np

&amp;amp;amp;nbsp;
# creating the list

list = [100, 200, 300, 400]

# creating 1-d array

n = [Link](list)

print(n)

Output: [100 200 300 400] Below code helps you create a 2D array:

import numpy as np

# Create a 2-dimensional array with 3 rows and 4 columns

arr = [Link]([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]])

# Print the array

print(arr)

Output: [[ 1 2 3 4] [ 5 6 7 8] [ 9 10 11 12]] Below code helps you create a 3D array:

import numpy as np

# Create a 3D array with shape (2, 3, 4)


nested_list = [[[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]],

&amp;amp;amp;nbsp;&amp;amp;amp;nbsp;&amp;amp;amp;nbsp;&amp;amp;amp;n
bsp;&amp;amp;amp;nbsp;&amp;amp;amp;nbsp;&amp;amp;amp;nbsp;&amp;amp;a
mp;nbsp;&amp;amp;amp;nbsp;&amp;amp;amp;nbsp;&amp;amp;amp;nbsp;&amp;a
mp;amp;nbsp;&amp;amp;amp;nbsp;&amp;amp;amp;nbsp; [[13, 14, 15, 16], [17, 18,
19, 20], [21, 22, 23, 24]]]

arr = [Link](nested_list)

print(arr)

Output: [[[ 1 2 3 4] [ 5 6 7 8] [ 9 10 11 12]] [[13 14 15 16] [17 18 19 20] [21 22 23 24]]]

Q116. How to load data using txt file using numpy?

Ans. To import Text files into Numpy Arrays, we can use the functions [Link]( ) in
Numpy. Syntax: [Link](fname, dtype = float, comments=’#’, delimiter=None,
converters=None, skiprows=0, usecols=None, unpack=False, ndmin=0,
encoding=’bytes’, max_rows=None, *, like= None) Example: The following ‘[Link]’
text file is considered in this example. It contains the following data:

import numpy as np

# Text file data converted to integer data type

File_data = [Link]("[Link]", dtype=int)

print(File_data)

Output: [[1 2 3 4] [5 6 7 8] [9 10 11 12]]

Q117. How to read CSV data into an array in NumPy?


Ans. To read a csv file, we can use the [Link]()
function. Syntax: [Link](fname, dtype=<class ‘float’>, comments=’#’,
delimiter=None, converters=None, skiprows=0, usecols=None, unpack=False,
ndmin=0, encoding=’bytes’, max_rows=None, *, quotechar=None, like=None) Example:

import numpy as np

# using loadtxt()

arr = [Link]("sample_data.csv", delimiter=",", dtype=str)

display(arr)

Q118. How to reverse the numpy array using one line of code?

Ans. To reverse a numpy array, we can use the flip() function in NumPy.

Next in this Python Interview Question blog, let’s have a look at questions related to
Web Scraping

Web Scraping – Python Interview Questions

Q119. How To Save An Image Locally Using Python Whose URL Address I Already
Know?

Ans:We will use the following code to save an image locally from an URL address

import [Link]

[Link]("URL", "local-fi[Link]")

Q120. How can you Get the Google cache age of any URL or web page?

Ans:Use the following URL format:


[Link]

Be sure to replace “URLGOESHERE” with the proper web address of the page or site
whose cache you want to retrieve and see the time for. For example, to check the
Google Webcache age of [Link] you’d use the following URL:

[Link]

Q121. You are required to scrap data from IMDb top 250 movies page. It should only
have fields movie name, year, and rating.

Ans:We will use the following lines of code:

from bs4 import BeautifulSoup

import requests

import sys

url = '[Link]

response = [Link](url)

soup = BeautifulSoup([Link])

tr = soup.findChildren("tr")

tr = iter(tr)

next(tr)

for movie in tr:

title = movie.find('td', {'class': 'titleColumn'} ).find('a').contents[0]

year = movie.find('td', {'class': 'titleColumn'} ).find('span', {'class':


'secondaryInfo'}).contents[0]

rating = movie.find('td', {'class': 'ratingColumn imdbRating'} ).find('strong').contents[0]

row = title + ' - ' + year + ' ' + ' ' + rating
print(row)

The above code will help scrap data from IMDb’s top 250 list

Next, as part of the Python Interview Questions, lets explore some Data Analysis
questions

Data Analysis – Python Interview Questions

Q122. What is map function in Python?

Ans:map function executes the function given as the first argument on all the elements
of the iterable given as the second argument. If the function given takes in more than 1
arguments, then many iterables are given. #Follow the link to know more similar
functions.

Q123. Is python numpy better than lists?

Ans:We use python numpy array instead of a list because of the below three reasons:

 Less Memory

 Fast

 Convenient

For more information on these parameters, you can refer to this section – Numpy Vs
List.

Q124. How to get indices of N maximum values in a NumPy array?

Ans:We can get the indices of N maximum values in a NumPy array using the below
code:

import numpy as np
arr = [Link]([1, 3, 2, 4, 5])

print([Link]()[-3:][::-1])

Output

[431]

Q125. How do you calculate percentiles with Python/ NumPy?

Ans:We can calculate percentiles with the following code

import numpy as np

a = [Link]([1,2,3,4,5])

p = [Link](a, 50) #Returns 50th percentile, e.g. median

print(p)

Output:3

Q126. What is the di erence between NumPy and SciPy?

Ans:

NumPy SciPy

It refers to Numerical python. It refers to Scientific python.

It has fewer new scientific computing Most new scientific computing features
features. belong in SciPy.

It has more fully-featured versions of the


It contains less linear algebra functions. linear algebra modules, as well as many
other numerical algorithms.

SciPy on the other hand has slower


NumPy has a faster processing speed.
computational speed.

Q127. How do you make 3D plots/visualizations using NumPy/SciPy?

Ans:Like 2D plotting, 3D graphics is beyond the scope of NumPy and SciPy, but just as
in the 2D case, packages exist that integrate with NumPy. Matplotlib provides basic 3D
plotting in the mplot3d subpackage, whereas Mayavi provides a wide range of high-
quality 3D visualization features, utilizing the powerful VTK engine.
Now lets explore some multiple choice quesions as part of this Python Interview
Questions.

Python Multiple Choice Questions (MCQ) Interview Questions

Q128. Which of the following statements create a dictionary? (Multiple Correct


Answers Possible)

a) d = {}
b) d = {“john”:40, “peter”:45}
c) d = {40:”john”, 45:”peter”}
d) d = (40:”john”, 45:”50”)

Answer: b, c & d.

Dictionaries are created by specifying keys and values.

Q129. Which one of these is floor division?

a) /
b) //
c) %
d) None of the mentioned

Answer: b) //

When both of the operands are integer then python chops out the fraction part and gives
you the round o value, to get the accurate answer use floor division. For ex, 5/2 = 2.5
but both of the operands are integer so answer of this expression in python is 2. To get
the 2.5 as the answer, use floor division using //. So, 5//2 = 2.5

Q130. What is the maximum possible length of an identifier?

a) 31 characters
b) 63 characters
c) 79 characters
d) None of the above

Answer: d) None of the above

Identifiers can be of any length.

Q131. Why are local variable names beginning with an underscore discouraged?
a) they are used to indicate a private variables of a class
b) they confuse the interpreter
c) they are used to indicate global variables
d) they slow down execution

Answer: a) they are used to indicate a private variable of a class

As Python has no concept of private variables, leading underscores are used to indicate
variables that must not be accessed from outside the class.

Q132. Which of the following is an invalid statement?

a) abc = 1,000,000
b) a b c = 1000 2000 3000
c) a,b,c = 1000, 2000, 3000
d) a_b_c = 1,000,000

Answer: b) a b c = 1000 2000 3000

Spaces are not allowed in variable names.

Q133. What is the output of the following?

try:

if '1' != 1:

raise "someError"

else:

print("someError has not occured")

except "someError":

print ("someError has occured")

a) someError has occured


b) someError has not occured
c) invalid code
d) none of the above

Answer: c) invalid code

A new exception class must inherit from a BaseException. There is no such inheritance
here.
Q134. Suppose list1 is [2, 33, 222, 14, 25], What is list1[-1] ?

a) Error
b) None
c) 25
d) 2

Answer: c) 25

The index -1 corresponds to the last index in the list.

Q135. To open a file c:[Link] for writing, we use

a) outfile = open(“c:[Link]”, “r”)


b) outfile = open(“c:[Link]”, “w”)
c) outfile = open(file = “c:[Link]”, “r”)
d) outfile = open(file = “c:[Link]”, “o”)

Answer: b) The location contains double slashes ( ) and w is used to indicate that file is
being written to.

Q136. What is the output of the following?

f = None

for i in range (5):

with open("[Link]", "w") as f:

if (i &amp;amp;gt; 2):

break

print [Link]

a) True
b) False
c) None
d) Error

Answer: a) True
The WITH statement when used with open file guarantees that the file object is closed
when the with block exits.

Q137. When will the else part of try-except-else be executed?

a) always
b) when an exception occurs
c) when no exception occurs
d) when an exception occurs into except block

Answer: c) when no exception occurs

The else part is executed when no exception occurs.

I hope this set of Python Interview Questions will help you in preparing for your
interviews. All the best!

You might also like