快捷搜索:  汽车  科技

python的代码缩进的表示方式(python小讲堂极简函数定义形式)

python的代码缩进的表示方式(python小讲堂极简函数定义形式)return 后面可以返回任意表达式,但不能是赋值语句函数调用: 函数名(参数)def 函数名(参数):passreturn 表达式

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

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

python的代码缩进的表示方式(python小讲堂极简函数定义形式)(1)

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

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

一、函数定义

def 函数名(参数):

pass

return 表达式

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

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

python的代码缩进的表示方式(python小讲堂极简函数定义形式)(2)

二、函数参数

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

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

1、必传参数:

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

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

2、默认参数:

def fun2(x=5): print(x) # 当没有参数传入时,x默认为5 fun2(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 = 5 def add(): global a #此函数内的a可以修改全局变量的值 a = 5 a = 1 print(a) add() print(a) #运行结果 6 6

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

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

四、匿名函数

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

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

lambda x:x>5

lambda函数会返回bool值

a = lambda x:x>5 print(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)*n a = factorial(5) # 计算5的阶乘,5x4x3x2(x1) print(a)

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

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

python的代码缩进的表示方式(python小讲堂极简函数定义形式)(3)

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

猜您喜欢: