Python基础之代码复用「函数」

之前文章中有个案例:根据考试分数打印安全意识分级(优秀、及格和不及格)的代码,如下所示:

a = 75

if a > 80:

    print("优秀")

elif a > 60:

    print("及格")

else:

    print("不及格")

如果我们现在需要一次性看三位同学的分级结果,比如 a 75 分,b 90 分,c 66 分,然后打印出每个人的分级信息。根据我们之前的知识,很自然就想到,针对每个变量都执行一次上面的 if-elif-else 语句即可,完整的代码是这样的:

a = 75

b = 90

c = 66

if a > 80:

    print("优秀")

elif a > 60:

    print("及格")

else:

    print("不及格")

if b > 80:

    print("优秀")

elif b > 60:

    print("及格")

else:

    print("不及格")

if c > 80:

    print("优秀")

elif c > 60:

    print("及格")

else:

    print("不及格")

最终输出是及格、优秀、及格,分别代表 a、b、c 三位同学的分级结果。

及格

优秀

及格

结果是计算出来了,但回过头去看会发现明明看着很像,却愣是重复写了三次。有没有更好的方式来避免重复写多次结构类似的代码呢?而且这个例子,重复的部分还只有 6 行,要是一个计算过程有 50 行,然后要针对一个班级 50 个同学都执行一次,难道我们需要写 50 x 50 = 2500 行代码吗?

答案是肯定的,在 Python 中相似结构的代码复用通过函数来实现。了解了函数,我们才能真正意义上编写复杂的代码。

1、什么是函数

看到函数,可能你首先会条件反射地想到数学中的“函数”,但 Python 中的函数和数学中的不是一回事,不需要联合起来理解。

Python 中的函数简单来说就是一段有名字的代码块。通过函数的机制,我们可以给我们希望重复使用的代码块起个名字,这样我们之后要用这个代码块的时候,就不需要重新写一遍一模一样的代码块,而只需要简单写一次之前给代码块起的名字即可。普通函数的形式如下所示:

def 函数名():

    代码块

其中的关键要素是:

  • def, Python 的关键字,代表我们接下来要创建一个函数;
  • 函数名,顾名思义,函数的名字,名字需要符合变量起名的定义;
  • 冒号,大家应该很熟悉了,这代表冒号后面的代码块的名字是冒号前面的【函数名】;
  • 代码块,也就是我们想起名字来指代的代码块,这种函数对应的代码块,我们也叫函数体。注意这里的代码块和 if 语句的代码块一样,需要缩进。按照 Python 的规则,在冒号后面的代码块都需要相对于冒号所在的行缩进。

当我们创建完函数之后,要实际执行函数中的代码块,还需要执行该函数。函数执行的形式比较简单:函数名之后加一个括号即可。形式如下:

函数名()

(1)小实战:打印字符三角形

现在我们用一个简单的例子来感受函数的用处。假设我们需要使用字符 A 打印一个简单的三角形。

print("  A")

print(" AAA")

print("AAAAA")

输出:

  A

 AAA

AAAAA

现在我们想打印三个,虽然我们可以用类似本文开头的方式,把上面的代码复制出三份。但现在我们用函数的方式来解决。新建 Cell ,输入如下代码:

def print_triangle():

    print("  A")

    print(" AAA")

    print("AAAAA")

执行上述代码,发现并没有任何内容输出。原因就是目前我们只是创建了函数(给代码块起了名字),但还没有实际执行它。

现在我们来执行一下,新建 Cell,输入以下代码:

print_triangle()

执行代码,输出结果就可以看到我们的代码块被成功执行了。

  A
  • 9
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值