Python自动化运维之函数

1、函数简介
简而言之,函数就是将一些语句集中方在一起的部件,它能够不止一次的在程序中运行。函数还能够计算出一个返回值,并能够改变作为函数输入的参数,而这些参数在代码运行时也许每次都不相同。以函数的形式去编写一个操作可以使它成为一个能够广泛应用的工具,让我们在不同的情形下都能够使用它。
更具体地说,函数是在编程过程中剪剪贴贴的替代——我们不再有一个操作的代码的多个冗余副本,而是将代码包含到一个单独的函数中。通过这样做,我们可以大大减少今后的工作:如果这个操作之后必须要修改,我们只需要修改其中的一份拷贝,而不是所有代码。
2、为什么要使用函数
    1. 最大化实现代码重用和最小化实现代码冗余
        函数允许整合通用化代码,以便这些代码能够多次使用。因为它们允许一处编写多处运行,Python函数是这个语言中最基本的组成工具——它让我们在程序中减少代码的冗余成为现实, 并为代码的维护节省了不少的力气。
    2. 程序执行流程的分解
        函数可以将一个程序分割定义为不同部分的工具。举个栗子:去做一份比萨,开始需要混合面粉,将面粉搅拌匀,增加顶部原料和烤等。如果你是在编写一个制作比萨的机器人的程序, 函数将会将整个“做比萨”这个任务分割成为独立的函数来完成整个流程中的每个子任务。独立的实现较小的任务要比一次完成整个流程要容易得多。一般来说,函数讲的是流程: 告诉你怎样去做某事,而不是让你使用它去做的事。
2、函数的定义
函数定义格式:

    def 函数名(形参):
        ‘‘‘注释‘‘‘
        函数体
        return 返回值

3、函数的使用
    先定义,再调用
4、函数参数分类
函数参数可分为形参和实参。
1. 实参:
    位置实参:和形参位置对应赋值
    关键字实参:指的是按照形参名称一一赋值
2. 形参:必须被传值,是必备参数。形参有分为位置形参、默认形参和可变长形参
    位置形参:如果在定义时不赋值,在调用的时候必须赋值。
    举例:

        def foo(name,age):
            print(name,end=‘\t‘)
            print(age)
        # 位置实参
        foo("xuan",18)

默认形参:如果在定义时赋值又称为默认形参,在调用的时候可以不必在赋值,有可称为缺省形参。
    举例:

        def foo(name,age,sex="男"):
            print(name,age,sex)
        foo("xuan",18)

可变长形参:实参个数多于形参,就必须使用可变长的形参,这也是可变长形参的作用。
        实参溢出有两种情况:
            位置实参溢出:
                使用*args形参处理,存储成元组数值类型
            举例:

                def foo(name,age,*agrs):
                    print(name,age,agrs)
                foo("xuan",18,19,20)

关键字实参溢出:
                使用**kewargs形参处理,存储成字典数值类型
            举例:

                def foo(name,age,**kwagrs):
                    print(name,age,kwagrs)
                foo("xuan",18,x=19,y=20)

命名关键字形参:在*后面定义的形参称为命名关键字形参,必须关键字实参的形式传值
    举例:

        def foo(*args,x):
            print(args,x)
        # foo(1,2.3) # 报错提示没有为x传参
        foo(1,2,3,x=4) # 正确传参

常见问题小结:
问题1:位置形参必须放到默认形参之前

    def foo(x,y=1)
        print(x,y)
    foo(2)

问题2:默认形参和外部变量赋值无关

    b=1
    def foo(y=b,x)
        print(x,y)
    b
    foo()

问题3:默认形参的值为不可变数值类型
问题4:语法规定位置实参必须在关键字实参的前面

foo(‘xuan‘,sex=‘male‘,age=18)

问题5:一定不要对同一个形参多次赋值

foo(‘xuan‘,sex=‘male‘,age=18,namae=‘xuan1‘)
时间: 2024-11-08 10:17:27

Python自动化运维之函数的相关文章

Python自动化运维之函数进阶

