Top Python Interview Questions for Freshers

Python is the most popular programming language used in different sectors like web development, machine learning, scientific calculations, etc.

It is the language that almost all software companies operate in the present day to complete their complex tasks with less burden.

With the rich set of developing tools it provides, it is the language that programmers should have in their bucket.

Python developers’ demands is growing at a rapid scale over the last 5 years due to its broad use cases.

So keeping that in mind company are started hiring fresher Python enthusiasts so that they can mold them according to their company use cases.

There are lots of things that particular fresher keep in mind before going to the Python Interview from the academics part to the project done part during college.

But here in this article, we will discuss the top Python Interview Questions that every fresher should know.

Python Interview Questions

Let us begin the interview questions from the basic level that you should know before going to give the interview.

Q1. What is Python?

Python is a high-level, interpreted, and object-oriented scripting language developed and designed by Guido van Rossum in the late 1980s as a successor to the ABC programming language.

It has more readable code and a huge of third-party libraries which means we can find every kind of solution right here in this language. Such as NumPy and Pandas are the most popular open-source library for scientific computing.

It is a cross-platform language that works on all operating systems that enable programmers to focus on solutions rather than syntax.

Q2. What are the different features of Python?

– It is a free and open-source language.

– It is an interpreted language that means codes are executed line by line at a time.

– It is a high-level language that supports both procedure-oriented and object-oriented programming.

– It is a portable, dynamically-typed language with automatic memory management.

– It can be integrated with C++, C, COM, ActiveX, CORBA, and Java.

For more python features refer to Features of Python

Q3. What is Dictionary in Python?

A Python Dictionary is a set of key-value pairs that act like a real-world dictionary. It is one of the built-in data types among four sequences List, Tuple, and Set in Python.

We can access the member of a dictionary using a key(all the keys have to be unique in one dictionary).

In the dictionary, the key is separated from its value by a colon(:) and key, value pairs are separated by a comma(,)

Python Dictionary

Q4. What are Tuples?

Tuples are the built-in data types provided by Python that is similar to lists in the sense that their elements can’t be changed after initialization and are enclosed with round brackets.

They are immutable in nature that can be used as storage for read-only collections.

It has only two methods: count() and index()

Python Tuple and its Methods with Examples

Q5. List out Python Data Types.

– 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

Q6. What is List Comprehension?

List comprehensions are an elegant way to build a list without having to use different for loops to append values one by one.

Simples form of a list comprehension:

[expression-involving-loop-variable for loop-variable in sequence]


>>> my_list = [x for x in range(10)] # list of integers from 0 to 9
>>> my_list
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

Without list comprehension

>>> my_list = []
>>> for item in range(10):
...     my_list.append(item)
>>> my_list
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

Q7. What are the use cases for Python?

– Web Development: Django, Flask, Bottle

– GUI Development: Tkiner, PyQt, PySide

– Scientific and Numeric: SciPy, Pandas, NumPy

– Software Development: Buildbot, Trac, Roundup

– System Administration: Ansible, Salt, OpenStack

Q8. How do break, continue and pass statements work in Python?

break Statements

This causes the program to exit from the loop when the condition is met.

Example: Program that terminates the loops when the number is divisible by 11.

for num in range(1, 100):
    if num % 11 == 0:
        print('Loop Terminated')
        print(num, end=" ")

# Output:
# 1 2 3 4 5 6 7 8 9 10 

# Loop Terminated

continue Statements

This statement returns the control to the beginning of the loop skipping all the remaining statements in the current iteration of the loop.

Example: Program to find out 10 even numbers in the range of 1 to 100.

count = 0
for num in range(1, 100):
    if num % 2 == 0:
         print("even number ->", num)
         count += 1
    if count > 10:

# Output:
# even number -> 2
# even number -> 4
# even number -> 6
# even number -> 8
# even number -> 10
# even number -> 12
# even number -> 14
# even number -> 16
# even number -> 18
# even number -> 20
# even number -> 22

pass Statements

This statement does nothing that is used when a statement is required syntactically but the program requires no actions.


>>> class MyClass:
...     pass # skip class
>>> MyClass()
<__main__.MyClass object at 0x0000013ECE6C8100>
>>> def my_func():
...     pass # skip function execution
>>> my_func()

Q9. What are decorators in Python?

