• Python函数


    1.函数的定义

    python内置了很多函数,可以直接调用,多数情况下,还需要自定义函数,自定义函数的主体,换行的缩进表示代码属于该函数.定义的函数只有被调用的时候才会执行.函数只有有返回值的情况下才可以打印

    语法定义:

    def 函数名():
    ......
    ......
    其中,函数名可以由数字,字母,下划线组合而成,但不能以数字开头,冒号以下的代码是函数的主体,换行的缩进表示代码属于该函数

    实例代码:

    1 def add():
    2     a = 1
    3     b = a+3
    4     print(b)
    5 add()
    6 #运行结果:
    7 4

    代码说明:

    1 自定义一个名叫add的函数

    2 在add函数中定义变量a,并将a赋值为1

    3 在add函数中定义变量b,并将b赋值为a+3的运算结果

    4 打印b的值

    5 调用执行add()函数

    7 运行结果,为4

    注意:如果没有第5行的调用,那么add()函数就不会执行了

    2.函数的参数

    自定义函数的时候还可以加上参数,参数可以是一个,也可以是多个,参数放在()里面,加上的参数只是一个形式参数,而非真正的参数.

    实例代码1:

    1 def add(a,b):
    2     c = a+b
    3     print(c)
    4 add(1,2)
    5 #运行结果:
    6 3

    代码说明:

    1 定义一个add函数,并创建形式参数a,b

    2 将a+b的结果赋值给变量c

    3 打印c的值

    4 调用执行add(a,b)函数,并给形式参数给传递实参1,给形式参数b传递实参2

    6 运行结果,为3

    注意:对于add(a,b)函数来说,函数内的a,b只是形式参数,a,b可以表示任何数据,而c就是a和b任意数据的和,等式c=a+b,只是建立了c与a,b的关系

    实例代码2:

     1 def add(a = 1,b = 2):
     2     c = a +b
     3     print(c)
     4 add()
     5 add(2,3)
     6 add()
     7 #运行结果:
     8 3
     9 5
    10 3

    代码说明:

    1.定义函数,有形式参数a,b 并给a赋默认值1,给b赋默认值2

    2.定义变量c,赋值a+b的运算结果

    3.打印c

    4.调用函数,不传实参

    5.调用函数,传实参,a传实际参数2,b传实际参数3

    6.调用函数,不传实参.caution:虽然第5行在调用函数时改变了a和 b的值,但对于函数本身默认值是不会变的,调用时改变的值只是对调用时生效,并不会影响函数本身的默认值

    8.4的运行结果

    9.5的运行结果

    10.3的运行结果

    注意:在定义具有形参的函数时,也可以给形式参数赋值,产生一个默认值,当调用函数时,分为两种情况:当调用函数不加实际参数时,就以定义函数时默认值作为实际值;当调用函数加上实际值,那么新的实参就会代替原来的默认值.

    使用关键字参数允许函数调用时参数的顺序与声明时不一致,Python解释器能够用参数名匹配参数值.如:

    def printinfo(name,age):

            ..................

    printinfo(age=50,name='猪太肥')

    传参时会通过参数名匹配参数值,不会出现name=50,age="猪太肥"的情况.

    3.函数的返回值 

     之前定义的函数只是用来执行某些操作,并没有将最后执行的结果保存.上面的例子是将c的值打印了出来,并未将c的值保存和返回,导致c的值只能在函数内使用

    实例代码1:

    1 def add(a = 1,b = 2):
    2     c = a + b
    3 print(add())
    4 print(add(2,3))
    5 #运行结果:
    6 None
    7 None

    注意:python语言中,没有返回值时不会报错,会返回一个None

     

    如何返回和保存c的值呢? 只需要在函数中加return + 返回值

    实例代码:

    1 def add(a = 1,b = 2):
    2     c = a + b
    3     return c
    4 print(add())
    5 print(add(2,3))
    6 #运行结果
    7 3
    8 5

    代码说明:

    3.在执行完add函数时返回c的值

    4.将调用执行add()的结果打印出来.由于add函数有了返回值,所以打印出来就是c的值

     有时候函数需要返回的值不止一个,同样可以用return来返回,区别于单个返回值,多个返回值需要用逗号隔开,数据以元组的形式返回,同样也可以把返回值按照顺序赋值给多个变量

    实例代码:

     1 def add(a = 1,b = 2):
     2     c = a + b
     3     return a,b,c
     4 print(add())
     5 print(add(2,3))
     6 x,y,z = add(3,5)
     7 print(x,y,z)
     8 #运行结果:
     9 (1, 2, 3)
    10 (2, 3, 5)
    11 3 5 8

    代码说明:

    3.在执行完add函数后,返回a,b,c的值

    4.调用add函数,不传实参,并打印执行结果,由于返回了3个值,所以返回的是3个元素的元组

    5.调用add函数,传递实参,并打印执行结果,由于返回了3个值,所以返回的是3个元素的元组

    6.调用add函数,不传实参,并将执行结果分别赋值给x,y,z

    7.打印x,y,z的值

    实例代码体会下有无返回值的区别:]

    def changeme(mylist):
        mylist.append(6);
        print('list = ',mylist)
    list = [1,2,3,4,5]
    print(changeme(list))
    print(list) 运行结果: list
    = [1, 2, 3, 4, 5, 6]#执行调用函数时,被调用函数内的打印 None#被调用函数没有返回值,所以打印不出东西来
    def changeme(mylist): mylist.append(6); print('list = ',mylist) return mylist #被调用函数有返回值 list = [1,2.3,4,5] print(changeme(list))
    print(list) 运行结果: list
    = [1, 2, 3, 4, 5, 6] [1, 2, 3, 4, 5, 6] #被调函数有返回值,可以打印出东西来
    [1, 2, 3,  4, 5, 6] #列表的可变性,在执行调用函数时,列表以发生变化

    4.函数的嵌套

    除了 自定义和执行函数外,还可以在函数中相互嵌套调用,即在某个函数的代码中调用其他函数,这就是函数的嵌套.

    实例代码:

     

     1 def a1(a,b):
     2     return a+b
     3 def a2(c):
     4     return c
     5 def a3(x,y,z):
     6     result = a1(x,y)-a2(z)
     7     return result
     8 print(a3(1,2,3))
     9 #运行结果:
    10 0

     

     

     

    代码说明:

    1.自定义a1()函数,并创建形式参数a和b

    2.函数a1返回a+b的结果

    3.自定义a2()函数,并创建形式参数c

    4.函数a2返回c的结果

    5.自定义a3()函数,并创建形式参数x,y,z

    6.将函数a1的运行结果减去函数a2的运行结果,并把结果赋值给result.

    7,函数a3()执行完结果,返回运算结果result的值

    8.打印a(1,2,3)的执行结果.

    任意函数都能调用任意函数,没有上下级等级关系.但这不利于代码的可读性.为了让代码更清晰,利于对代码进行修改,设立一个主函数,并在这个函数下定义它需要调用的子函数,这样主次关系就会更加明确,而且子函数不会被其他函数调用,避免了代码调用混乱的结果.

    实例代码:

     

     

     1 def a(x,y,z):
     2     def a1(a,b):
     3         return a+b
     4     def a2(c):
     5         return c
     6     result = a1(x,y)-a2(z)
     7     return result
     8 print(a(1,2,3))
     9 #运行结果:
    10 0

     

    1 def a1(a,b):
    2     c = a+b
    3     def a2(x):
    4         x=x*x
    5         return x
    6     return a2(c)
    7 print(a1(1,2))
    8 #运行结果:
    9 9
  • 相关阅读:
    数据库函数
    数据库查询习题整理(二)
    数据库查询习题整理(一)
    1202数据库查询
    1201新课程TSQL语句
    1123项目第五天
    1121项目第四天
    1120项目第三天
    14
    にちかん
  • 原文地址:https://www.cnblogs.com/yaoze2018/p/10387436.html
Copyright © 2020-2023  润新知