def calc(x,y=None,*numbers): #定义函数,并设定参数 print(numbers) #输出不定长参数numbers sum = 0 #定义变量 for n in numbers: #迭代参数numbers内变量 sum = sum + n * n #求得所有数值的平方和 return sum #返回给函数结果 result=calc(1,2) #调用函数calc,并赋值参数x,y的值为1和2.所以numbers为空值 print(result) #输出的为sum最初定义值
3.可更改(mutable)与不可更改(immutable)对象
在 python 中,(strings, tuples, 和 numbers) 是不可更改的对象,而( list,dict )等则是可以修改的对象。4.
关键字参数:关键字参数允许你传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict
不定长参数(可变参数):
可变参数允许你传入0个或任意个参数,这些可变参数在函数调用时自动组装为一个tuple,但是调用的时候,需要先组装出一个list或tuple。
5.
参数组合
在Python中定义函数,可以用必选参数、默认参数、可变参数、关键字参数和命名关键字参数,这5种参数都可以组合使用,除了可变参数无法和命名关键字参数混合。但是请注意,参数定义的顺序必须是:必选参数、默认参数、可变参数/命名关键字参数和关键字参数。
6.
要注意定义可变参数和关键字参数的语法:
*args是可变参数,args接收的是一个tuple;**kw是关键字参数,kw接收的是一个dict。7.
其中详解:
(1).map()函数接收两个参数,一个是函数,一个是序列,map将传入的函数依次作用到序列的每个元素,并把结果作为新的list返回。
(2). map(lambda x:expres ,foo) map(tt,foo) 得到列表,需要循环输出,其中tt代表引用的函数
filter(lambda x:x>10,foo) 可以过滤符合的结果,一个元素, 注:如果需要输出值,需要转为list类型才可以!!!!
def is_odd(n): return n % 2 == 1 a = list(filter(is_odd, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10])) print(a)
filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表。
该接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判,
然后返回 True 或 False,最后将返回 True 的元素放到新列表中。
8.
sorted()也是一个高阶函数,它可以接收一个比较函数来实现自定义排序,比较函数的定义是:
传入两个待比较的元素 x, y,如果 x 应该排在 y 的前面,返回 -1,如果 x 应该排在 y 的后面,返回 1。如果 x 和 y 相等,返回 0。
字符串默认按照ASCII大小来比较