These MCQs are for the Python lesson on Making Choices section (http://swcarpentry.github.io/python-novice-inflammation/05-cond.html).
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)
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’
- ‘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