Python函数
Posted agnostida-trilobita
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python函数相关的知识,希望对你有一定的参考价值。
1.函数的定义
函数代码块以 def 关键词开头,后接函数标识符名称和圆括号()。
任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数。
函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
函数内容以冒号起始,并且缩进。
return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。
def functionname():
命令
定义函数阶段即使有语法错误,运行时也不会报错,一旦调用该函数,就会报错
2.函数的调用
函数名字代表内存地址,加括号可以调用
3.传参
如果函数体内有变量,那么尽量定义在函数括号内
def test(name,age,high=190):#形参,可以定义默认值
print(‘my name is %s,my age is %s,my high is %s‘ % (name, age, high))
test(age=‘蒋介石‘,name=88)#实参
test(‘蒋介石‘,88)如果不指定high的值,那么就会按照默认的190进行输出
结果:
my name is 蒋介石,my age is 88,my high is 190
test(‘蒋介石‘,88,180)
4.return语句
把一个函数的执行结果返回,可以返回任意数据类型
def test1(a):
return a
res = test2()
res = test1(250)
print(res)
结果:
250
return可以将一个函数的返回值拿到函数体外执行
5.名称空间和作用域
名称空间与作用域
内置名称空间:(python启动时就有)python解释器内置的名字,print,max,min
全局名称空间:(执行python文件时启动)定投定义的变量
局部名称空间:(调用函数时启动,调用结束失效)函数内部定义的变量
加载顺序:内置--->全局--->局部
访问顺序:局部--->全局--->内置
def func1():
def func2():
def func3():
print(print)
func3()
func2()
func1()
6.监控资源并可发送报警邮件(利用函数编写)
import psutil
import yagmail
def sendmail(subject,contents):
#三步
# 1.实例化出来一个yagmail对象
yag = yagmail.SMTP(user=‘[email protected]‘,password=‘xxxxxx‘,host=‘smtp.163.com‘)
# 2.发送邮件操作cc进行抄送、列表形式添加发送地址和附件
yag.send(to=‘[email protected]‘,subject=subject,contents=contents)
# 3.关闭邮箱
yag.close()
def cpu():
cpu = psutil.cpu_percent(1)
return ‘cpu_percent‘: cpu
def mem():
mem_total = psutil.virtual_memory()[0]
mem_percent = psutil.virtual_memory()[2]
return ‘mem_total‘:int(mem_total/1024/1024),‘mem_percent‘: mem_percent
def disk():
disk_total = psutil.disk_usage(‘c:‘)[0]
disk_percent = psutil.disk_usage(‘c:‘)[3]
return ‘disk_total‘: int(disk_total/1024/1024/1024), ‘disk_percent‘: disk_percent
def main():
info =
info.update(cpu())
info.update(mem())
info.update(disk())
msg = ‘‘‘
cpu使用率:%s%%
内存使用率:%s%%
硬盘使用率:%s%%
==============
内存总大小:%sM
硬盘总打小:%sG
‘‘‘ % (info[‘cpu_percent‘],info[‘mem_percent‘],info[‘disk_percent‘],info[‘mem_total‘],info[‘disk_total‘])
if info[‘cpu_percent‘] > 80:
sendmail(‘cpu报警‘,msg)
elif info[‘mem_percent‘] > 80:
sendmail(‘内存报警‘,msg)
elif info[‘disk_percent‘] > 50:
sendmail(‘硬盘报警‘,msg)
if __name__ == ‘__main__‘:
main()
1.函数的定义
函数代码块以 def 关键词开头,后接函数标识符名称和圆括号()。
任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数。
函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
函数内容以冒号起始,并且缩进。
return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。
def functionname():
命令
定义函数阶段即使有语法错误,运行时也不会报错,一旦调用该函数,就会报错
2.函数的调用
函数名字代表内存地址,加括号可以调用
3.传参
如果函数体内有变量,那么尽量定义在函数括号内
def test(name,age,high=190):#形参,可以定义默认值
print(‘my name is %s,my age is %s,my high is %s‘ % (name, age, high))
test(age=‘蒋介石‘,name=88)#实参
test(‘蒋介石‘,88)如果不指定high的值,那么就会按照默认的190进行输出
结果:
my name is 蒋介石,my age is 88,my high is 190
test(‘蒋介石‘,88,180)
4.return语句
把一个函数的执行结果返回,可以返回任意数据类型
def test1(a):
return a
res = test2()
res = test1(250)
print(res)
结果:
250
return可以将一个函数的返回值拿到函数体外执行
5.名称空间和作用域
名称空间与作用域
内置名称空间:(python启动时就有)python解释器内置的名字,print,max,min
全局名称空间:(执行python文件时启动)定投定义的变量
局部名称空间:(调用函数时启动,调用结束失效)函数内部定义的变量
加载顺序:内置--->全局--->局部
访问顺序:局部--->全局--->内置
def func1():
def func2():
def func3():
print(print)
func3()
func2()
func1()
6.监控资源并可发送报警邮件(利用函数编写)
import psutil
import yagmail
def sendmail(subject,contents):
#三步
# 1.实例化出来一个yagmail对象
yag = yagmail.SMTP(user=‘[email protected]‘,password=‘xxxxxx‘,host=‘smtp.163.com‘)
# 2.发送邮件操作cc进行抄送、列表形式添加发送地址和附件
yag.send(to=‘[email protected]‘,subject=subject,contents=contents)
# 3.关闭邮箱
yag.close()
def cpu():
cpu = psutil.cpu_percent(1)
return ‘cpu_percent‘: cpu
def mem():
mem_total = psutil.virtual_memory()[0]
mem_percent = psutil.virtual_memory()[2]
return ‘mem_total‘:int(mem_total/1024/1024),‘mem_percent‘: mem_percent
def disk():
disk_total = psutil.disk_usage(‘c:‘)[0]
disk_percent = psutil.disk_usage(‘c:‘)[3]
return ‘disk_total‘: int(disk_total/1024/1024/1024), ‘disk_percent‘: disk_percent
def main():
info =
info.update(cpu())
info.update(mem())
info.update(disk())
msg = ‘‘‘
cpu使用率:%s%%
内存使用率:%s%%
硬盘使用率:%s%%
==============
内存总大小:%sM
硬盘总打小:%sG
‘‘‘ % (info[‘cpu_percent‘],info[‘mem_percent‘],info[‘disk_percent‘],info[‘mem_total‘],info[‘disk_total‘])
if info[‘cpu_percent‘] > 80:
sendmail(‘cpu报警‘,msg)
elif info[‘mem_percent‘] > 80:
sendmail(‘内存报警‘,msg)
elif info[‘disk_percent‘] > 50:
sendmail(‘硬盘报警‘,msg)
if __name__ == ‘__main__‘:
main()
以上是关于Python函数的主要内容,如果未能解决你的问题,请参考以下文章