python里的拆包、引用、递归与匿名函数

拆包:*A拆元组,**B拆字典。

引用:在C、C++里面里面a=1,b=a,实际上相当于硬链接,相当于两份a、b各有一个1,多占一个空间,而在python里就是软连接,只有一份,通过id(a)来查看id都一样,

在python里定义的东西如一直没引用,那么就会成为垃圾,不用担心,python有自己的机制去除垃圾。

不可变类型:数字、字符串、元组。

可变类型:列表、字典,它们都不能做字典的key。

递归:一个函数里调用了这个函数自己,递归完成阶乘,3的阶乘=3*(2的阶乘)

递归时一定要想到何时要结束递归,不然最终程序一定会崩掉,因为它会占内存一直下去会将内存全部占完。

正反排序和倒序

字典要想比大小需要通过匿名函数,匿名函数冒号后面的值就相当于key的返回值,可按照数字或asic码来做比较,如下:

匿名函数用来实现某功能,简易化操作,不需要专门命名定义,也不用多条函数,当然传参又需要结果时,非常好用。

当需要调用匿名函数表达式时可以用eval来转换,相当于用int可以转换字符串为数字

eval相当于把字符串lambda转为表达式

数值交换,第一种方法通过第三个空变量,相当于两满杯水要实现交换需要来一个空瓶:

第二种方法:

第三种方法:python独有

函数内部变量之所以不能修改全局变量,是因为全局变量为不可变,此时只能通过global参数来修改全局变量,但如果全局变量是列表或字典等可变的,那么函数内部变量即可以不加global关键字随时进行修改。

在python里,num+=num不一定等于num=num+num,前面的意思代表可以直接对num赋值,在对函数内修改全局变量有效,而后面那个是对num赋一个新值,不能修改全局变量值,这点要注意。

时间: 2024-10-15 09:37:02

python里的拆包、引用、递归与匿名函数的相关文章

python协程函数、递归、匿名函数与内置函数使用、模块与包

目录: 协程函数(yield生成器用法二) 面向过程编程 递归 匿名函数与内置函数的使用 模块 包 常用标准模块之re(正则表达式) 一.协程函数(yield生成器用法二) 1.生成器的语句形式 a.生成器相关python函数.装饰器.迭代器.生成器,我们是如何使用生成器的.一个生成器能暂停执行并返回一个中间的结果这就是 yield 语句的功能 : 返回一个中间值给调用者并暂停执行. 我们的调用方式为yeild 1的方式,此方式又称为生成器的语句形式. 而使用生成器的场景:使用生成器最好的场景就

python 三元运算符、推导式、递归、匿名函数、内置函数

三目运算符 # 三目(元)运算符:就是 if...else...语法糖 # 前提:简化if...else...结构,且两个分支有且只有一条语句 # 注:三元运算符的结果不一定要与条件直接性关系 cmd = input('cmd: ') print('可以转化为数字') if cmd.isdigit() else print('不可以转化为数字') a = 20 b = 30 res = a if a > b else b # 求大值 print(res) res = 'b为小值' if a >

Python基础day-11[内置函数(未完),递归,匿名函数]

内置函数: abs() : 返回数字的绝对值.参数可以是整数或浮点数,如果参数是复数,则返回复数的模. print(abs(0.2)) print(abs(1)) print(abs(-4)) print(abs(-0.2)) print(abs(3+4j)) 执行结果: D:\Python\Python36-32\python.exe E:/Python/DAY-11/tmp.py 0.2 1 4 0.2 5.0 Process finished with exit code 0 all():

第六天递归、匿名函数、推导式、变量存储、模块

全局变量:生存周期,整个文件:函数内部.外部都能使,在函数前面后面定义都okdef fun():print(a+10)a = 10fun() 全局变量和局部变量同名:新开辟空间了,并不是重新赋值a = 10print(id(a))def fun():a = 20print(id(a))fun() global 在函数内部声明使用的是全局变量,尽可能放上面下面代码报错了. a = 10print(id(a))def fun():a = 20print("内20",id(a))global

三元表达式、列表推导式、生成器表达式、递归、匿名函数、内置函数

一 三元表达式.列表推导式.生成器表达式 1.三元表达式 name=input('姓名>>: ') res='SB' if name == 'alex' else 'NB' print(res) 2.列表推导式 #1.示例 egg_list=[] for i in range(10): egg_list.append('鸡蛋%s' %i) egg_list=['鸡蛋%s' %i for i in range(10)] #2.语法 [expression for item1 in iterabl

函数之三元表达式,递归,匿名函数,内置函数

三元表达式 条件成立会返回一个值,不成立会返回一个值 def func(x,y): if x>y: return x else: return y res=x if x > y else y #三元表达式 print(res) 列表推导式,生成器表达式 # 列表推导式egg_list=[] for i in range(10): egg_list.append('鸡蛋%s' %i) egg_list=['鸡蛋%s' %i for i in range(10)] # 将列表推导式的 [ ]  换

Python(九):递归+内置函数+第三方模块+md5加密+操作mysql

递归 定义:递归就是函数自己调用自己,最多可循环调用999次 内置函数 1.sorted()排序,生成的是列表 2.map()帮你循环调用函数的,保存返回值,返回的是一个list.map接受一个函数名和序列 3.filter:过滤器,帮你循环调用函数,如果函数返回false,那么就过滤掉这个值,是指从你传入这个list里面过滤 4.max()求最大值 5.sum()求和 6.round:保留几位小数 7.chr:把数字转成对应的ascii码表里对应的值 8.ord:把字母转成对应的ascii码表

函数递归和匿名函数(它们的应用)

一.函数递归 函数递归调用(是一种特殊的嵌套调用):在调用一个函数的过程中,又直接或间接地调用了该函数本身 递归必须要有两个明确的阶段: 递推:一层一层递归调用下去,强调每进入下一层递归问题的规模都必须有所减少 回溯:递归必须要有一个明确的结束条件,在满足该条件时结束递推 开始一层一层回溯 递归的精髓在于通过不断地重复逼近一个最终的结果. #直接调用本身 def f1(): print('from f1') f1() f1() #间接调用本身 def f1(): print('from f1')

Python自学笔记之函数式编程6——匿名函数

我们传入函数时,有时候不需要显式地定义函数,直接传入匿名函数更方便. 在Python中,对匿名函数提供了有限支持.以map()函数为例,计算f(x) = x * x时,除了定义一个f(x)的函数外,还可以直接传入匿名函数: >>> list(map(lambda x: x * x, [1, 2, 3, 4, 5, 6, 7, 8, 9])) [1, 4, 9, 16, 25, 36, 49, 64, 81] 通过对比可以看出,匿名函数lambda x: x * x实际上就是: def f