# Assessment - Open Science

Mar 11, 2015 • John Pormann

These MCQs are for the Python lesson on Making Choices section (http://swcarpentry.github.io/python-novice-inflammation/05-cond.html).

Question 1

Suppose we want to test for inclusion in a set, where something is “in” the set if it has property-A and one of either proprty-B or property-C (assume all are boolean values). A prototype function is below:

``````def func( A, B, C ):
if( A and B or C ):
return True
else:
return False
``````
• This function will properly classify items based on their properties
• This function will NOT properly classify items based on their properties

(ok, this is an ‘extreme’ case of an MCQ … True-False)

Question 2

What is the output from the following function when the argument, x, is 30?

``````def func( x ):
if( x >5 ):
print "X is greater than 5"
elif( x > 10 ):
print "X is greater than 10"
if( x > 20 ):
print "X is greater than 20"
``````
• ‘X is greater than 5’
• ‘X is greater than 10’
• ‘X is greater than 20’
• ‘X is greater than 5’ and ‘X is greater than 20’

Notes

• ‘X is greater than 5’ - the student realizes that the ‘elif’ clause doesn’t run, but misses the typo/if-elif that allows the 3rd clause to also run
• ‘X is greater than 10’ - the student is being to mathematical and not “thinking like a computer”; the if clause will trigger and hence the elif clause will be ignored; good reminder that order of your tests matters
• ‘X is greater than 20’ - again, the student is perhaps being too mathematical; this clause will trigger, but it will also have triggered (printed) for ‘x > 5’ earlier
• ‘X is greater than 5’ and ‘X is greater than 20’ - the correct answer