Problem
Let‘s write a function that does the same thing as an if
statement.
"""
Return true_result if condition is a true value,
and false_result otherwise.
>>> if_function(True, 2, 3)
2
>>> if_function(False, 2, 3)
3
>>> if_function(3==2, 3+2, 3-2)
1
>>> if_function(3>2, 3+2, 3-2)
5
"""
def if_function(condition, true_result, false_result):
if condition:
return true_result
else:
return false_result
"""
>>> result = with_if_statement()
47
>>> print(result)
None
"""
def with_if_statement():
if cond():
return true_func()
else:
return false_func()
"""
>>> result = with_if_function()
42
47
>>> print(result)
None
"""
def with_if_function():
return if_function(cond(), true_func(), false_func())
Despite the doctests above, this function actually does not do the same thing as an if
statement in all cases. To prove this fact, write functions cond
, true_func
, and false_func
such that with_if_statement
prints the number 47, but with_if_function
prints both 42 and 47.
Solution
def cond():
return False
def true_func():
print(42)
def false_func():
print(47)