def max_value(x, y):
"""
比较x, y 的大小,返回其中较大的数值
:param x: int
:param y: int
:return: x,y中的较大的数
"""
这是一个功能定义非常简单的函数,函数要求传入两个int,返回其中较大的数值,然而这个看似简单的函数,却可以用不同的逻辑来实现。
先来看第一种实现方式
def max_value(x, y):
"""
比较x, y 的大小,返回其中较大的数值
:param x: int
:param y: int
:return: x,y中的较大的数
"""
if x > y:
return x
else:
return y
print(max_value(4, 8))
我用了4行代码来返回x,y中较大的数值,使用if ... else ...这种逻辑结构,现在请思考,代码能否更简单一些呢,x > y 要么成立,要么不成立,我真的需要写一个else么,答案是可以不用else
def max_value(x, y):
"""
比较x, y 的大小,返回其中较大的数值
:param x: int
:param y: int
:return: x,y中的较大的数
"""
if x > y:
return x
return y
print(max_value(4, 8))
如果x > y 不成立,那么if条件判断就为假,就不会进入到if子句中执行return x, 代码逐行顺序执行,接下来就会执行return y,由于可以考虑的逻辑分支只有两个,因此不使用else 也可以走到return y的逻辑分支上。
虽然两端代码的编写不一样,但他们画出来的流程图却是一样的
在流程图中,用菱形表示逻辑判断,尽管第2段实现代码没有使用else,但在逻辑上,仍然处理的x > y 不成立的情况。
这是一个非常简单的编程题目,但我希望你能够从中获得以下收获