Python Imp Interview Question PDF
Python Imp Interview Question PDF
Interview
Questions
Beginner to Advanced Level
2) Why Python?
2 | Connect with Adnan Manna on LinkedIn. None of the content in any of these pages belongs to me!
o Games
o Scientific and computational applications
o Language development
o Image processing and graphic design applications
o Enterprise and business applications development
o Operating systems
o GUI based desktop applications
Python provides various web frameworks to develop web applications. The popular python web
frameworks are Django, Pyramid, Flask.
Python's standard library supports for E-mail processing, FTP, IMAP, and other Internet protocols.
Python's SciPy and NumPy helps in scientific and computational application development.
3 | Connect with Adnan Manna on LinkedIn. None of the content in any of these pages belongs to me!
4) What are the advantages of Python?
Advantages of Python are:
Interpreted: Python is an interpreted language. It does not require prior compilation of code and
executes instructions directly.
Free and open source: It is an open-source project which is publicly available to reuse. It can be
downloaded free of cost.
o It is Extensible
o Object-oriented
Built-in data structure: Tuple, List, and Dictionary are useful integrated data structures provided by the
language.
o Readability
o High-Level Language
o Cross-platform
Portable: Python programs can run on cross platforms without affecting its performance.
4 | Connect with Adnan Manna on LinkedIn. None of the content in any of these pages belongs to me!
5) What is PEP 8?
PEP 8 stands for Python Enhancement Proposal, it can be defined as a document that helps us to
provide the guidelines on how to write the Python code. It is basically a set of rules that specify how to
format Python code for maximum readability. It was written by Guido van Rossum, Barry Warsaw and
Nick Coghlan in 2001.
String Literals
String literals are formed by enclosing text in the single or double quotes. For example, string literals
are string values.
Example:
1. # in single quotes
5 | Connect with Adnan Manna on LinkedIn. None of the content in any of these pages belongs to me!
2. single = 'AdnanManna'
3. # in double quotes
4. double = " AdnanManna"
5. # multi-line String
6. multi = '''''Adnan
7. _
8. Manna'''
9.
10. print(single)
11. print(double)
12. print(multi)
Output:
AdnanManna
AdnanManna
Adnan
_
Manna
Numeric Literals
Python supports three types of numeric literals integer, float and complex.
Example:
1. # Integer literal
2. a = 10
3. #Float Literal
4. b = 12.3
5. #Complex Literal
6. x = 3.14j
7. print(a)
8. print(b)
9. print(x)
Output:
10
12.3
3.14j
Boolean Literals
Boolean literals are used to denote Boolean values. It contains either True or False.
6 | Connect with Adnan Manna on LinkedIn. None of the content in any of these pages belongs to me!
Example:
1. p = (1 == True)
2. q = (1 == False)
3. r = True + 3
4. s = False + 7
5.
6. print("p is", p)
7. print("q is", q)
8. print("r:", r)
9. print("s:", s)
Output:
p is True
q is False
r: 4
s: 7
Special literals
Python contains one special literal, that is, 'None'. This special literal is used for defining a null variable.
If 'None' is compared with anything else other than a 'None', it will return false.
Example:
1. word = None
2. print(word)
Output:
None
o Built-In Functions: copy(), len(), count() are the some built-in functions.
7 | Connect with Adnan Manna on LinkedIn. None of the content in any of these pages belongs to me!
o User-defined Functions: Functions which are defined by a user known as user-defined
functions.
o Anonymous functions: These functions are also known as lambda functions because they are
not declared with the standard def keyword.
Signature
Parameters
iterator1, iterator2, iterator3: These are iterator objects that are joined together.
Return
Note: If the given lists are of different lengths, zip stops generating tuples when the first list ends. It means
two lists are having 3, and 5 lengths will create a 3-tuple.
o Pass by references
o Pass by value
By default, all the parameters (arguments) are passed "by reference" to the functions. Thus, if you
change the value of the parameter within a function, the change is reflected in the calling function as
8 | Connect with Adnan Manna on LinkedIn. None of the content in any of these pages belongs to me!
well. It indicates the original variable. For example, if a variable is declared as a = 10, and passed to a
function where it's value is modified to a = 20. Both the variables denote to the same value.
The pass by value is that whenever we pass the arguments to the function only values pass to the
function, no reference passes to the function. It makes it immutable that means not changeable. Both
variables hold the different values, and original value persists even after modifying in the function.
Python has a default argument concept which helps to call a method using an arbitrary number of
arguments.
Example:
1. class student:
2. def __init__(self, name):
3. self.name = name
4. def __init__(self, name, email):
5. self.name = name
6. self.email = email
7.
8. # This line will generate an error
9. #st = student("rahul")
10.
9 | Connect with Adnan Manna on LinkedIn. None of the content in any of these pages belongs to me!
11. # This line will call the second constructor
12. st = student("rahul", "[email protected]")
13. print("Name: ", st.name)
14. print("Email id: ", st.email)
Output:
Name: rahul
Email id: [email protected]
11) What is the difference between remove() function and del statement?
The user can use the remove() function to delete a specific object in the list.
Example:
1. list_1 = [ 3, 5, 7, 3, 9, 3 ]
2. print(list_1)
3. list_1.remove(3)
4. print("After removal: ", list_1)
Output:
[3, 5, 7, 3, 9, 3]
After removal: [5, 7, 3, 9, 3]
If you want to delete an object at a specific location (index) in the list, you can either use del or pop.
Example:
1. list_1 = [ 3, 5, 7, 3, 9, 3 ]
2. print(list_1)
3. del list_1[2]
4. print("After deleting: ", list_1)
Output:
[3, 5, 7, 3, 9, 3]
After deleting: [3, 5, 3, 9, 3]
Note: You don't need to import any extra module to use these functions for removing an element from the
list.
We cannot use these methods with a tuple because the tuple is different from the list.
10 | Connect with Adnan Manna on LinkedIn. None of the content in any of these pages belongs to me!
12) What is swapcase() function in the Python?
It is a string's function which converts all uppercase characters into lowercase and vice versa. It is used
to alter the existing case of the string. This method creates a copy of the string which contains all the
characters in the swap case. If the string is in lowercase, it generates a small case string and vice versa.
It automatically ignores all the non-alphabetic characters. See an example below.
Example:
Output:
it is in lowercase.
IT IS IN UPPERCASE.
Example:
Output:
AdnanManna
AdnanManna
AdnanManna
11 | Connect with Adnan Manna on LinkedIn. None of the content in any of these pages belongs to me!
After stripping all have placed in a sequence:
AdnanManna
AdnanManna
AdnanManna
Example:
Output:
AdnanManna
AdnanManna
After stripping all leading whitespaces:
AdnanManna
AdnanManna
After stripping, all the whitespaces are removed, and now the string looks like the below:
Example:
1. str = "Rohan"
12 | Connect with Adnan Manna on LinkedIn. None of the content in any of these pages belongs to me!
2. str2 = "ab"
3. # Calling function
4. str2 = str.join(str2)
5. # Displaying result
6. print(str2)
Output:
aRohanb
Example:
Output:
Original LIST1:
['Z', 'Y', 'X', 'W', 'V', 'U']
13 | Connect with Adnan Manna on LinkedIn. None of the content in any of these pages belongs to me!
17) What is the use of break statement?
The break statement is used to terminate the execution of the current loop. Break always breaks the
current execution and transfer control to outside the current block. If the block is in a loop, it exits from
the loop, and if the break is in a nested loop, it exits from the innermost loop.
Example:
Output:
2
X 11
X 22
X 33
Y 11
Y 22
Y 33
BREAK
14 | Connect with Adnan Manna on LinkedIn. None of the content in any of these pages belongs to me!
Python Break statement flowchart.
Example:
1. # Declaring tuple
2. tup = (2,4,6,8)
15 | Connect with Adnan Manna on LinkedIn. None of the content in any of these pages belongs to me!
3. # Displaying value
4. print(tup)
5.
6. # Displaying Single value
7. print(tup[2])
Output:
(2, 4, 6, 8)
6
Example:
1. # Declaring tuple
2. tup = (2,4,6,8)
3. # Displaying value
4. print(tup)
5.
6. # Displaying Single value
7. print(tup[2])
8.
9. # Updating by assigning new value
10. tup[2]=22
11. # Displaying Single value
12. print(tup[2])
Output:
tup[2]=22
TypeError: 'tuple' object does not support item assignment
(2, 4, 6, 8)
16 | Connect with Adnan Manna on LinkedIn. None of the content in any of these pages belongs to me!
19) Which are the file related libraries/modules in Python?
The Python provides libraries/modules that enable you to manipulate text files and binary files on the
file system. It helps to create files, update their contents, copy, and delete files. The libraries are os,
os.path, and shutil.
Here, os and os.path - modules include a function for accessing the filesystem
while shutil - module enables you to copy and delete the files.
20) What are the different file processing modes supported by Python?
Python provides four modes to open files. The read-only (r), write-only (w), read-write (rw) and append
mode (a). 'r' is used to open a file in read-only mode, 'w' is used to open a file in write-only mode, 'rw'
is used to open in reading and write mode, 'a' is used to open a file in append mode. If the mode is not
specified, by default file opens in read-only mode.
o Read-only mode (r): Open a file for reading. It is the default mode.
o Write-only mode (w): Open a file for writing. If the file contains data, data would be lost. Other a
new file is created.
o Read-Write mode (rw): Open a file for reading, write mode. It means updating mode.
o Append mode (a): Open for writing, append to the end of the file, if the file exists.
Example:
1. # Unary Operator
2. A = 12
3. B = -(A)
4. print (B)
5. # Binary Operator
6. A = 12
7. B = 13
8. print (A + B)
9. print (B * A)
10. #Ternary Operator
11. A = 12
12. B = 13
13. min = A if A < B else B
14.
15. print(min)
Output:
# Unary Operator
-12
# Binary Operator
25
156
# Ternary Operator
12
18 | Connect with Adnan Manna on LinkedIn. None of the content in any of these pages belongs to me!
22) What are the different types of operators in Python?
Python uses a rich set of operators to perform a variety of operations. Some individual operators like
membership and identity operators are not so familiar but allow to perform operations.
Arithmetic operators perform basic arithmetic operations. For example "+" is used to add and "?" is
used for subtraction.
19 | Connect with Adnan Manna on LinkedIn. None of the content in any of these pages belongs to me!
Example:
Output:
35
-11
276
0.5217391304347826
Relational Operators are used to comparing the values. These operators test the conditions and then
returns a boolean value either True or False.
Example:
1. a, b = 10, 12
2. print(a==b) # False
3. print(a<b) # True
4. print(a<=b) # True
5. print(a!=b) # True
Output:
False
True
True
True
Assignment operators are used to assigning values to the variables. See the examples below.
Example:
20 | Connect with Adnan Manna on LinkedIn. None of the content in any of these pages belongs to me!
4. a += 2
5. print(a) # 14
6. a -= 2
7. print(a) # 12
8. a *=2
9. print(a) # 24
10. a **=2
11. print(a) # 576
Output:
12
14
12
24
576
Logical operators are used to performing logical operations like And, Or, and Not. See the example
below.
Example:
Output:
False
True
True
Membership operators are used to checking whether an element is a member of the sequence (list,
dictionary, tuples) or not. Python uses two membership operators in and not in operators to check
element presence. See an example.
Example:
21 | Connect with Adnan Manna on LinkedIn. None of the content in any of these pages belongs to me!
5. print("tokyo" not in cities) #True
Output:
False
True
Identity Operators (is and is not) both are used to check two values or variable which are located on the
same part of the memory. Two variables that are equal does not imply that they are identical. See the
following examples.
Example:
Output:
False
True
Bitwise Operators are used to performing operations over the bits. The binary operators (&, |, OR)
work on bits. See the example below.
Example:
Output:
8
14
6
-11
22 | Connect with Adnan Manna on LinkedIn. None of the content in any of these pages belongs to me!
In Python 3, the old Unicode type has replaced by "str" type, and the string is treated as Unicode by
default. We can make a string in Unicode by using art.title.encode("utf-8") function.
Example:
Output:
o 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.
o 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.
23 | Connect with Adnan Manna on LinkedIn. None of the content in any of these pages belongs to me!
o 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.
Example:
1. def function_is_called():
2. def function_is_returned():
3. print("AdnanManna")
4. return function_is_returned
5. new_1 = function_is_called()
6. # Outputs "AdnanManna"
7. new_1()
Output:
AdnanManna
A function is a block of code that performs a specific task whereas a decorator is a function that modifies
other functions.
27) What are the rules for a local and global variable in Python?
Global Variables:
o Variables declared outside a function or in global space are called global variables.
o If a variable is ever assigned a new value inside the function, the variable is implicitly local, and
we need to declare it as 'global' explicitly. To make a variable globally, we need to declare it by
using global keyword.
o Global variables are accessible anywhere in the program, and any function can access and modify
its value.
24 | Connect with Adnan Manna on LinkedIn. None of the content in any of these pages belongs to me!
Example:
1. A = "AdnanManna"
2. def my_function():
3. print(A)
4. my_function()
Output:
AdnanManna
Local Variables:
o 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.
o If a variable is assigned a new value anywhere within the function's body, it's assumed to be a
local.
o Local variables are accessible within local body only.
Example:
1. def my_function2():
2. K = " AdnanManna Local"
3. print(K)
4. my_function2()
Output:
AdnanManna Local
A namespace is defined as a simple system to control the names in a program. It ensures that names
are unique and won't lead to any conflict.
Also, Python implements namespaces in the form of dictionaries and maintains name-to-object
mapping where names act as keys and the objects as values.
25 | Connect with Adnan Manna on LinkedIn. None of the content in any of these pages belongs to me!
29) What are iterators in Python?
In Python, iterators are used to iterate a group of elements, containers like a list. Iterators are the
collection of items, and it can be a list, tuple, or a dictionary. Python iterator implements __itr__ and
next() method to iterate the stored elements. In Python, we generally use loops to iterate over the
collections (list, tuple).
In simple words: Iterators are objects which can be traversed though or iterated upon.
If a function contains at least a yield statement, it becomes a generator. The yield keyword pauses the
current execution by saving its states and then resume from the same when required.
Example:
26 | Connect with Adnan Manna on LinkedIn. None of the content in any of these pages belongs to me!
Output:
Example:
The following example contains some keys Country Hero & Cartoon. Their corresponding values are
India, Modi, and Rahul respectively.
Output:
Country: India
Hero: Modi
Cartoon: Rahul
Example:
1. class Student:
2. pass # Passing class
3. class Student:
4. def info():
5. pass # Passing function
27 | Connect with Adnan Manna on LinkedIn. None of the content in any of these pages belongs to me!
34) Explain docstring in Python?
The Python docstring is a string literal that occurs as the first statement in a module, function, class, or
method definition. It provides a convenient way to associate the documentation.
String literals occurring immediately after a simple assignment at the top are called "attribute
docstrings".
String literals occurring immediately after another docstring are called "additional docstrings".
Python uses triple quotes to create docstrings even though the string fits on one line.
Docstring phrase ends with a period (.) and can be multiple lines. It may consist of spaces and other
special chars.
Example:
1. # One-line docstrings
2. def hello():
3. """A function to greet."""
4. return "hello"
35) What is a negative index in Python and why are they used?
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
go 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.
28 | Connect with Adnan Manna on LinkedIn. None of the content in any of these pages belongs to me!
The process of retrieving the original Python objects from the stored string representation is called
as Unpickling.
Help() function: The help() function is used to display the documentation string and also facilitates us
to see the help related to modules, keywords, and attributes.
Dir() function: The dir() function is used to display the defined symbols.
39) What are the differences between Python 2.x and Python 3.x?
Python 2.x is an older version of Python. Python 3.x is newer and latest version. Python 2.x is legacy
now. Python 3.x is the present and future of this language.
The most visible difference between Python2 and Python3 is in print statement (function). In Python 2,
it looks like print "Hello", and in Python 3, it is print ("Hello").
The xrange() method has removed from Python 3 version. A new keyword as is introduced in Error
handling.
29 | Connect with Adnan Manna on LinkedIn. None of the content in any of these pages belongs to me!
40) How Python does Compile-time and Run-time code checking?
In Python, some amount of coding is done at compile time, but most of the checking such as type,
name, etc. are postponed until code execution. Consequently, if the Python code references a user-
defined function that does not exist, the code will compile successfully. The Python code will fail only
with an exception when the code execution path does not exist.
41) What is the shortest method to open a text file and display its content?
The shortest way to open a text file is by using "with" command in the following manner:
Example:
Output:
Example:
1. list_1 = ["A","B","C"]
2. s_1 = "Javatpoint"
3. # creating enumerate objects
4. object_1 = enumerate(list_1)
5. object_2 = enumerate(s_1)
6.
7. print ("Return type:",type(object_1))
8. print (list(enumerate(list_1)))
9. print (list(enumerate(s_1)))
30 | Connect with Adnan Manna on LinkedIn. None of the content in any of these pages belongs to me!
Output:
Return type:
[(0, 'A'), (1, 'B'), (2, 'C')]
[(0, 'J'), (1, 'a'), (2, 'v'), (3, 'a'), (4, 't'), (5, 'p'), (6, 'o'), (7, 'i'), (8, 'n'),
(9, 't')]
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.
It has a method SMTP(smtp-server, port). It requires two parameters to establish SMTP connection.
31 | Connect with Adnan Manna on LinkedIn. None of the content in any of these pages belongs to me!
A simple example to send an email is given below.
Example:
1. import smtplib
2. # Calling SMTP
3. s = smtplib.SMTP('smtp.gmail.com', 587)
4. # TLS for network security
5. s.starttls()
6. # User email Authentication
7. s.login("sender@email_id", "sender_email_id_password")
8. # Message to be sent
9. message = "Message_sender_need_to_send"
10. # Sending the mail
11. s.sendmail("sender@email_id ", "receiver@email_id", message)
Example:
Output:
32 | Connect with Adnan Manna on LinkedIn. None of the content in any of these pages belongs to me!
48) Why do lambda forms in Python not have the statements?
Lambda forms in Python does not have the statement because it is used to make the new function
object and return them in runtime.
Example:
1. def New_func():
2. print ("Hi, Welcome to JavaTpoint")
3. New_func() #calling the function
Output:
Example:
1. class Employee_1:
2. def __init__(self, name, age,salary):
3. self.name = name
4. self.age = age
5. self.salary = 20000
6. E_1 = Employee_1("pqr", 20, 25000)
7. # E1 is the instance of class Employee.
8. #__init__ allocates memory for E1.
9. print(E_1.name)
10. print(E_1.age)
11. print(E_1.salary)
Output:
33 | Connect with Adnan Manna on LinkedIn. None of the content in any of these pages belongs to me!
pqr
20
25000
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.
1. import random
2. random.random
The statement random.random() 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 different instance of individual threads. The other random
generators that are used in this are:
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.
uniform(a, b): it chooses a floating point number that is defined in the range of [a,b).Iyt returns the
floating point number
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.
The Random class that is used and instantiated creates independent multiple random number
generators.
34 | Connect with Adnan Manna on LinkedIn. None of the content in any of these pages belongs to me!
PYTHONPATH 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.
54) What are python modules? Name some commonly used built-in modules
in Python?
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.
o os
o sys
o math
o random
o data time
o JSON
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.
56) What advantages do NumPy arrays offer over (nested) Python lists?
35 | Connect with Adnan Manna on LinkedIn. None of the content in any of these pages belongs to me!
o Python's lists are efficient general-purpose containers. They support (fairly) efficient insertion,
deletion, appending, and concatenation, and Python's list comprehensions make them easy to
construct and manipulate.
o They have certain limitations: they don't support "vectorized" operations like elementwise
addition and multiplication, and the fact that they can contain objects of differing types mean
that Python must store type information for every element, and must execute type dispatching
code when operating on each element.
o NumPy is not just more efficient; it is also more convenient. We get a lot of vector and matrix
operations for free, which sometimes allow one to avoid unnecessary work. And they are also
efficiently implemented.
o NumPy array is faster and we get a lot built in with NumPy, FFTs, convolutions, fast searching,
basic statistics, linear algebra, histograms, etc.
36 | Connect with Adnan Manna on LinkedIn. None of the content in any of these pages belongs to me!
So, the data itself is not stored client side. This is good from a security perspective.
37 | Connect with Adnan Manna on LinkedIn. None of the content in any of these pages belongs to me!