UCB CS 61A - If Function vs Statement

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)
上一篇:UCB CS 61A - If Function vs Statement


下一篇:强化学习(二):贪心策略(ε-greedy & UCB)