码迷,mamicode.com
首页 > 编程语言 > 详细

Python函数

时间:2019-06-18 20:09:39      阅读:116      评论:0      收藏:0      [点我收藏+]

标签:__name__   port   das   入参   利用   mda   info   调用函数   标识符   

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=‘xxxxxxxxx@163.com‘,password=‘xxxxxx‘,host=‘smtp.163.com‘)

    # 2.发送邮件操作cc进行抄送、列表形式添加发送地址和附件

    yag.send(to=‘xxxxxxxxx@163.com‘,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=‘xxxxxxxxx@163.com‘,password=‘xxxxxx‘,host=‘smtp.163.com‘)

    # 2.发送邮件操作cc进行抄送、列表形式添加发送地址和附件

    yag.send(to=‘xxxxxxxxx@163.com‘,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函数

标签:__name__   port   das   入参   利用   mda   info   调用函数   标识符   

原文地址:https://www.cnblogs.com/Agnostida-Trilobita/p/11047150.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!