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()