• 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='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()
    
  • 相关阅读:
    Insert into a Binary Search Tree
    Search in a Binary Search Tree
    Binary Search Tree Iterator
    Validate Binary Search Tree
    Serialize and Deserialize Binary Tree
    图的搜索
    codeforce vk cup2017
    hdu1160dp
    完全背包hdu1114
    最长递增子序列hdu1087
  • 原文地址:https://www.cnblogs.com/Agnostida-Trilobita/p/11047150.html
Copyright © 2020-2023  润新知