1.函数嵌套函数的嵌套定义:在一个函数的内部,又定义了另外一个函数函数的嵌套调用:在调用一个函数的过程中,又调用了其他函数代码: >>> def f1(): ...     def f2(): ...         print('from f2') ...         def f3(): ...             print('from f3') ...         f3() ...     f2() ... 执行结果: >>> f1() from f2

Python自动化运维课程学习--Day3

本文为参加老男孩Python自动化运维课程第三天学习内容的总结. 大致内容如下: 1.文件操作 2.字符编码转码相关操作 3.函数 0.关于本文中所有运行Python代码的环境: --操作系统:Ubuntu 16.10 (Linux 4.8.0) --Python版本:3.5.2 python2.7.12 --Python IDE: PyCharm 2016.3.2 一.文件操作: 1.文件操作流程:以只读.写(覆盖写).追加写.读写.追加读写.二进制读写等模式打开文件 ==> 得到文件句柄,并

Python自动化运维课程学习--Day2

本文为参加老男孩Python自动化运维课程第二天学习内容的总结. 大致内容如下: 1.python模块初识 2.python程序运行流程 3.python数据类型(只讲了numbers, bool, strings, bytes, list, tuple, dict, set) 4.python数据运算 0.关于本文中所有运行Python代码的环境: --操作系统:Ubuntu 16.10 (Linux 4.8.0) --Python版本:3.5.2 --Python IDE: PyCharm

(转)Python自动化运维之13、异常处理及反射(__import__,getattr,hasattr,setattr)

Python自动化运维之13.异常处理及反射(__import__,getattr,hasattr,setattr) 一.异常处理 python异常: python的运行时错误称作异常 (1)语法错误:软件的结构上有错误而导致不能被解释器解释或不能被编译器编译 (2)逻辑错误:由于不完整或不合法的输入所致,也可能是逻辑无法生成.计算或者输出结果需要的过程无法执行等 python异常是一个对象,表示错误或意外情况 (1)在python检测到一个错误时,将触发一个异常 python可以通常异常传导机

Python自动化运维Django入门

随着IT运维技术日益更新,近几年运维自动化越来越火,而且学习python的人非常的火爆,尤其是python自动化运维开发,得到了很多前辈的推崇,尤其是老男孩培训中心.老男孩老师.Alex老师等,在这里非常感谢你们. 这里我也记录一下以前学习Django的一点点心得和方法,方便以后自己查阅,如果能帮助初学者是最好的了!好的,其他不多说了,博文滴走起. 一.系统实战环境 系统版本:CnetOS6.5 x86_64 Django版本:Django-1.5.8 MySQL版本:MySQL-5.1.73

云计算开发教程:Python自动化运维开发实战流程控制

今天这篇文章是给大家分享一些云计算开发教程,今天讲解的是:Python自动化运维开发实战流程控制. Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块. Python程序语言指定任何非0和非空(null)值为true,0 或者 null为false. if 语句用于控制程序的执行,基本形式为: if 判断条件: 执行语句-- else: 执行语句-- 其中"判断条件"成立时(非零),则执行后面的语句,而执行内容可以多行,以缩进来区分表示同一范

python自动化运维之路~DAY7

python自动化运维之路~DAY7 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.客户端/服务器架构 C/S 架构是一种典型的两层架构,其全称是Client/Server,即客户端服务器端架构,其客户端包含一个或多个在用户的电脑上运行的程序,而服务器端有两种,一种是数据库服务器端,客户端通过数据库连接访问服务器端的数据:另一种是Socket服务器端,服务器端的程序通过Socket与客户端的程序通信. C/S 架构也可以看做是胖客户端架构.因为客户端需要实现绝大多数的业务

python自动化运维之路~DAY10

python自动化运维之路~DAY10 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.

python自动化运维之集中病毒扫描

1.因为我linux的python是2.6.6,所以因为有些模块是2.7的,先进行升级. 步骤地址:http://www.linuxidc.com/Linux/2014-07/104555.htm 2.安装pyclamd yum install -y clamav clamd clamav-update 安装clamavp的相关程序包 chkconfig --level 235 clamd on /usr/bin/freshclam pyClamd-0.3.15.tar.gz安装包安装 3.vi