Day3 - Python基础3 函数、递归、内置函数,,Day3 - Pyt


Day3 - Python基础3函数、递归、内置函数

1. 函数基本语法及特性

定义:将一组语句的集合通过一个名字(函数名)封装起来,当执行该函数时,只需调用该函数名即可

 特性

   1.避免重复代码

   2.增强程序可扩展性

   3.代码容易维护

2. 参数与局部变量

形参变量只有被调用时才会分配内存单元,在调用结束后,内存单元即刻被释放。因此,形参只在函数内部有效,当函数调用返回主调用函数时,形参的变量将不再可用

 实参变量可以是常量、变量、表达式、函数等,无论实参是何种类型的量,当函数调用时,传给形参时都必须是确定的值。因此应预先使用赋值、输入等方法,使形参获得确定值

 局部变量:函数内定义的变量,只在函数运行时起作用,运行结束后自动释放

 默认参数:

def stuffs(name,age,country=‘CN‘):    print("姓名:%s"%name)    print("年龄:%d" % age)    print("国家:%s" % country)stuffs(‘sam‘,18)

 非固定参数:

#*args会把多传的参数变成一个元组>>> def stuffs(name,age,*args):...     print(name,age,args)...>>> stuffs(‘sam‘,18,‘football‘,‘Movie‘,‘Python‘)sam 18 (‘football‘, ‘Movie‘, ‘Python‘)>>>#**kwargs会把多传的参数变成一个字典>>> def stuffs(name,age,*args,**kwargs):...     print(name,age,args,kwargs)...>>> stuffs(‘sam‘,18,‘CN‘,‘python‘,sex=‘man‘,hobby=‘running‘)sam 18 (‘CN‘, ‘python‘) {‘hobby‘: ‘running‘, ‘sex‘: ‘man‘}>>>

 关键参数:

  关键参数必须在位置参数之后

>>> def stuffs(name,age,country=‘CN‘):...     print("姓名:%s"%name)...     print("年龄:%d" % age)...     print("国家:%s" % country)...>>>>>> stuffs(country=‘USA‘,‘sam‘,18)   #关键参数在位参前面,导致报错  File "<stdin>", line 1SyntaxError: positional argument follows keyword argument>>> stuffs(‘sam‘,18,country=‘USA‘)   #关键参数的位参之后正常姓名:sam年龄:18国家:USA>>>

 全局和局部变量:

  在子程序定义的变量叫局部变量,在程序一开始就定义的变量叫全局变量

  局部变量作用域是定义该变量的子程序,全局变量作用域是整个程序

  当二者同名时,在定义局部变量的子程序中局部变量起作用,其它地方全局变量起作用

3. 返回值

  要想获取执行结果,就可以用return把结果返回

函数执行过程中,只要遇到return语句时就会停止执行并返回结果,可以理解为return就是函数的结束函数如未设置return,则默认返回值为None

嵌套函数

  函数内再套用函数

name = ‘sam‘def change_name():    name = ‘sam2‘    def change_name2():        name = ‘sam3‘        print("第3层打印",name)    change_name2()  #调用内层函数    print(‘第2层打印‘,name)change_name()print(‘第1层打印‘,name)

4.递归

 如果一个函数在内部调用自身本身,这就叫递归函数

 特性:

   1.要有明确的结束条件

   2.每当进入深一层次的递归时,问题规模相对上次都要有所减少

   3.递归效率不高,递归层次过多可能导致栈溢出

5.匿名函数

 不需要显示的指定函数 ,和其它函数搭配使用

>>> calc = lambda n:n**n

>>> print(calc(10))

10000000000

#和其它函数配合使用
>>> res = map(lambda n:n**3,[1,2,3,4])>>> res<map object at 0x0000000000DEDCF8>>>> for i in res:... print(i)...182764

6.函数式编程介绍

函数是Python内建支持的一种封装,我们通过把大段代码拆成函数,通过一层一层的函数调用,就可以把复杂任务分解成简单的任务,这种分解可以称之为面向过程的程序设计。函数就是面向过程的程序设计的基本单元。

函数式编程中的函数这个术语不是指计算机中的函数(实际上是Subroutine),而是指数学中的函数,即自变量的映射。也就是说一个函数的值仅决定于函数参数的值,不依赖其他状态。比如sqrt(x)函数计算x的平方根,只要x不变,不论什么时候调用,调用几次,值都是不变的。

一、定义

简单说,"函数式编程"是一种"编程范式"(programming paradigm),也就是如何编写程序的方法论。主要思想是把运算过程尽量写成一系列嵌套的函数调用。

7.高阶函数

 变量可以指向函数,函数的参数能接受变量,那么一个函数就可以接受另一个函数作为参数,这种函数称为高阶函数

1 >>> def add(x,y,f):2 ...     return f(x) + f(y)3 ...4 >>> res = add(3,-6,abs)5 >>> print(res)6 9

8.内置函数

技术分享图片

内置参数详解 https://docs.python.org/3/library/functions.html?highlight=built#ascii

Day3 - Python基础3 函数、递归、内置函数

评论关闭