第7节,比较两个数的大小

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 不成立的情况。

这是一个非常简单的编程题目,但我希望你能够从中获得以下收获

  1. 代码需要注释,注释帮助你理解代码,尤其在几天以后再回头看代码时
  2. 多思考,一千个人实现相同的逻辑,可能会有一千种写法
  3. 画程序流程图,在你逻辑能力还很弱的时候,磨刀不误砍柴工,打好基础,才能事半功倍。

扫描关注, 与我技术互动

QQ交流群: 211426309

加入知识星球, 每天收获更多精彩内容

分享日常研究的python技术和遇到的问题及解决方案