UCB CS 61A - If Function vs Statement
作者:互联网
Problem
Let's write a function that does the same thing as an if
statement.
def if_function(condition, true_result, false_result):
"""
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
"""
if condition:
return true_result
else:
return false_result
def with_if_statement():
"""
>>> result = with_if_statement()
47
>>> print(result)
None
"""
if cond():
return true_func()
else:
return false_func()
def with_if_function():
"""
>>> result = with_if_function()
42
47
>>> print(result)
None
"""
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)
标签:Function,function,false,vs,UCB,func,return,true,result 来源: https://www.cnblogs.com/stO-Orz/p/15260367.html