Python 3(函数,参数,变量,递归,函数式编程)

本文深入讲解Python函数的基本语法和特性,包括参数与局部变量、返回值、递归、匿名函数等概念,以及函数式编程和面向对象编程的区别与联系。通过实例演示了不同类型的参数使用方法,探讨了局部变量与全局变量的作用范围,并介绍了递归函数的特点。

本节内容

  • 函数基本语法和特性
  • 参数与局部变量
  • 返回值
  • 递归
  • 匿名函数
  • 函数式编程
  • 高阶函数
  • 内置函数

函数式编程

  1. 面向对象-----类class—class
  2. 面向过程----过程-----def
  3. 函数式编程—函数—def

函数的定义:函数是逻辑结构化和过程化的一种编程方法。
python中的定义方法:

def test(x):
      "The function definations"
      x+=1
      return x

注释:
def 定义函数的关键字
test 函数名
() 内可定义形参
代码块+返回值

1 基本定义的例子:

在这里插入图片描述
结果显示:
在这里插入图片描述

2 日志功能函数:
在这里插入图片描述
结果测试:
在这里插入图片描述
记录日志的txt文件内容:
在这里插入图片描述

3 总结函数的功能:

  • 代码重用
  • 保持一致性
  • 可扩展性

4 函数的返回值

在这里插入图片描述
结果测试:
在这里插入图片描述
总结:

  1. 返回值数=0 返回None
  2. 返回值数=1 返回object
  3. 返回值数>1 返回tuple(元组)

ps: 为什么函数一定要有返回值?
因为可能后面函数中的逻辑会用到该函数的结果,e.g.登录场景中,根据用户名和密码判断是否是合法用户,从而是否允许获取信息。

参数

1 形参
在这里插入图片描述在这里插入图片描述
总结:
关键字 与形参顺序无关
位置 与形参一一对应
在这里插入图片描述
默认位置参数,且关键字不能写在位置参数前,否则会报错
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
2 默认参数
特点:调用函数的时候,默认参数非必须传递
用途:例如安装软件时,一键安装

3 参数组

*常规 args:

接受N个位置参数(不接受字典类型)
两种传参方式:传入参数 直接传或者传入一个列表 前面加*
在这里插入图片描述
用途:传入参数的个数不太确定 为以后预留一点空间
测试结果:参数组里的内容整体会变成一个元组

*字典 **kwargs:
把N个关键字参数转换成字典的方式
在这里插入图片描述
测试结果:
可以看出 采用关键字传参数 结果保存成字典形式
在这里插入图片描述
两种传参方式:在这里插入图片描述
想要打印参数组中的某些项(对字典key-value):
在这里插入图片描述
多种参数同时出现:
在这里插入图片描述
测试结果:
在这里插入图片描述

局部变量

在这里插入图片描述
测试结果:
在这里插入图片描述
由此可见,函数中的name的作用域只限于局部(函数范围内),非全局变量

  • 局部变量->全局变量
    “ global+变量名”

在这里插入图片描述
测试结果:
在这里插入图片描述
问题:
这种用法不符合规范 不应该在函数中去更改全局变量(主要是字符串和单独的整数等) ,出问题时候不容易排查。
若是列表,字典等可以更改

递归

即 在函数内部调用自己的函数----->递归
递归的特性:
1 必须有一个明确的结束条件
2 每次进入更深一层递归时,问题规模比上次递归都有所减少
3 递归的效率不高,递归层次过多会导致栈溢出。

在这里插入图片描述
在这里插入图片描述

函数式编程

定义:
一种抽象程度很高的编程范式,纯粹的函数式编程语言编写的函数没有变量。只要输入是确定的,则输出就是确定的。

例子:
ps: python不是纯函数式编程语言。
e.g.
(1+2)*3-4
函数式编程写作:
var result = subtract(multiply(add(1,2),3),4);

高阶函数

定义:
变量可以指向函数,函数的参数能够接受变量,那么一个函数就可以接收另一个函数作为参数,这种函数就称之为高阶函数。

在这里插入图片描述
测试结果:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值