Python Exceptions: Practice Questions
For each snippet, write the output, the exception type, or “Runs Forever.” If it prints nothing, write “No Output”.
Question 1
xs = []
total = 0
while xs:
total += 1
print('total=', total)Answer
total= 0
Question 2
xs = []
while len(xs)<5:
xs.append('test')
print('len(xs)=',len(xs))Answer
len(xs)= 5
Question 3
xs = [1, 2, 3]
total = 10
for x in xs:
total %= x
print("total=",total)Answer
total= 0
Question 4
s = 'hello world'
i = s.find(' ')
print("i=", i)Answer
i= 5
Question 5
grades={
'alice':{'hw1':99,'hw2':88},
'bob':{'hw1':82,'hw2':91},
}
for k,v in sorted(grades.items()):
print(v['hw1'])Answer
99
82
Question 6
grades={
'alice':{'hw1':99,'hw2':88},
'bob':{'hw1':82,'hw2':91},
}
for k,v in sorted(grades.items()):
print(k[0])Answer
a
b
Question 7
grades={
'alice':{'hw1':99,'hw2':88},
'bob':{'hw1':82,'hw2':91},
}
total = 0
for i in grades:
for j in i:
total += 1
print('total=',total)Answer
total= 8
Question 8
xs = []
while xs:
total += 1
assert(xs)
print('total=', total)Answer
NameError
Question 9
xs = [1, 2, 3]
total = 0
while xs:
total //= total
print('len(xs)=',len(xs))Answer
ZeroDivisionError
Question 10
xs = [1, 2, 3]
try:
result = xs[3]
except IndexError:
result = -1
print('result=', result)Answer
result= -1
Question 11
grades={
'alice':{'hw1':99,'hw2':88},
'bob':{'hw1':82,'hw2':91},
}
try:
output = "grade=" + grades['charlie']['hw1']
except KeyError:
output = 'oops'
print('output=', output)Answer
output= oops
Question 12
def foo(xs):
assert(len(xs) > 0)
foo()Answer
TypeError
Question 13
def foo(xs):
assert(len(xs) > 0)
try:
foo([1,2,3])
except AssertionError:
passAnswer
No Output
Question 14
def bar(xs):
if not len(xs) > 0:
raise ValueError('input list must be non-empty')
return len(xs)*2
result = 0
try:
result += bar([1,2,3])
result += bar([2,3])
result += bar()
result += bar([5])
except AssertionError:
result += 1
except TypeError:
result += 5
print('result=', result)Answer
result= 15
Question 15
def bar(xs):
if not len(xs) > 0:
raise ValueError('input list must be non-empty')
return len(xs)*2
result = 0
try:
result += bar([1,2,3])
result += bar([2,3])
result += bar()
result += bar([5])
except ValueError:
result += 1
except TypeError:
result += 5
print('result=', result)Answer
result= 15
Question 16
def bar(xs):
assert(len(xs) > 0)
return len(xs)*2
result = 0
try:
result += bar([1,2,3])
result += bar([2,3])
result += bar([])
result += bar([5])
except AssertionError:
pass
print('result=', result)Answer
result= 10
Question 17
def bar(xs):
assert(len(xs) > 0)
return len(xs)*2
result = 0
try:
result += bar([1,2,3])
result += bar([2,3])
result += bar()
result += bar([5])
except AssertionError:
result += 1
except TypeError:
result += 5
print('result=', result)Answer
result= 15
Question 18
xs = []
while len(xs)<5:
xs.append('test')
assert(xs)
print('len(xs)=',len(xs))Answer
len(xs)= 5
Question 19
xs = [1, 2, 3]
while xs:
xs.append('test')
assert('t' in xs)
print('len(xs)=',len(xs))Answer
AssertionError
Question 20
xs = [1, 2, 3]
try:
result = xs[3]
except:
result = -1
print('result=', result)Answer
result= -1
Question 21
xs = [1, 2, 3]
try:
result = xs[3]
except NameError:
result = -1
print('result=', result)Answer
IndexError
Question 22
grades={
'alice':{'hw1':99,'hw2':88},
'bob':{'hw1':82,'hw2':91},
}
try:
output = "grade=" + grades['charlie']['hw1']
except IndexError:
output = 'oops'
print('output=', output)Answer
KeyError
Question 23
def foo(xs):
assert(len(xs) > 0)
result = 0
try:
result += foo([1,2,3])
except AssertionError:
result -= 1
print('result=', result)Answer
TypeError
Question 24
def foo(xs):
assert(len(xs) > 0)
example = 0
try:
example += foo([1,2,3])
example += 1
except ValueError:
pass
print('example=', example)Answer
TypeError
Question 25
def foo(xs):
assert(len(xs) > 0)
example = 0
try:
example += foo([1,2,3])
example += 1
except AssertionError:
pass
print('example=', example)Answer
TypeError
Question 26
def bar(xs):
assert(len(xs) > 0)
return len(xs)*2
result = 0
try:
result += bar([1,2,3])
result += bar([2,3])
result += bar([])
result += bar([5])
except ValueError:
pass
print('result=', result)Answer
AssertionError
Question 27
xs = [0, 1, 2]
xs.replace(1, 2)
print("xs=", xs)Answer
AttributeError
Question 28
grades={
'alice':{'hw1':99,'hw2':88},
'bob':{'hw1':82,'hw2':91},
}
for k,v in sorted(grades.items()):
print(k['hw1'])Answer
TypeError
Question 29
grades={
'alice':{'hw1':99,'hw2':88},
'bob':{'hw1':82,'hw2':91},
}
for k,v in sorted(grades.items()):
print(v[0])Answer
KeyError
Question 30
grades={
'alice':{'hw1':99,'hw2':88},
'bob':{'hw1':82,'hw2':91},
}
output = "grade=" + grades['alice']['hw1']
print('output=', output)Answer
TypeError
Question 31
grades={
'alice':{'hw1':99,'hw2':88},
'bob':{'hw1':82,'hw2':91},
}
output = "grade=" + grades['charlie']['hw1']
print('output=', output)Answer
KeyError
Question 32
grades={
'alice':{'hw1':99,'hw2':88},
'bob':{'hw1':82,'hw2':91},
}
output = "grade=" + grades['bob']['hw2'][91]
print('output=', output)Answer
TypeError
Question 33
grades={
'alice':{'hw1':99,'hw2':88},
'bob':{'hw1':82,'hw2':91},
}
output = alice['hw1']
print('output=', output)Answer
NameError
Question 34
def bar(xs):
if not len(xs) > 0:
raise ValueError('input list must be non-empty')
return len(xs)*2
result = 0
result += bar
print('result=', result)Answer
TypeError
Question 35
xs = [1, 2, 3]
while xs:
xs.append('test')
print('len(xs)=',len(xs))Answer
runs forever
Question 36
xs = [1, 2, 3]
while xs:
xs += 'test'
print('len(xs)=',len(xs))Answer
runs forever