Decorators in Python refer to extending the functionalities of existing functions without modifying them. Generally, they are used when we need to add some functionality to the existing code.

Example: Program to decorate the function that returns the text in the title case.

def func_decorator(func):
    def inner(*args):
        result = func(*args)
        return result.title()
    return inner

def func(text):
    return text

print(func('python decorators example'))

# Output:
# Python Decorators Example

Q10. What are lambda functions?

Lambda functions are simple and one-line function that is used where the function needs to be called only once. This function can have any number of arguments and those functions are represented by a keyword named ‘lambda’.


lambda argument: expression

Example: Program to add two numbers in Lambda way.

>>> z = lambda a, b: a + b
>>> z(5, 5)

Q11. Define *args and **kwargs with examples?

*args is a special syntax that can accept a number of arguments pass to a function and treat those as a tuple.


>>> def arg(*args):
...     print(args)
...     print(type(args))
>>> arg(2, 3, 4, 5)
(2, 3, 4, 5)
<class 'tuple'>

**kwargs are similar to *args, a special syntax that can accept a number of arguments passed to a function but it treats the passed argument as a dictionary.


>>> def kwarg(**kwargs): 
...     print(kwargs)    
...     print(type(kwargs))
>>> kwarg(a="One", b="Two", c=77)   
{'a': 'One', 'b': 'Two', 'c': 77}
<class 'dict'>

For more refer to this article *args and **kwargs in Python

Q12. What is the difference between for loop and a while loop in Python?

In Python, loops are used to repeat code execution. For repeating code every time in the sequence we have to use for loop whereas for repeating code as long as the condition is true use a while loop.

>>> for item in [1, 2, 3, 4, 5]:
...     print(item, end=" ")
1 2 3 4 5

>>> count = 0
>>> while True:
...     count += 1
...     print(count, end=" ")
...     if count > 5:
...         break
1 2 3 4 5 6

Q13. What is the difference between del and None?

del keyword is used to remove the variable that was initialized and cannot access the variable once executed.

>>> my_str = "Python Sansar"
>>> my_str
'Python Sansar'
>>> del my_str
>>> my_str
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'my_str' is not defined

None keyword is used as the assignment variable that won’t remove the variable as del but the corresponding object is eligible for Garbage Collection(re-bind operation). Hence, after assigning with None value, we can access that variable.

>>> my_str = "Python Sansar"
>>> my_str
'Python Sansar'
>>> my_str = None
>>> my_str

Q14. What is the difference between add() and update() functions in Set?

add() is used to add individual items to the set, whereas the update() function is to add multiple items at one time.

add() function can take only one argument, whereas the update() function can take any number of arguments but all arguments should be iterable objects.

>>> my_set = set()
>>> my_set.add(5)
>>> my_set.add(10)
>>> my_set
{10, 5}
>>> my_set.update(range(0,10,2), range(1,10,2))
>>> my_set
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}

Q15. Is Tuple comprehension supported by Python?

Tuple comprehension is not supported here in Python. If also we use it, we are getting a generator object instead of a tuple object.


>>> tuple_comp = (i**2 for i in range(10))
>>> for num in tuple_comp:
...     print(num, end=" ")
0 1 4 9 16 25 36 49 64 81
>>> type(tuple_comp)
<class 'generator'>

Q16. What are Global and Local variables?

The variables which are declared outside of the function are called global variables. These variables can be accessed in all functions of that module.


>>> x = 5 # x is the global variable
>>> def add_y(y):
...     y += x
...     return y
>>> add_y(15)

The variables which are declared inside a function are called local variables. These variables are available only for the function where it was declared. But other functions cannot access these variables.


>>> def add(x, y):
...     z = 10 # this is local variable
...     z += x + y
...     return z
>>> add(5, 5)

Q17. Difference between Methods and Constructors.

The name of methods can be any name.The constructor name should be always __init__
Methods will be executed whenever we call.Constructors will be executed automatically at the time of object creation.
Per object, the method can be called any number of times. Per object, constructors will be executed only once.
Inside the method, we can write our logic according to our use cases.Inside the constructor, we have to declare and initialize instance variables.

Q18. What is type casting?

The implicit or automatic conversion of one data type values into another type such as strings into numbers is known as type casting or type coercion. Python provides various inbuilt functions for type casting like: int(), float(), complex(), bool(), and str().

Leave a Comment