python concat函数 多张表_python小讲堂丨极简函数定义形式,用缩进代替{},更利于书写规范...

新年快乐,欢迎来到python小讲堂,今天给大家带来的是关于python函数基础的讲解。函数是什么呢?相信学完这节课你不但能到了解函数,还能自己写一下小案例。学过c语言的同学都知道,c语言中的函数是需要用{}包裹起来的,但python中的函数是采用缩进的方式来区分各个语句的层级的,这就让我们码代码方便了很多。

(文末贴有函数小案例,帮助大家理解)

8c028d1b1f8788ea028c3a4bf144ab1e.png

首先我们来看一下今天要讲的内容:

  1. 函数定义
  2. 函数参数
  3. 函数作用域
  4. 匿名函数
  5. 递归函数

一、函数定义

def 函数名(参数):

pass

return 表达式

函数调用:函数名(参数)

return 后面可以返回任意表达式,但不能是赋值语句

bb392b0f74e02e3d3647a899818a11d8.png

二、函数参数

在python中参数无类型,参数可以接收任意对象,只有函数中代码才会对参数类型有限制。

一般传参顺序:位置参数(必传参数),默认参数,*args,**keargs

1、必传参数:

def fun1(x):print(x) # x为必备参数,调用函数是必须传参

上图求和函数中的参数a和b都是必传参数

2、默认参数:

def fun2(x=5):print(x) # 当没有参数传入时,x默认为5fun2(2)

3、不定长参数:

def fun3(*args,**kwargs): print(args) # 传入的所有参数会转化成一个元组 print(kwargs) # 当传入字典时,由keargs接收fun3(1,2,3,a=1,b=2,c=3) #传参顺序:args在前,keargs在后# 运行结果:(1,2,3){"a":1,"b":2,"c":3}

三、函数作用域

全局变量:函数可以访问但是不可以修改

局部变量:函数外部不可以访问也不可以修改

global :声明全局变量,声明后函数内部可以修改全局变量

a = 5def add(): global a #此函数内的a可以修改全局变量的值 a = 5 a += 1 print(a)add()print(a)#运行结果66

nonlocal:只针对于函数嵌套,内部函数可以修改外部函数的变量

a = 5def fun_0(): a = 6 def fun_1(): nonlocal a #可以修改外层函数的变量,但不可以修改全局变量 a = 7 print(a) fun_1() print(a)print(a)#运行结果775

四、匿名函数

lambda:可以借助filter,简化过滤器

语法规则: lambda 参数 :表达式

lambda x:x>5

lambda函数会返回bool值

a = lambda x:x>5print(a(6)) # 给a传入参数6,满足条件a>5,所有返回True

匿名函数可以借助filter函数,简化过滤器

filter函数有两个参数,第一个参数是一个返回bool值得函数,第二个函数是一个列表,依次把列表里的元素传入判断函数中,若返回True就保留,否则不保留。

li = [1,2,3,4,5,6,7,8,9]# 只保留列表li中满足x>5的元素a = filter(lambda x:x>5,li)# 把a转换为列表类型并打印print(list(a))

五、递归函数

递归函数:在函数里面调用自己(需要有结束条件),不能让函数一直运行

python容错机制:如果代码无限循环的去消耗内存,python会抛出错误并停止它

借助递归函数,可以实现阶乘的运算:def factorial(n):  if n == 1:  return 1  return factorial(n-1)*na = factorial(5) # 计算5的阶乘,5x4x3x2(x1)print(a)

正课内容到这里就结束了,接下来给大家写一个函数应用的小案例:

定义个函数,可以对输入的数据进行排序,通过参数来决定是正向排序还是反向排序,这里也用到了前两天讲的循环、字符串等方法呦!

9cafa602b6f6a6a27443d5b45a61682c.png

今天的python小讲堂到这里就结束了,今天的内容比较多,这么多函数的知识你理解了吗?小案例看懂了吗?不懂得话可以复习一下前两天的内容,也可以来评论区问我哈,如果喜欢小编的话,记得点下关注,我会持续更新python的知识呦!大家加油,明天见!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值