函数
函数是什么?
定义:函数是指将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需调其函数名即可
特性:
1.减少重复代码
2.使程序变的可扩展
3.使程序变得易维护
while True:
if cpu利用率 > 90%:
#发送邮件提醒
连接邮箱服务器
发送邮件
关闭连接
if 硬盘使用空间 > 90%:
#发送邮件提醒
连接邮箱服务器
发送邮件
关闭连接
if 内存占用 > 80%:
#发送邮件提醒
连接邮箱服务器
发送邮件
关闭连接
define 定义
def 邮件报警(内容):
连接邮件服务器
发送邮件
关闭连接
def 发送邮件(内容)
#发送邮件提醒
连接邮箱服务器
发送邮件
关闭连接
while True:
if cpu利用率 > 90%:
发送邮件('CPU报警')
if 硬盘使用空间 > 90%:
发送邮件('硬盘报警')
if 内存占用 > 80%:
发送邮件('内存报警')
语法定义
def sayhi():#函数名
print("Hello, I'm nobody!")
sayhi() #调用函数
def calculate(x,y): #函数名 计算 x,y
res = x*y
# print(res)
return res #返回值 意味着函数的终止
# print(x*y) #条件 x*y
n = calculate(5,8) #给参数赋值
print(n)
函数的参数:位置参数 > 关键参数默认参数
形参:函数的中形式变量 临时的
只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元。因此,形参只在函数内部有效。函数调用结束返回主调用函数后则不能再使用该形参变量
实参:函数中调用的具体参数
可以是常量、变量、表达式、函数等,无论实参是何种类型的量,在进行函数调用时,它们都必须有确定的值,以便把这些值传送给形参。因此应预先给实参赋值
位置参数: 字面意思
默认参数: 顺序在所有参数最后 ,,隔开也可以 看着不舒服
def register(name,age,major,country = 'CN'): #country 如果不填写 默认'CN'
关键参数:正常情况下,给函数传参数要按顺序,不想按顺序就可以用关键参数,只需指定参数名即可(指定了参数名的参数就叫关键参数),但记住一个要求就是,关键参数必须放在位置参数(以位置顺序确定对应关系的参数)之后
非固定参数:在定义函数时,不确定后面调用时会传递多少个参数进来。
函数的返回值与作用域:
返回值:函数外部的代码要想获取函数的执行结果,就可以在函数里用return语句把结果返回
特性:
1.函数在执行过程中重要遇到return语句,就会停止执行并返回结果,所以也可以理解为return语句代表着函数的结束
2.如果未在哈数中指定return,那这个函数的返回值为None
全局与局部变量:
1.在函数中定义的变量称为局部变量,在程序的一开始定义的变量称为全局变量。
2.全局变量作用域(即有效范围)是整个程序,局部变量作用域是定义该变量的函数。
3.变量的查找顺序是局部变量>全局变量
4.当全局变量与局部变量同名时,在定义局部变量的函数内,局部变量起作用;在其它地方全局变量起作用。
5.在函数里是不能直接修改全局变量的
name = 'qiangzi' #全局变量
def change():
# name = '大强' #局部变量
global name #在函数内改全局变量,在函数内部声明(创建)一个全局变量,开发规范不建议用。
name = '大强'
age = 22
print(name)
print(locals()) #locals() 本地,局部变量查询
print(globals()) #globars() 全局,全局变量查询
change()
print(name)