Interview Questions of Python - 1
Interview Questions of Python - 1
Ans.
The <__init__.py> module can help in fulfilling following objectives.
1. It makes Python interpret directories as containing packages by excluding the ones with a
common name such as string.
2. It grants a programmer with the control to decide which directory is a package and which is
not.
3. However, the <__init__.py> can also be an empty file. It can then help in executing the
initialization code for a package or setting the <__all__> variable.
💡 Fact – It was Sir Guido Van Rossum who wrote the Python programming language
and released it in 1991.
Q-3. What is a negative index in Python?
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'
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__() :
💡 Fact – Python is one of the languages that have an “Else” clause for “For” loops.
Q-9. What are the generators in Python?
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.
This function returns a generator iterator known as a generator.
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?
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.
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'}
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.
Shallow Copy method.
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
💡 Fact – Guido named the language after his favorite comedy opera the “Monty
Python’s Flying Circus”.
Q-17. How will you set a global variable inside a function?
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.
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
Note: Python 3 introduced the builtins keyword as a replacement for the <__builtin__>.
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.