Python基础知识day06函数(下)

123 阅读2分钟
set
list
tuple
列表推导式
匿名函数
递归函数(了解)
给程序传参
set
list
tuple
set
是集合类型
set
list
tuple
之间可以相互转换
使⽤
set
,可以快速的完成对
list
中的元素去重复的功能
列表推导式
所谓的列表推导式,就是指的轻量级循环创建列表
1.
基本的⽅式
2.
在循环的过程中使⽤
if
3.2
for
循环
4.3
for
循环
练习
请写出⼀段
Python
代码实现分组⼀个
list
⾥⾯的元素
,
⽐如
[1,2,3,...100]
变成
[[1,2,3],[4,5,6]
]
参考答案:
a = [x for x in range(1,101)]
b = [a[x:x+3] for x in range(0,len(a),3)]
匿名函数
lambda
关键词能创建⼩型匿名函数。这种函数得名于省略了⽤
def
声明函数的标准步骤。
lambda
函数的语法只包含⼀个语句,如下:
lambda [arg1 [,arg2, argn]]:expression
如下实例:
sum = lambda arg1, arg2: arg1 + arg2
#
调⽤
sum
函数
print("Value of total : " % sum( 10, 20 )) print("Value of total : "% sum( 20, 20 ))
以上实例输出结果:
Value of total : 30
Value of total : 40
Lambda
函数能接收任何数量的参数但只能返回⼀个表达式的值匿名函数不能直接调⽤
print
,因为
lambda
需要⼀个表达式
应⽤场合
函数作为参数传递
1.
⾃⼰定义函数
>>> def fun(a, b, opt):
... print("a = " % a)
... print("b = " % b)
... print("result =" % opt(a, b))
...
>>> fun(1, 2, lambda x,y:x+y) a = 1
b = 2
result = 3
2.
作为内置函数的参数
想⼀想,下⾯的数据如何指定按
age
name
排序?
stus = [
{"name": "zhangsan", "age": 18},
{"name": "lisi", "age": 19},
{"name": "wangwu", "age": 17}
name
排序:
>>> stus.sort(key = lambda x: x['name'])
>>> stus
[{'age': 19, 'name': 'lisi'}, {'age': 17, 'name': 'wangwu'}, {'age': 18, 'name': 'zhangsan'}]
age
排序:
>>> stus.sort(key = lambda x: x['age'])
>>> stus
[{'age': 17, 'name': 'wangwu'}, {'age': 18, 'name': 'zhangsan'}, {'age': 19, 'name': 'lisi'}]
03.
递归函数
通过前⾯的学习知道⼀个函数可以调⽤其他函数。
如果
⼀个函数在内部调⽤其本身,这个函数就是
递归函数。递归函数的作⽤
举个例⼦,我们来计算阶乘
n! = 1 2 3 ... n
解决办法
1:
看阶乘的规律
1! = 1
2! = 2
×
1 = 2
×
1!
3! = 3
×
2
×
1 = 3
×
2!
4! = 4
×
3
×
2
×
1 = 4
×
3!
...
n! = n
×
(n-1)!
#
如果定义
step_num
函数实现了阶乘,相当于
step_num(n) = n *
step_num(n-1)def step_num(num): if num > 1:
return num * step_num(num - 1) else:
return 1
递归函数⼀般都需要⼀个条件判断来打破死循环
,
否则会导致到达最⼤嵌套次数,程序报错
给程序传参数
import sys
print(sys.argv)
运⾏结果
:

更多免费技术资料可关注:annalin1203