Interview Questions On Python
Interview Questions On Python
Ans.
2. It grants a programmer with the control to decide which directory is a package
and which is not.
Ans.
In Python, we can access both arrays & lists using a positive or negative numbers
(aka index). A negative index reads the list elements from the end counting in the
backward direction. Check out from the example given below.
>> import array >>> a = [1, 2, 3] >>> print a[-3] 1 >>> print a[-2] 2 >>> print a[-1] 3
Ans.
Pickling is a process by which a Python object gets converted into a string via a
pickle module. The process then puts it into a file by calling the dump() method.
Whereas unpickling does the reverse of the above-said process. It retrieves the
stored string and turns it back into an object.
Ans.
Slicing in Python is a mechanism to select a range of items from Sequence types
like strings, list, tuple, etc.
>>> l=[1,2,3,4,5]
>>> l[1:3]
[2, 3]
>>> l[1:-2]
[2, 3]
[3, 4]
>>> s[1:3]
'el'
>>> s[:-5]
'Hello '
>>> s[-5:]
'World'
Q-6. What are the different ways to generate random numbers in Python?
Ans.
#1. random() - This command returns a floating point number, between 0 and 1.
#2. uniform(X, Y) - It returns a floating point number between the values given as
X and Y.
#3. randint(X, Y) - This command returns a random integer between the values
given as X and Y.
Ans.
The “pass” keyword is a no-operation statement in Python. It signals that no
action is required. It works as a placeholder in compound statements which are
intentionally left blank.
>>> if x==0:
pass
else:
print "x!=0"
Ans.
Iterators in Python enables to traverse containers like a list or a set of elements.
For a container to support iterator, it must provide the <__iter__()> method.
container.__iter__() :
Ans.
Generators are a way of implementing iterators. A generator function is a normal
function except that it contains yield expression in the function definition making
it a generator function.
To get the next value from a generator, we use the same built-in function as for
iterators: <next(). next()> takes care of calling the
generator’s <__next__()> method.
Q-10. How will you run a subprocess or an external program with arguments in
Python?
Ans.
There are two methods which can run a subprocess or external programs. First is
to use the subprocess module in the stdlib.
call(["ls", "-l"])
The advantage of subprocess vs system is that it is more flexible. You can get the
stdout, stderr, the “real” status code and better error handling. The second
approach to run a program with arguments is as follows.
subprocess.Popen(arglist,stdout=outputfile)
Q-11. How will you remove the duplicate elements from the given list?
Ans.
A simple solution is to iterate over the list, identify duplicates and remove them.
a = [1,2,2,3]
list(set(a))
The set is another type available in Python. It doesn’t allow copies and provides
some good functions to perform set operations like union, difference etc.
Q-12. How will you print the sum of numbers starting from 1 to 100 (inclusive of
both)?
Ans.
print sum(range(1,101))
#the range function does not include the end given (101 here).
print(sum(xrange(1, 101)))
Q-13. What is the best approach to store a list of an employee’s first and last
names?
Ans.
A list of first and last names is best stored as a list of dictionaries. The following
format can be used.
{'first_name':'Example','last_name':'TechBeamers'}
The parameter which you pass is originally a reference to the object not the
reference to a fixed memory location. But the reference is passed by value.
Additionally, some data types like strings and tuples are immutable whereas
others are mutable.
Q-15. What are the different methods Python provides for copying an object?
Ans. We can either use a “Shallow Copy” or follow a “Deep Copy” approach.
The content of an object (say dictionary) doesn’t get copied by value but by
creating a new reference.
>>> b = a.copy()
>>> a, b
>>> a[1].append(4)
>>> a, b
>>> c = copy.deepcopy(a)
>>> a, c
>>> a[1].append(5)
>>> a, c
({1: [1, 2, 3, 4, 5]}, {1: [1, 2, 3, 4]})
Ans.
Python provides the <int()> method, a standard built-in function to convert a
string into an integer value.
You can call it with a string containing a number as the argument, and it returns
the number converted to an actual integer.
print int("1") + 1
Ans.
You can use a global variable in other functions by declaring it as global in each
function that assigns to it:
globvar = 0
def set_globvar_to_one():
globvar = 1
def print_globvar():
set_globvar_to_one()
print_globvar() # Prints 1
I imagine the reason for it is that, since global variables are so dangerous, Python
wants to make sure that you really know that’s what you’re playing with by
explicitly requiring the global keyword.
Q-18. How will you share global variables across modules?
Ans.
If you add a variable to the <__builtin__> module, it will be accessible as if a
global from any other module that includes <__builtin__> — which is all of them,
by default.
a.py contains
print foo
b.py contains
import __builtin__
__builtin__.foo = 1
import a
Q-19. Is there a tool to help find bugs or perform the static analysis?
Ans.
Yes. PyChecker is a static analysis tool. It finds bugs in the source code and raises
alerts for the issues in code complexity or style.
Pylint is another tool that checks if a module meets the coding standard. It also
supports additional plug-ins to enable custom features.
Ans.
Python packages a unit testing framework called <Unittest>. It supports the
following features.
Automation testing.
Sharing of setup and shutdown code for tests.
Aggregation of tests into collections.
Independence of the tests from the reporting framework.