Python
Python
2) What is PEP 8?
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.
6) What are the tools that help to find bugs or perform static analysis?
PyChecker is a static analysis tool that detects the bugs in Python source
code and warns about the style and complexity of the bug. Pylint is another
tool that verifies whether the module meets the coding standard.
The difference between list and tuple is that list is mutable while tuple is
not. Tuple can be hashed for e.g as a key for dictionaries.
There are mutable and Immutable types of Pythons built in types Mutable
built-in types
List
Sets
Dictionaries
Strings
Tuples
Numbers
In Python, every name introduced has a place where it lives and can be
hooked for. This is known as namespace. It is like a box where a variable
name is mapped to the object placed. Whenever the variable is searched
out, this box will be searched, to get corresponding object.
A mechanism to select a range of items from sequence types like list, tuple,
strings etc. is known as slicing.
In order to convert a number into a string, use the inbuilt function str(). If
you want a octal or hexadecimal representation, use the inbuilt function
oct() or hex().
Xrange returns the xrange object while range returns the list, and uses the
same memory and no matter what the range size is.
26) Mention what are the rules for local and global variables in
Python?
28) Explain how can you make a Python Script executable on Unix?
import random
random.random()
31) Explain how can you access a module written in Python from C?
Module = =PyImport_ImportModule("<modulename>");
The use of the split function in Python is that it breaks a string into shorter
strings using the defined separator. It gives a list of all words present in the
string.
Pyramid are build 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.
Like Pyramid, Django can also used for larger applications. It includes an
ORM.
38) Explain what is the common way for the Flask script to work?
40) Is Flask an MVC model and if yes give an example showing MVC
pattern for your application?
Def hello():
app.run(debug = True)
The data in the failed server won't get removed, but there is a provision for
auto-failure, which you can configure for multiple nodes. Fail-over can be
triggered during any kind of socket or Memcached server level errors and
not during normal client errors like adding an existing key, etc.
43) Explain how you can minimize the Memcached server outages in
your Python Development?
When one instance fails, several of them goes down, this will put
larger load on the database server when lost data is reloaded as
client make a request. To avoid this, if your code has been written to
minimize cache stampedes then it will leave a minimal impact
Another way is to bring up an instance of Memcached on a new
machine using the lost machines IP address
Code is another option to minimize server outages as it gives you the
liberty to change the Memcached server list with minimal work
Setting timeout value is another option that some Memcached clients
implement for Memcached server outage. When your Memcached
server goes down, the client will keep trying to send a request till the
time-out limit is reached
44) Explain what is Dogpile effect? How can you prevent this effect?
Dogpile effect is referred to the event when cache expires, and websites
are hit by the multiple requests made by the client at the same time. This
effect can be prevented by using semaphore lock. In this system when
value expires, first process acquires the lock and starts generating new
value.
LIST vs TUPLES
LIST TUPLES
Lists are slower than tuples. Tuples are faster than list.
Syntax: list_1 = [10, ‘Chelsea’, 20] Syntax: tup_1 = (10, ‘Chelsea’ , 20)
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
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
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), the justification for this point is given as “we are all adults here”
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 modelling, big
data applications and many more. It’s also often used as “glue” code to get other languages and
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 affect 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 affect
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.
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.
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.
Ans:
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.
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.
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.
Ans: Flask is a web microframework for Python based on “Werkzeug, Jinja2 and good
intentions” BSD license. Werkzeug and Jinja2 are two of its 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. The user
can modify the session if only it has the secret key Flask.secret_key.
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.
Q10. 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 efficient clean up mechanism, Python would try to de-
allocate/destroy every other object.
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.
The following example contains some keys. Country, Capital & PM. Their corresponding
values are India, Delhi and Modi respectively.
1 dict={'Country':'India','Capital':'Delhi','PM':'Modi'}
1 print dict[Country]
India
1 print dict[Capital]
Delhi
1 print dict[PM]
Modi
Ans: In Python, the term monkey patch only refers to dynamic modifications of a class or
module at run-time.
3 def f(self):
4 print "f()"
5 m.MyClass.f = monkey_f
6 obj = m.MyClass()
obj.f()
7
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.
Q13. 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. **kwargsis
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 argsand kwargs are a convention, you could also use *bob and **billy but that
would not be wise.
Q14. 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.
1 with open(SOME_LARGE_FILE) as fh:
2 count = 0
3 text = fh.read()
5 if character.isupper():
count += 1
6
Q15. 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.
Q16. How can you randomize the items of a list in place in Python?
Ans: The compiling and linking allows 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.
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 file.cpp
2. Place this file in the Modules/ directory of the distribution which is getting used.
3. Add a line in the file Setup.local that is present in the Modules/ directory.
4. Run the file using spam file.o
5. After 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’.
Q19. Looking at the below code, write down the final values of A0, A1, …An.
1
A0 = dict(zip(('a','b','c','d','e'),(1,2,3,4,5)))
2 A1 = range(10)A2 = sorted([i for i in A1 if i in A0])
3 A3 = sorted([A0[s] for s in A0])
4 A4 = [i for i in A1 if i in A3]
5 A5 = {i:i*i for i in A1}
A6 = [[i,i*i] for i in A1]
6 print(A0,A1,A2,A3,A4,A5,A6)
7
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]
Ans: To modify the strings, Python’s “re” module is providing 3 methods. They are:
Ans: Random module is the standard module that is used to generate the random number. The
method is defined as:
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 the 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 different 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 an independent multiple random
number generators.
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
difference 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.
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.
Django – Python Interview Questions
Ans:
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
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.
Ans: You can use the command edit mysite/setting.py , 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 different that you have to the following
keys in the DATABASE ‘default’ item to match your database connection settings.
‘django.db.backeneds.mysql’, ‘django.db.backends.postgresql_psycopg2’,
‘django.db.backends.oracle’ 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
If you are not choosing SQLite as your database then settings like Password, Host, User, etc.
must be added.
Django uses SQLite as 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 settings.py file comes in.
5 }
}
6
4 def Current_datetime(request):
5 now = datetime.datetime.now()
return HttpResponse(html)
7
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 controls the logic of the template.
Ans: Django provides 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.
So the data itself is not stored client side. This is nice from a security perspective.
1. Abstract Base Classes: This style is used when you only wants parent’s class to hold
information that you don’t want to type out for each child model.
2. 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.
3. 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.
Q31. 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
1 import urllib.request
2 urllib.request.urlretrieve("URL", "local-filename.jpg")
Q32. How can you Get the Google cache age of any URL or web page?
http://webcache.googleusercontent.com/search?q=cache:URLGOESHERE
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 edureka.co you’d use the following URL:
http://webcache.googleusercontent.com/search?q=cache:edureka.co
Q33. You are required to scrap data from IMDb top 250 movies page. It should only have
fields movie name, year, and rating.
3
import requests
4
import sys
5
6
url = 'http://www.imdb.com/chart/top'
7
response = requests.get(url)
8 soup = BeautifulSoup(response.text)
9 tr = soup.findChildren("tr")
10 tr = iter(tr)
11 next(tr)
12
18
print(row)
19
The above code will help scrap data from IMDb’s top 250 list
Data Analysis – Python Interview Questions
Ans: We can get the indices of N maximum values in a NumPy array using the below code:
1 import numpy as np
3 print(arr.argsort()[-3:][::-1])
Output
[431]
4 print(p)
Output
Q37. What advantages do NumPy arrays offer over (nested) Python lists?
Ans:
1. 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.
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 differing 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 efficient; 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
efficiently 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.
Ans: Decorators in Python are used to modify or inject code in functions or classes. Using
decorators, you can wrap a class or function method call so that a piece of code can be
executed before or after the execution of the original code. Decorators can be used to check
for permissions, modify or track the arguments passed to a method, logging the calls to a
specific method, etc.
Ans:
1. In an ideal world, NumPy would contain nothing but the array data type and the most basic
operations: indexing, sorting, reshaping, basic elementwise functions, et cetera.
2. All numerical code would reside in SciPy. However, one of NumPy’s important goals is
compatibility, so NumPy tries to retain all features supported by either of its predecessors.
3. Thus NumPy contains some linear algebra functions, even though these more properly belong
in SciPy. In any case, SciPy contains more fully-featured versions of the linear algebra modules,
as well as many other numerical algorithms.
4. If you are doing scientific computing with python, you should probably install both NumPy
and SciPy. Most new features belong in SciPy rather than NumPy.
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.
Q41. 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.
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 off 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
a) 31 characters
b) 63 characters
c) 79 characters
d) None of the above
Q44. Why are local variable names beginning with an underscore discouraged?
As Python has no concept of private variables, leading underscores are used to indicate
variables that must not be accessed from outside the class.
4 else:
except "someError":
6
print ("someError has occured")
7
A new exception class must inherit from a BaseException. There is no such inheritance here.
Q47. Suppose list1 is [2, 33, 222, 14, 25], What is list1[-1] ?
a) Error
b) None
c) 25
d) 2
Answer: c) 25
Answer: b) The location contains double slashes ( \\ ) and w is used to indicate that file is
being written to.
5 if i > 2:
6 break
7
print f.closed
8
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.
a) always
b) when an exception occurs
c) when no exception occurs
d) when an exception occurs in to except block
2. What is Python?
PYTHONPATH − It has a role similar to PATH. This variable tells the Python interpreter where to
locate the module files imported into a program. It should include the Python source library
directory and the directories containing Python source code. PYTHONPATH is sometimes preset by
the Python installer
PYTHONSTARTUP − It contains the path of an initialization file containing Python source code. It is
executed every time you start the interpreter. It is named as .pythonrc.py in Unix and it contains
commands that load utilities or modify PYTHONPATH
PYTHONCASEOK − It is used in Windows to instruct Python to find the first case-insensitive match in
an import statement. Set this variable to any value to activate it.
Numbers
String
List
Tuple
Dictionary
LIST TUPLES
Lists are mutable i.e they can be edited. Tuples are immutable (tuples are lists which can’t be
edited).
Lists are slower than tuples. Tuples are faster than list.
Syntax: list_1 = [10, ‘Chelsea’, 20] Syntax: tup_1 = (10, ‘Chelsea’ , 20)
1. Python memory is managed by Python private heap space. All Python objects and
data structures are located in a private heap. The programmer does not have an
access to this private heap and interpreter takes care of this Python private heap.
2. The allocation of Python heap space for Python objects is done by Python memory
manager. The core API gives access to some tools for the programmer to code.
3. Python also have an inbuilt garbage collector, which recycle all the unused memory
and frees the memory and makes it available to the heap space.
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 is 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.
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 efficient clean up mechanism, Python would try
to de-allocate/destroy every other object.
10. What is dictionary in Python?
Let us first write a multiple line solution and then convert it to one liner code.
1 with open(SOME_LARGE_FILE) as fh:
2 count = 0
3 text = fh.read()
4 for character in text:
5 if character.isupper():
6 count += 1
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.
16. Explain split(), sub(), subn() methods of “re” module in Python.
To modify the strings, Python’s “re” module is providing 3 methods. They are:
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.
19. What is map function in Python?
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
20. How to get indices of N maximum values in a NumPy array?
We can get the indices of N maximum values in a NumPy array using the below code:
import numpy as np
arr = np.array([1, 3, 2, 4, 5])
print(arr.argsort()[-3:][::-1])
21. What is a Python module?
A module is a Python script that generally contains import statements, functions, classes and
variable definitions, and Python runnable code and it “lives” file with a ‘.py’ extension. zip
files and DLL files can also be modules.Inside the module, you can refer to the module name
as a string that is stored in the global variable name .
22. Name the File-related modules in Python?
Python provides libraries / modules with functions that enable you to manipulate text files
and binary files on file system. Using them you can create files, update their contents, copy,
and delete files. The libraries are : os, os.path, and shutil.
Here, os and os.path – modules include functions for accessing the filesystem
shutil – module enables you to copy and delete the files.
23. Explain the use of with statement?
In python generally “with” statement is used to open a file, process the data present in the
file, and also to close the file without calling a close() method. “with” statement makes the
exception handling simpler by providing cleanup activities.
General form of with:
with open(“filename”, “mode”) as file-var:
processing statements
note: no need to close the file by calling close() upon file-var.close()
24. Explain all the file processing modes supported by Python?
Python allows you to open files in one of the three modes. They are:
read-only mode, write-only mode, read-write mode, and append mode by specifying the flags
“r”, “w”, “rw”, “a” respectively.
A text file can be opened in any one of the above said modes by specifying the option “t”
along with
“r”, “w”, “rw”, and “a”, so that the preceding modes become “rt”, “wt”, “rwt”, and “at”.A
binary file can be opened in any one of the above said modes by specifying the option “b”
along with “r”, “w”, “rw”, and “a” so that the preceding modes become “rb”, “wb”, “rwb”,
“ab”.
25. How many kinds of sequences are supported by Python? What are they?
Python supports 7 sequence types. They are str, list, tuple, unicode, byte array, xrange, and
buffer. where xrange is deprecated in python 3.5.X.
26. How do you perform pattern matching in Python? Explain
Regular Expressions/REs/ regexes enable us to specify expressions that can match specific
“parts” of a given string. For instance, we can define a regular expression to match a single
character or a digit, a telephone number, or an email address, etc.The Python’s “re” module
provides regular expression patterns and was introduce from later versions of Python 2.5.
“re” module is providing methods for search text strings, or replacing text strings along with
methods for splitting text strings based on the pattern defined.
27. How to display the contents of text file in reverse order?
1. In an ideal world, NumPy would contain nothing but the array data type and the most basic
operations: indexing, sorting, reshaping, basic element wise functions, et cetera.
2. All numerical code would reside in SciPy. However, one of NumPy’s important goals is
compatibility, so NumPy tries to retain all features supported by either of its predecessors.
3. Thus NumPy contains some linear algebra functions, even though these more properly
belong in SciPy. In any case, SciPy contains more fully-featured versions of the linear
algebra modules, as well as many other numerical algorithms.
4. If you are doing scientific computing with python, you should probably install both NumPy
and SciPy. Most new features belong in SciPy rather than NumPy.
25
32. To open a file c:\scores.txt for writing?
numPy – this module provides an array/matrix type, and it is useful for doing computations
on arrays. scipy – this module provides methods for doing numeric integrals, solving
differential equations, etc pylab – is a module for generating and saving plots
34. What is TkInter?
TkInter is Python library. It is a toolkit for GUI development. It provides support for various
GUI tools or widgets (such as buttons, labels, text boxes, radio buttons, etc) that are used in
GUI applications. The common attributes of them include Dimensions, Colors, Fonts,
Cursors, etc.
35. Is Python object oriented? what is object oriented programming?
Yes. Python is Object Oriented Programming language. OOP is the programming paradigm
based on classes and instances of those classes called objects. The features of OOP are:
Encapsulation, Data Abstraction, Inheritance, Polymorphism.
36. What is multithreading? Give an example.
It means running several different programs at the same time concurrently by invoking
multiple threads. Multiple threads within a process refer the data space with main thread and
they can communicate with each other to share information more easily.Threads are light-
weight processes and have less memory overhead. Threads can be used just for quick task
like calculating results and also running other processes in the background while the main
program is running.
37. Does Python supports interfaces like in Java? Discuss.
Python does not provide interfaces like in Java. Abstract Base Class (ABC) and its feature are
provided by the Python’s “abc” module. Abstract Base Class is a mechanism for specifying
what methods must be implemented by its implementation subclasses. The use of ABC’c
provides a sort of “understanding” about methods and their expected behaviour. This module
was made available from Python 2.7 version onwards.
38. What are Accessors, mutators, @property?
Accessors and mutators are often called getters and setters in languages like “Java”. For
example, if x is a property of a user-defined class, then the class would have methods called
setX() and getX(). Python has an @property “decorator” that allows you to ad getters and
setters in order to access the attribute of the class.
39. Differentiate between append() and extend() methods.?
Both append() and extend() methods are the methods of list. These methods a re used to add
the elements at the end of the list.
append(element) – adds the given element at the end of the list which has called this method.
extend(another-list) – adds the elements of another-list at the end of the list which is called
the extend method.
40. Name few methods that are used to implement Functionally Oriented Programming in
Python?
Python supports methods (called iterators in Python3), such as filter(), map(), and reduce(),
that are very useful when you need to iterate over the items in a list, create a dictionary, or
extract a subset of a list.
filter() – enables you to extract a subset of values based on conditional logic.
map() – it is a built-in function that applies the function to each item in an iterable.
reduce() – repeatedly performs a pair-wise reduction on a sequence until a single value is
computed.
41. What is the output of the following?
x = [‘ab’, ‘cd’]
print(len(map(list, x)))
A TypeError occurs as map has no len().
42. What is the output of the following?
x = [‘ab’, ‘cd’]
print(len(list(map(list, x))))
Explanation: The length of each string is 2.
43. Which of the following is not the correct syntax for creating a set?
1. a) set([[1,2],[3,4]])
2. b) set([1,2,2,3,4])
3. c) set((1,2,3,4))
4. d) {1,2,3,4}
Answer : a
Explanation : The argument given for the set must be an iterable.
44. Explain a few methods to implement Functionally Oriented Programming in Python.
Sometimes, when we want to iterate over a list, a few methods come in handy.
1. filter()
1. map()
1. reduce()
Flask supports database powered application (RDBS). Such system requires creating
a schema, which requires piping the shema.sql file into a sqlite3 command. So you
need to install sqlite3 command in order to create or initiate the database in Flask.
Flask allows to request database in three ways
46. Write a Python function that checks whether a passed string is palindrome Or not? Note: A
palindrome is a word, phrase, or sequence that reads the same backward as forward, e.g.,
madam or nurses run.
def isPalindrome(string):
left_pos = 0
right_pos = len(string) – 1
while right_pos >= left_pos:
if not string[left_pos] == string[right_pos]:
return False
left_pos += 1
right_pos -= 1
return True
print(isPalindrome(‘aza’))
47. Write a Python program to calculate the sum of a list of numbers.
def list_sum(num_List):
if len(num_List) == 1:
return num_List[0]
else:
return num_List[0] + list_sum(num_List[1:])
print(list_sum([2, 4, 5, 6, 7]))
Sample Output:
24
48. How to retrieve data from a table in MySQL database through Python code? Explain.
Not only the job aspirants but also the recruiters can refer this post to know the right
set of questions to evaluate a candidate. Let’s now step-in to explore the Python
Q&A section.
list1 = extendList(10)
list2 = extendList(123,[])
list3 = extendList('a')
However, the flow is like that a new list gets created once after the function is
defined. And the same get used whenever someone calls the extendList method
without a list argument. It works like this because the calculation of expressions (in
default arguments) occurs at the time of function definition, not during its invocation.
The list1 and list3 are hence operating on the same default list, whereas list2 is
running on a separate object that it has created on its own (by passing an empty list
as the value of the list parameter).
The definition of the extendList function can get changed in the following manner.
list1 = [10]
list2 = [123]
list3 = ['a']
Q-3: What Is The Statement That Can Be Used In Python If
The Program Requires No Action But Requires It Syntactically?
The pass statement is a null operation. Nothing happens when it executes. You
should use “pass” keyword in lowercase. If you write “Pass,” you’ll face an error like
“NameError: name Pass is not defined.” Python statements are case sensitive.
import os
print (os.path.expanduser('~'))
Output:
/home/runner
Q-5: What Are The Built-In Types Available In Python?
Here is the list of most commonly used built-in types that Python supports:
Check out the “re” expression that can check the email id for .com and .co.in
subdomain.
import re
print(re.search(r"[0-9a-zA-Z.]+@[a-zA-
Z]+\.(com|co\.in)$","micheal.pages@mp.com"))
Q-12: What Do You Think Is The Output Of The Following
Code Fragment? Is There Any Error In The Code?
list = ['a', 'b', 'c', 'd', 'e']
print (list[10:])
The result of the above lines of code is []. There won’t be any error like an
IndexError.
You should know that trying to fetch a member from the list using an index that
exceeds the member count (for example, attempting to access list[10] as given in the
question) would yield an IndexError. By the way, retrieving only a slice at the starting
index that surpasses the no. of items in the list won’t result in an IndexError. It will
just return an empty list.
for i in range(5):
print(i)
The range() function accompanies two sets of parameters.
range(stop)
stop: It is the no. of integers to generate and starts from zero. eg. range(3) == [0, 1,
2].
range([start], stop[, step])
Start: It is the starting no. of the sequence.
Stop: It specifies the upper limit of the sequence.
Step: It is the incrementing factor for generating the sequence.
Points to note:
Only integer arguments are allowed.
Parameters can be positive or negative.
The range() function in Python starts from the zeroth index.
Q-15: What Are The Optional Statements Possible Inside A
Try-Except Block In Python?
There are two optional clauses you can use in the try-except block.
The “else” clause
It is useful if you want to run a piece of code when the try block doesn’t create an
exception.
The “finally” clause
It is useful when you want to execute some steps which run, irrespective of
whether there occurs an exception or not.
Q-16: What Is A String In Python?
A string in Python is a sequence of alpha-numeric characters. They are immutable
objects. It means that they don’t allow modification once they get assigned a value.
Python provides several methods, such as join(), replace(), or split() to alter strings.
But none of these change the original object.
One of the common usages is to push values into a string with the %s format
specifier. The formatting operation in Python has the comparable syntax as the C
function printf() has.
Q-19: Is A String Immutable Or Mutable In Python?
Python strings are indeed immutable.
Let’s take an example. We have an “str” variable holding a string value. We can’t
mutate the container, i.e., the string, but can modify what it contains that means the
value of the variable.
In Python, strings are also lists of characters. We can access them using the index
which begins from zero and goes to the length minus one.
For example, in the string “Program,” the indexing happens like this:
Program 0 1 2 3 4 5
Q-21: What Is Docstring In Python?
A docstring is a unique text that happens to be the first statement in the following
Python constructs:
Python has given us many built-in functions such as print() and provides the ability to
create user-defined functions.
1. Built-in, and
2. User-defined.
The built-in functions happen to be part of the Python language. Some of these are
print(), dir(), len(), and abs() etc.
Step-1: to begin the function, start writing with the keyword def and then mention the
function name.
Step-2: We can now pass the arguments and enclose them using the parentheses. A
colon, in the end, marks the end of the function header.
Step-3: After pressing an enter, we can add the desired Python statements for
execution.
The return is a Python statement which we can use in a function for sending a value
back to its caller.
Python will treat that variable as local in the function-level scope. Any changes made
to that variable will remain local and will not reflect outside the function.
This scheme also has the advantage of bringing more time and space efficiency
because it leaves the need for creating local copies.
On the contrary, the disadvantage could be that a variable can get changed
accidentally during a function call. Hence, the programmers need to handle in the
code to avoid such uncertainty.
The continue statement is applicable for both the “while” and “for” loops.
Signature: id(object)
It accepts one parameter and returns a unique identifier associated with the input
object.
Please note that this type of argument syntax doesn’t allow passing a named
argument to the function.
Example of using the *args:
I
am
Learning
Python
Q-34: What Does The **Kwargs Do In Python?
We can also use the **kwargs syntax in a Python function declaration. It let us pass
N (variable) number of arguments which can be named or keyworded.
Python also does have a Main() method. But it gets executed whenever we run our
Python script either by directly clicking it or starts it from the command line.
We can also override the Python default main() function using the Python if
statement. Please see the below code.
print("Welcome")
print("__name__ contains: ", __name__)
def main():
print("Testing the main function")
if __name__ == '__main__':
main()
The output:
Welcome
__name__ contains: __main__
Testing the main function
Q-36: What Does The __ Name __ Do In Python?
The __name__ is a unique variable. Since Python doesn’t expose the main()
function, so when its interpreter gets to run the script, it first executes the code which
is at level 0 indentation.
To see whether the main() gets called, we can use the __name__ variable in an if
clause compares with the value “__main__.”
On the contrary, the pass statement instructs to do nothing, and the remainder of the
code executes as usual.
It returns the string denoting a character whose Unicode code point is an integer.
For example, the chr(122) returns the string ‘z’ whereas the chr(1212) returns the
string ‘Ҽ’.
>>> ord("z")
122
Q-43: What Is Rstrip() In Python?
Python provides the rstrip() method which duplicates the string but leaves out the
whitespace characters from the end.
The rstrip() escapes the characters from the right end based on the argument value,
i.e., a string mentioning the group of characters to get excluded.
It returns True if all characters in the string are of alphabet type, else it returns False.
#Example
str = 'pdf csv json'
print(str.split(" "))
print(str.split())
The output:
#Example
str = 'lEaRn pYtHoN'
print(str.title())
The output:
Learn Python
Now, check out some general purpose Python interview questions.
The tests confirmed that PyPy is nearly five times faster than the CPython. It
currently supports Python 2.7.
For example, many of the Python operations execute as atomic such as calling the
sort() method on a list.
This heap manager does the allocation/de-allocation of heap space for objects.
They are similar to sequences, just like the lists. However, There are some
differences between a tuple and list; the former doesn’t allow modifications whereas
the list does.
Also, the tuples use parentheses for enclosing, but the lists have square brackets in
their syntax.
The collection is a set of keys having a single associated value. We can call it a
hash, a map, or a hashmap as it gets called in other programming languages.
They are mutable and hence will not change. The values associated with the keys
can be of any Python types.
Internally, it has a contiguous array for referencing to other objects and stores a
pointer to the array variable and its length in the list head structure.
A Python class is a blueprint for creating the objects. It defines member variables
and gets their behavior associated with them.
We can make it by using the keyword “class.” An object gets created from the
constructor. This object represents the instance of the class.
The common code rests with the base class, and the child class objects can access
it via inheritance. Check out the below example.
desk = Desktop()
print(desk.processor, desk.os, desk.ram)
lap = Laptop()
print(lap.processor, lap.os, lap.ram)
The output:
def get_PC(self):
return "%s cpu & %s ram" % (self.processor, self.ram)
class Tablet():
make = "Intel"
def __init__(self, processor, ram, make):
self.PC = PC(processor, ram) # Composition
self.make = make
def get_Tablet(self):
return "Tablet with %s CPU & %s ram by %s" % (self.PC.processor,
self.PC.ram, self.make)
if __name__ == "__main__":
tab = Tablet("i7", "16 GB", "Intel")
print(tab.get_Tablet())
The output is:
Tablet with i7 CPU & 16 GB ram by Intel
Q-64: What Are Errors And Exceptions In Python Programs?
Errors are coding issues in a program which may cause it to exit abnormally.
try:
print("Executing code in the try block")
print(exception)
except:
print("Entering in the except block")
finally:
print("Reached to the final block")
The output is:
For example, if we want the user to enter only odd numbers, else will raise an
exception.
Python library has a no. of iterators. For example, a list is also an iterator and we can
start a for loop over it.
print(next(generate()))
The output is:
Python Generator function.
Q-70: What Are Closures In Python?
Python closures are function objects returned by another function. We use them to
eliminate code redundancy.
In the example below, we’ve written a simple closure for multiplying numbers.
def multiply_number(num):
def product(number):
'product() here is a closure'
return num * number
return product
num_2 = multiply_number(2)
print(num_2(11))
print(num_2(24))
num_6 = multiply_number(6)
print(num_6(1))
The output is:
22
48
6
Q-71: What Are Decorators In Python?
Python decorator gives us the ability to add new behavior to the given objects
dynamically. In the example below, we’ve written a simple example to display a
message pre and post the execution of a function.
def decorator_sample(func):
def decorator_hook(*args, **kwargs):
print("Before the function call")
result = func(*args, **kwargs)
print("After the function call")
return result
return decorator_hook
@decorator_sample
def product(x, y):
"Function to multiply two numbers."
return x * y
print(product(3, 3))
The output is:
However, we can take values of any kind. For distinguishing the data pairs, we can
use a comma(“,”) and keep the whole stuff inside curly braces({…}).
We can use this object directly in the “for” loops or transform it into a list of tuples by
calling the list() method. It has the following signature:
enumerate(iterable, to_begin=0)
Arguments:
iterable: array type object which enables iteration
to_begin: the base index for the counter is to get started, its default
value is 0
# Example - enumerate function
alist = ["apple","mango", "orange"]
astr = "banana"
print(list(enumerate(alist)) )
# Move the starting index to two from zero
print(list(enumerate(astr, 2)))
The output is:
Python maintains a symbol table to keep all necessary information about a program.
This info includes the names of variables, methods, and classes used by the
program.
All the information in this table remains in the global scope of the program and
Python allows us to retrieve it using the globals() method.
Signature: globals()
Arguments: None
# Example: globals() function
x = 9
def fn():
y = 3
z = y + x
# Calling the globals() method
z = globals()['x'] = z
return z
# Test Code
ret = fn()
print(ret)
The output is:
12
Q-84: Why Do You Use The Zip() Method In Python?
The zip method lets us map the corresponding index of multiple containers so that
we can use them using as a single unit.
Signature:
zip(*iterators)
Arguments:
Python iterables or collections (e.g., list, string, etc.)
Returns:
A single iterator object with combined mapped values
# Example: zip() function
But the instance or non-static variables are altogether different for different objects.
The programming languages like C++ and Java need to use the static keyword to
make a variable as the class variable. However, Python has a unique way to declare
a static variable.
All names initialized with a value in the class declaration becomes the class
variables. And those which get assigned values in the class methods becomes the
instance variables.
# Example
class Test:
aclass = 'programming' # A class variable
def __init__(self, ainst):
self.ainst = ainst # An instance variable
print(test1.aclass)
print(test2.aclass)
print(test1.ainst)
print(test2.ainst)
programming
programming
1
2
programming
Let’s now answer some advanced-level Python interview questions.
Q-86: How Does The Ternary Operator Work In Python?
The ternary operator is an alternative for the conditional statements. It combines true
or false values with a statement that you need to test.
copy.copy() function
It makes a copy of the file from source to destination.
It’ll return a shallow copy of the parameter.
copy.deepcopy() function
It also produces the copy of an object from the source to destination.
It’ll return a deep copy of the parameter that you can pass to the function.
Q-89: What Is The Purpose Of Docstrings In Python?
In Python, the docstring is what we call as the docstrings. It sets a process of
recording Python functions, modules, and classes.
def demo2():
print 'in demo2()'
def demo1():
print 'in demo1()'
demo2()
sys.settrace(trace_calls)
demo1()
Q-95: Why And When Do You Use Generators In Python?
A generator in Python is a function which returns an iterable object. We can iterate
on the generator object using the yield keyword. But we can only do that once
because their values don’t persist in memory, they get the values on the fly.
Generators give us the ability to hold the execution of a function or a step as long as
we want to keep it. However, here are a few examples where it is beneficial to use
generators.
We can replace loops with generators for efficiently calculating results involving large
data sets.
Generators are useful when we don’t want all the results and wish to hold back for
some time.
Instead of using a callback function, we can replace it with a generator. We can write a
loop inside the function doing the same thing as the callback and turns it into a
generator.
Q-96: What Does The Yield Keyword Do In Python?
The yield keyword can turn any function into a generator. It works like a standard
return keyword. But it’ll always return a generator object. Also, a method can have
multiple calls to the yield keyword.
See the example below.
def testgen(index):
weekdays = ['sun','mon','tue','wed','thu','fri','sat']
yield weekdays[index]
yield weekdays[index+1]
day = testgen(0)
print next(day), next(day)
But remember, we can’t change the list after turning it into a tuple because it
becomes immutable.
weekdays = ['sun','mon','tue','wed','thu','fri','sat']
listAsTuple = tuple(weekdays)
print(listAsTuple)
Set doesn’t allow duplicate entries so that the conversion will remove any such item.
A set is an ordered collection, so the order of list items would also change.
However, we can use the set() function to convert a list into a Set.
weekdays = ['sun','mon','tue','wed','thu','fri','sat','sun','tue']
listAsSet = set(weekdays)
print(listAsSet)
However, we can achieve the conversion by breaking the list into a set of pairs and
then call the zip() function to return them as tuples.
Passing the tuples into the dict() function would finally turn them into a dictionary.
weekdays = ['sun','mon','tue','wed','thu','fri']
listAsDict = dict(zip(weekdays[0::2], weekdays[1::2]))
print(listAsDict)
In Python, the list has a count() function which returns the occurrences of a particular
item.
Count The Occurrences Of An Individual Item.
weekdays = ['sun','mon','tue','wed','thu','fri','sun','mon','mon']
print(weekdays.count('mon'))
#output: 3
Count The Occurrences Of Each Item In The List.
We’ll use the list comprehension along with the count() method. It’ll print
the frequency of each of the items.
weekdays = ['sun','mon','tue','wed','thu','fri','sun','mon','mon']
print([[x,weekdays.count(x)] for x in set(weekdays)])
#output: [['wed', 1], ['sun', 2], ['thu', 1], ['tue', 1], ['mon', 3],
['fri', 1]]
Q-99: What Is NumPy And How Is It Better Than A List In
Python?
NumPy is a Python package for scientific computing which can deal with large data
sizes. It includes a powerful N-dimensional array object and a set of advanced
functions.
Also, the NumPy arrays are superior to the built-in lists. There are a no. of reasons
for this.