4-[函数]- 独立功能的代码块

1.引出函数

现在老板让你写一个监控程序,24小时全年无休的监控你们公司网站服务器的系统状况,当cpu\memory\disk等指标的使用量超过阀值时即发邮件报警,你掏空了所有的知识量,写出了以下代码

while True:
    if cpu利用率 > 90%:
        #发送邮件提醒
        连接邮箱服务器
        发送邮件
        关闭连接

    if 硬盘使用空间 > 90%:
        #发送邮件提醒
        连接邮箱服务器
        发送邮件
        关闭连接

    if 内存占用 > 80%:
        #发送邮件提醒
        连接邮箱服务器
        发送邮件
        关闭连接
View Code
问题
1.代码重复过多,一个劲的copy and paste不符合高端程序员的气质
2.如果日后需要修改发邮件的这段代码,比如加入群发功能,那你就需要在所有用到这段代码的地方都修改一遍

  

def 发送邮件(内容)
    #发送邮件提醒
    连接邮箱服务器
    发送邮件
    关闭连接

while True:

    if cpu利用率 > 90%:
        发送邮件('CPU报警')

    if 硬盘使用空间 > 90%:
        发送邮件('硬盘报警')

    if 内存占用 > 80%:
        发送邮件('内存报警')
View Code
独立功能代码块 --->  封装 ----> 函数
把具有独立功能带代码块,当成一个整体。这个整体称为函数(独立功能代码块)

把一段代码“封装”成一个函数
”封装“  整体

2.函数定义

函数一词来源于数学,但编程中的「函数」概念,与数学中的函数是有很大不同的,具体区别,

我们后面会讲,编程中的函数在英文中也有很多不同的叫法。在BASIC中叫做subroutine(子过程或子程序),

在Pascal中叫做procedure(过程)和function,在C中只有function,在Java里面叫做method。

  • 定义: 函数是指将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需调用其函数名即可
  • 特性:
  1. 减少重复代码
  2. 使程序变的可扩展
  3. 使程序变得易维护
  • 语法:
def sayhi():#函数名
    print("Hello, I'm nobody!")

sayhi() #调用函数
#下面这段代码
a,b = 5,8
c = a**b
print(c)


#改成用函数写
def calc(x,y):
    res = x**y
    return res #返回函数执行结果

c = calc(a,b) #结果赋值给c变量
print(c)

在定义函数的过程中,需要注意以下几点:

  • 函数代码块以def关键词开头,一个空格之后接函数标识符名称和圆括号(),再接个冒号。
  • 任何传入的参数必须放在圆括号中间。
  • 函数的第一行语句后可以选择性地使用文档字符串—用于存放函数说明。
  • 函数内容以冒号起始,并且缩进。
  • 使用return结束函数。默认返回None。
  • return语句依然在函数体内部,不能回退缩进。直到函数的所有代码写完,才回退缩进,表示函数体结束。
原文地址:https://www.cnblogs.com/venicid/p/8405285.html