Exam PCAP All QuestionsBrowse all questions from this exam
Question 80

What is the expected behavior of the following code?

    Correct Answer: A

    C

Discussion
aferiverOption: B

B, the question is incorrect. m = 0 def foo(n): global m assert m != 0 try: return 1/n # 1/0 is ZeroDivisionError except ArithmeticError: raise ValueError try: foo(0) except ArithmeticError: m += 2 except: m += 1 # Because is ZeroDivisionError, 0+1= 1 print(m) # Print 1

stuartzOption: A

A if ':' after except ArithmeticError else SyntaxError. 1/0 will raise ZeroDivision error which will be caught by the ArithmeticError at both levels with a m sum of 3.

it_man_531Option: C

"C" is correct answer. colon is missing in except ArithmeticError hence it will return a SyntaxError

codedatakageOption: A

I have implemented the code, and I get the answer "A". I write here the code to help to test it. m = 0 def foo(n): global m assert m==0 try: return 1/n except ArithmeticError: m+=1 raise try: foo(0) except ArithmeticError: m+=2 except: m+=1 print(m)# print: 3

DTL001Option: C

Answer is C The real exam has : except ArithmeticError: m = 0 def foo(n): global m assert m != 0 try: return 1/n except ArithmeticError: raise ValueError try: foo(0) except ArithmeticError: m +=2 except: m +=1 print(m) # Print 1

vlobachevskyOption: A

A is correct

mazimir

agree, but only in case: except ArithmeticError had ":" on the end. Without ":" it will return SyntaxError

JnanadaOption: A

If it wasnt for Type Error, Answer is A.

zantrzOption: A

The answer is A. m = 0 def foo(n): global m assert m == 0 #raises an AssertionError if m is equal to 0. This is a check to ensure that m is zero. try: return 1/n except ArithmeticError: #there is ZeroDivisionError so m will be 0+1 = 1 m+=1 raise #if we add "raise" we get the exception error try: #the outer try block calls the foo(0) function, which will raise an ArithmeticError (precisily ZeroDivisionError) foo(0) except ArithmeticError: #this block will be executed m +=2 # so we add 1 +2 = 3 except: m +=1 #If any other exception occurs, m is incremented by 1, and the current value of m is printed. In case of foo(0) this block will not be executed. print(m) # Prints 3

Ujjal_dOption: C

Which is correct?

emanuelcar990Option: C

the awnser its C SyntaxError: 'return' outside function and its 1 /n and the its global m = 0 and not n

swatiphadtareOption: D

If code doesnt have type then answer is D m = 0 def foo(n): global m assert m == 0 try: return 1/n except ArithmeticError: m=m+1 raise ValueError try: foo(0) except ArithmeticError: m +=2 except: m +=1 print(m) # Prints 2

MallieOption: A

A. Two arithmetic errors. The 'raise' in the example doesn't specify an error so it continues handling a 'ZeroDivisionError'. (This all assumes the second colon is put in of course)

ahujaOption: A

Answer is A: 1, it throws AssertionError, hence goes to m+=1