Python Test Answers
·
1. Which of the following will disable
output buffering in Python?
Answers:
• Using the -u command line
switch
• class Unbuffered: def
__init__(self, stream): self.stream = stream def write(self, data):
self.stream.write(data) self.stream.flush() def __getattr__(self, attr): return
getattr(self.stream, attr) import sys sys.stdout=Unbuffered(sys.stdout)
• Setting the
PYTHONUNBUFFERED environment variable
• sys.stdout =
os.fdopen(sys.stdout.fileno(), 'w', 0)
2. Which of the following members of
the object class compare two parameters?
Answers:
• object.__eq__(self, other)
• object.__ne__(self, other)
• object.__compare__(self,
other)
•
object.__equals__(self, other)
•
object.__co__(self, other)
• None of these
3. Object is the base class of
new-style datatypes. Which of the following functions is not a member of the
object class?
Answers:
• object.__eq__(self,
other)
•
object.__ne__(self, other)
• object.__nz__(self)
•
object.__repr__(self)
• None of these
4. In Python, what is the default
maximum level of recursion?
Answers:
• 500
• 1000
• 10000
• There is no
default maximum level
5. Various email and news clients
store messages in a variety of formats, many providing hierarchical and
structured folders. Which of the following provides a uniform API for reading
the messages stored in all the most popular folder formats?
Answers:
• mailstruct
• emailarch
• emailfolders
• mailbox
6. Which of the following are the main
features of Python?
Answers:
• Cross-platform
• Extensible
•
Object-oriented, with multiple inheritance
• Written in Java
• Overloading of
common operators
• All of these
7. Which of the following variables
store parameters passed from outside?
Answers:
• sys.param
• sys.arg
• sys.argv
• sys.prm
8. Which of the following functions
can change the maximum level of recursion?
Answers:
• setmaxrecursion
function in the sys module
• setrecursionlimit function
in the sys module
•
setmaximumrecursion function in the sys module
• None of these
9. Read the following statements:
>>> import array
>>> a = array.array('c','spam
and eggs')
>>> a[0] = 'S'
>>> a[-4:] =
array.array('c','toast')
>>> print ''.join(a)
Which of the following will be the
output of the above code snippet?
Answers:
• Spam and toast
• spam and toast
• Spam and eggs
• spam and eggs
• spamandtoast
• spamandeggs
10. How can a numeric String (eg.
"545.2222") be converted to Float or Integer?
Answers:
• import string
parseStr = lambda x: x.isalpha() and x or x.isdigit() and (x) or x.isalnum()
and x or \ len(set(string.punctuation).intersection(x)) == 1 and \ x.count('.')
== 1 and float(x) or x parseStr("545.2222")
• def convert(n):
try: return int(n) except ValueError: return float(n + 0.5)
convert("545.2222")
• a = "545.2222"
float(a) int(float(a))
• def
parseIntOrFloat(s): return eval(s)
11. Which of the following is the
correct prototype of the string.find() function?
Answers:
• string.find(s,
sub ,start ,end)
• string.find(s,
sub ,start [,end])
• string.find(s, sub [,start
[,end]])
• string.find(s,
sub [,start] ,end)
12. It is possible to use encoding
other than ASCII in Python source files. The best way to do it is to put one
more special comment line right after the #! line to define the source file
encoding. Which of the following is the correct statement to define encoding?
Answers:
• coding:
iso-8859-15
• # -*-
iso-8859-15 -*-
• # -*- coding: iso-8859-15
-*-
• None of these
13. How can a null object be declared
in Python?
Answers:
• none
• None
• null
• Null
14. Which of the following modules
lets you check whether two files are identical, and whether two directories
contain some identical files?
Answers:
• dircomp
• filecompare
• filecmp
• structcomp
15. Which function could be used to
list every file and folder in the current directory?
Answers:
•
os.dirnames('.')
• os.listdir('.')
• os.listdir('/')
• os.ls()
16. The core text processing tasks in
working with email are parsing, modifying, and creating the actual messages.
Which of the following modules deal with parsing and processing email messages?
Answers:
• MimeWriter
• mimify
• Both MimeWriter and mimify
• Neither
MimeWriter nor mimify
17. Which of the following is the
correct prototype for the 'open' function of the file class in python 2.2+?
Answers:
• open(fname [,mode
[,buffering]])
• open(fname
[,buffering [,mode]])
• open(fname
[,mode])
•
open(fname,mode,buffering)
•
open(fname,buffering,mode)
• None of these
18. Which user input method will act
like a file-object on which read and readline functions can be called?
Answers:
• sys.stdin
• raw_input()
• input()
• sys.argv
19. Which of the following protocol
libraries can be used for an email implementation in a Python application?
Answers:
• telnetlib
• smtplib
• ftplib
• None of these
20. Which of the following statements
imports every name in a module namespace into the current namespace?
Answers:
• from modname
import All
• from modname import *
• from modname
import ?
• from modname
import All as *
21. Which is the correct way to remove
an installed Python package?
Answers:
• easy_install -v
<package>
• pip uninstall
<package>
• easy_install -u
<package>
• pip -m
<package>
22. One common way to test a
capability in Python is to try to do something, and catch any exceptions that
occur.
Which of the following is the correct
mechanism of trapping an error?
Answers:
• try: code to be
verified will come here exception <except>:
• try: code to be verified
will come here except <exception>:
• try: code to be
verified will come here exception:
• try: code to be
verified will come here exception <exception>:
23. Which of the following is the
correct way to get the size of a list in Python?
Answers:
• list.length()
• len(list)
• sizeof(list)
• list.size()
24. What will be the output of the
following statements:
>>> import string
>>>
string.ljust(width=30,s="Mary had a little lamb")
Answers:
• 'Mary had a little lamb '
• 'Mary had a
little lamb'
• ' Mary had a
little lamb'
• None of these
25. The most important element of the
email package is the message. The email class provides the classes for messages
in Python. Which of the following classes is used for the message?
Answers:
• email.Message
• email.message.Message
• email.messages
•
email.emailmessage
26. Consider the function:
def hello():
return "Hello,
world!"
Which of the following is the correct
way to make a decorator that could be used to make hello() return "#Hello,
world!#"?
Answers:
• def hello():
return "#Hello, world!#"
• def hashes(fn): def
wrapped(): return "#" + fn() + "#" return wrapped @hashes
def hello(): return "Hello, world!"
• def hashes(fn):
def wrapped(): return "#" + "#" return wrapped @hashes def
hello(): return "Hello, world!"
• def hashes(fn):
def wrapped(): print "#" + fn() + "#" return @hashes def
hello(): return "Hello, world!"
27. Object is the base class of
new-style datatypes. Which of the following functions is not a member of the
object class?
Answers:
•
object.__eq__(self, other)
• object.__notequal__(self,
other)
•
object.__repr__(self)
• None of these
28. Which of the following modules
keep prior directory listings in the memory to avoid the need for a new call to
the file system?
Answers:
• sys
• FileSys
• dirsys
• dircache
29. Which of the following modules is
used internally to determine whether a path matches?
Answers:
• dircmp
• filecompare
• fncmp
• fnmatch
30. Examine the following prototype
for the 'open' function of the file class in Python 2.2+:
open(fname [,mode [,buffering]])
Which of the following is correct for
the 'buffering' argument?
Answers:
• 0 for none
• 1 for line
oriented
• An integer
larger than 1 for number of bytes
• All of these
31. Which of the following statements
copy the contents of a list and not just a reference to the list?
Answers:
• newlist =
oldlist
• newlist = oldlist[:]
• newlist =
oldlist(dummy)
• None of these
32. Which of the following functions
is used to send audio data via the Internet?
Answers:
•
email.MIMEAudio(audiodata [,subtype [,encoder [,**params]]])
•
email.SendAudio(audiodata [,subtype [,encoder [,**params]]])
•
email.MIMEAudio.MIMEAudio(audiodata [,subtype [,encoder [,**params]]])
•
email.MIMEAudio.SendAudio(audiodata [,subtype [,encoder [,**params]]])
33. Read the following statements:
Statement 1: A simple assignment
statement binds a name into the current namespace, unless that name has been declared
as global.
Statement 2: A name declared as global
is bound to the global (module-level) namespace.
Which of the following is correct?
Answers:
• Statement 1 is
true, but statement 2 is false.
• Statement 2 is
true, but statement 1 is false.
• Both statements are true.
• Both statements
are false.
34. Which of the following commands
would produce the following result:
result: 'line 1\nline 2'
Answers:
• result =
'\nline 1\nline 2\n'.rstrip()
• result =
'\nline 1\nline 2\n'.split()
• result = '\nline 1\nline
2\n'.strip()
• result =
'\nline 1\nline 2\n'.lstrip()
• result =
'\nline 1\nline 2\n'.splitlines()
35. Which is not used to install
Python packages?
Answers:
• easy_install
• pip
• distribute
• installtools
36. Which of the following exceptions
occurs while importing a module?
Answers:
• ModuleError
• ImportError
•
ImportModuleError
• ReferenceError
37. Which of the following statements
can be used to remove an item from a list by giving the index?
Answers:
• remove
listname[index]
• del listname[index]
• kill
listname[index]
• None of these
38. Read the following statements:
>>> word = 'Help' + 'A'
>>> '<' + word*5 + '>'
Which of the following will be the
output of the above code snippet?
Answers:
• '<HelpAHelpAHelpAHelpAHelpA>'
•
'<HelpA5>'
•
'<HelpA*5>'
• An error
• None of these
39. The least sophisticated form of
text output in Python is writing to open files. In particular, which of the
following streams can be used?
Answers:
• STDOUT
• STDERR
• STDPRN
• STDFIL
40. Which of the following options are
true regarding these two code samples?
Code sample 1:
def main():
for i in xrange(10**8):
pass
main()
Code sample 2:
for i in xrange(10**8):
pass
Answers:
• Code sample 2 would take a
longer time to complete than code sample 1. This is because in code sample 1,
'i' is local, whereas in code sample 2 it is global.
• Code sample 1
would take a longer time to complete than code sample 2. This is because code
sample 1 would take additional time in defining and calling the function.
• Code sample 2
would take less time to complete because Python is able to detect pass as a
null operation, and skip the whole loop.
• None of these.
41. How many arguments can a print
statement handle?
Answers:
• One
• Any number of
string arguments only
• Any number of
numeric arguments only
• Any number of string or
numeric arguments
42. When is the "yield"
keyword used in Python?
Answers:
• When other
processes need to take precedence over the Python script
• To break out of
a loop
• When a function needs to
return a list that only needs to be read through once
• Never
43. What is the best way to check if
the object 'myobject' is iterable in Python?
Answers:
•
myobject.isIter()
• try: [ e for e in
myobject] except TypeError: print myobject, 'is not iterable'
• try:
iter.myobject except: print myobject, 'is not iterable'
• if [ e for e in
myobject]: print myobject, 'is iterable' else: print myobject, 'is not
iterable'
44. In Python, built-in exceptions can
be inherited from. Which of the following is the base exception class?
Answers:
• Exceptions
• BaseException
• Exception
• Except
45. Given a program that saved a text
file in the directory "/temp_files", which of the following will make
sure that "/temp_files" exists before writing the file?
Answers:
• d =
os.path.dirname("/temp_files") if not os.path.exists(d):
os.makedirs(d)
• d =
os.path("/temp_files") if not os.path(d): os.makedirs(d)
• d =
os.path.dirname("/temp_files") if os.path.exists(d): os.makedirs(d)
• if not
os.path.exists("/temp_files"): os.makedirs(d)
46. Read the following statements:
>>> lst =
['spam','and','eggs']
>>> lst[2] = 'toast'
>>> print ''.join(lst)
>>> print ' '.join(lst)
Which of the following is the output
of the second print statement in the above code snippet?
Answers:
• spam and eggs
• spamandeggs
• spamandtoast
• spam and toast
47. Read the following statements:
>>> import string
>>> s = 'mary\011had a little
lamb'
>>> print s
Which of the following will be the
output of the above code snippet?
Answers:
• mary had a
little lamb
• mary\011 had a
little lamb
• mary had a little lamb
• mary\011had a
little lamb
48. Read the following statements:
Statement 1: Many string module
functions are now also available as string object methods.
Statement 2: To use string object
methods, there is no need to import the string module.
Which of the following is correct?
Answers:
• Statement 1 is
true, but statement 2 is false.
• Statement 2 is
true, but statement 1 is false.
• Both statements are true.
• Both statements
are false.
49. What would the 'sorted_tel' be in
the following code:
tel = {'jack': 4098, 'sape': 5139,
'bill': 3678, 'mike': 2122}
sorted_tel = sorted(tel.items(),
key=lambda x: x[1])
Answers:
• A dictionary
sorted by the second element.
• A list of Tuples sorted by
the second element.
• A list of
dictionaries sorted by the first element.
• A dictionary
sorted by the first element.
• A list of
Tuples sorted by the first element.
50. Inheriting from a base class
enables a custom class to use a few new capabilities, such as slots and
properties. Which of the following is the base class of new-style datatypes?
Answers:
• base
• object
• dict
• custom
• None of these
51. How can a list be split into equal
sized chunks?
Answers:
• f = lambda x,
n, acc=[]: f(x[n:], n, acc+[(x[:n])]) if x else acc
• def chunks(l, n): for i in
xrange(0, len(l), n): yield l[i:i+n]
• def split_seq(seq,
num_pieces): start = 0 for i in xrange(num_pieces): stop = start +
len(seq[i::num_pieces]) yield seq[start:stop] start = stop
• chunks = lambda
l, n: [l[x: x+n] for x in xrange(0, len(l), n)] chunks(l, 10)
52. Writing to STDOUT and STDERR is
fairly inflexible, and most of the time the print statement accomplishes the
same purpose more flexibly. How many arguments can a print statement handle?
Answers:
• 1
• 2
• 7
• Any number
53. Which of the following is the best
way to reverse the string 'Test String' in Python?
Answers:
•
string.reverse('Test String')
• 'Test String'[::-1]
• reversed('Test
String')
• 'Test
String'[-1:0]
54. What is the result of the
following code:
>>> import itertools
>>> x = itertools.count(0)
>>> x.__class__.__name__
Answers:
• Nothing
• 'count'
• 'Object'
• 'None'
55. What is the most flexible way to
call the external command "ls -l" in Python?
Answers:
• from subprocess import
call call(["ls", "-l"])
• from subprocess
import call call("ls -l")
•
os.system("ls -l")
•
os.system(["ls"], ["-l"])
56. Which of the following is the
correct method for changing a global variable inside a function?
Answers:
• def
change_globvar(): globvar = 1
• def change_globvar():
global globvar globvar = 1
• def
change_globvar(): import globvar globvar = 1
• def
change_globvar(): global globvar = 1
57. Which list flattening method will
have the shortest running time?
Answers:
• l = [ [1, 2, 3], [4, 5,
6], [7], [8, 9] ] * 99 import itertools list( itertools.chain.from_iterable( l
) )
• l = [ [1, 2,
3], [4, 5, 6], [7], [8, 9] ] * 99 reduce( lambda x, y: x + y, l )
• l = [ [1, 2,
3], [4, 5, 6], [7], [8, 9] ] * 99 sum( l, [ ] )
• l = [ [1, 2,
3], [4, 5, 6], [7], [8, 9] ] * 99 [ item for sublist in l for item in sublist ]
58. Which of the following is the
correct way to flush output of Python print?
Answers:
• import sys
sys.stdout.flush()
• class
flushfile(file): def __init__(self, f): self.f = f def write(self, x) self.f.write(x)
self.f.flush() import sys sys.stdout = flushfile(sys.stdout)
• import sys
sys.stdout = os.fdopen(sys.stdout.fileno(), 'w', 0)
• Running python
with the -u command-line switch
59. Which of the following is the best
method to find the indices of all occurances of a word in a string?
line = 'mary had a little lamb, little
lamb, little lamb'
word = 'lamb'
Answers:
• import re indices =
[occurance.start() for occurance in re.finditer(word, line)]
• def
find_all(line, word): start = 0 while True: start = line.find(word, start) if
start == -1: return yield start start += len(word) indices =
list(find_all(line, word))
• indices = [i -
1 for i in range(len(line)) if line.startswith(word, i - 1)]
• None of these
60. In Python 2.x, which of the
following is the way to check to make sure that the variable 'x' is not a
string?
Answers:
• assert
isinstance(x, basestring)
• assert not isinstance(x,
basestring)
• assert not
instance(x, basestring)
• assert not
x.isinstance(basestring)
61. Which of the following will throw
an exception in Python?
Answers:
• call
Exception("Here is an Exception!")
• throw
Exception("Here is an Exception!")
• raise Exception("Here
is an Exception!")
• create
Exception("Here is an Exception!")
62. Which of the following functions
modifies the list in place to indicate which items are directories, and which
are plain files?
Answers:
•
dircache.listdir(path, lst)
• dircache.annotate(path,
lst)
•
dircache.filter(path, lst)
•
dircache.scan(path, lst)
63. Which Python module can be used
for copying files?
Answers:
• util
• shutil
• copy
• filecopy
64. Which of the following statements
are true?
A. ._variable is semi-private and
meant just for convention.
B. .__variable is considered
superprivate and gets name mangled to prevent accidental access.
C. .__variable__ is typically reserved
for built-in methods or variables.
Answers:
• A
• B
• C
• A, B, and C
65. How can an element be removed from
a list using its list index?
Answers:
•
myList.remove(index)
• pop myList[index]
• del myList[index]
•
myList.delete(index)
66. Which of the following is the
correct way to check to see if the variable theVar is an integer?
Answers:
• isinstance(theVar, int)
•
theVar.isinstance(int)
•
int.isinstance(theVar)
• is(theVar, int)
67. Which of the following is the base
class for new-style file objects?
Answers:
• base
• file
• fileobject
• filebase
68. Which of the following methods
returns the ASCII value of a character in Python?
Answers:
• ascii
• ord
• asciicode
• None of these
69. What is the output of the
following code:
name = 'Jon'
name.rjust(4, 'A')
Answers:
• 'Jon A'
• 'A Jon'
• 'AJon'
• 'JonA'
70. Which of the following is a way to
find a local computer's IP address with Python?
Answers:
• import socket
socket.gethostbyname(socket.gethostname())
•
socket.gethostbyname(socket.gethostname())
• import socket
gethostbyname(socket.gethostname())
• import ifconfig
print (ifconfig -a)
71. What is a metaclass in Python?
Answers:
• A class that is
inherited from
• A class that
inherits from another class
• Something that can be
attached to any class, that gives it a constant set of attributes
• Something that
creates "class" objects
72. Which of the following is the
correct way to call the private method, myPrivateMethod(), in class MyClass,
using dir(obj)?
class MyClass:
def
__myPrivateMethod(self):
print "Private Method"
obj = MyClass()
print dir(obj)
Answers:
•
__myPrivateMethod
• _MyClass__myPrivateMethod
• myPrivateMethod
• A private
method will not be shown in the output.
73. What is the output of the
following code?
def foo(param1, *param2):
print param1
print param2
def bar(param1, **param2):
print param1
print param2
foo(1,2,3,4,5)
bar(1,a=2,b=3)
Answers:
• TypeError:
foo() got multiple values for keyword argument 'param1'
• 1 (2, 3, 4, 5)
1 (2, 3)
• 1 (2, 3, 4, 5) 1 {'a': 2,
'b': 3}
• 1 {2, 3, 4, 5}
1 ('a': 2, 'b': 3)
74. Which of the following is the
correct way to execute a program from inside Python without having to consider
how the arguments/quotes are formatted?
Answers:
• import
subprocess subprocess.call('C:\\Temp\\a b c\\Notepad.exe', 'C:\\test.txt')
•
os.call(['C:\\Temp\\a b c\\Notepad.exe', 'C:\\test.txt'])
• import subprocess
subprocess.call(['C:\\Temp\\a b c\\Notepad.exe', 'C:\\test.txt'])
•
subprocess.call(['C:\\Temp\\a b c\\Notepad.exe', 'C:\\test.txt'])
75. What is the correct way to delete
a directory that is not empty using Python?
Answers:
•
os.remove('/directory')
• os.rmtree('/directory')
•
shutil.rmtree('/directory')
• import shutil
shutil.rmtree('/directory')
76. Which of the following is the
correct way to write a generator which will output the numbers between 1 and
100 (inclusive)?
Answers:
• def onehundred(start,
end): current = start while current <= end: yield current current += 1 for x
in onehundred(1, 100): print x
• def
onehundred(start, end): current = start while current <= end: return current
current += 1 for x in onehundred(1, 100): print x
• def onehundred(start,
end): current = start while current <= end: yield current current += 2 for x
in onehundred(1, 100): print x
• def
onehundred(start, end): while current <= end: yield current current += 1 for
x in onehundred(1, 100): print x
77. Which of the following code
snippets concatenates the list a_list = [1, 2, 3] with the tuple a_tuple = (4,
5), so the result would be [1, 2, 3, 4, 5]?
Answers:
• a_list +
a_tuple
• a_list.extend(a_tuple)
•
a_list.append(a_tuple)
•
a_list.append(*a_tuple)
78. Which of the following will
determine the number of CPUs available in the operating environment?
Answers:
• import os
os..cpu_count()
• import sys
sys..cpu_count()
• import psutil
sutil.NUM_CPUS
• import multiprocessing
multiprocessing.cpu_count()