重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
高阶函数就是能够把函数当成参数传递的函数就是高阶函数,换句话说如果一个函数的参数是函数,那么这个函数就是一个高阶函数。
创新互联公司长期为上千客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为襄城企业提供专业的成都做网站、成都网站建设,襄城网站改版等技术服务。拥有10多年丰富建站经验和众多成功案例,为您定制开发。
高阶函数可以是你使用 def 关键字自定义的函数,也有Python系统自带的内置高阶函数。
我们下面的例子中,函数 senior 的参数中有一个是函数,那么senior就是一个高阶函数;函数 tenfold 的参数不是函数,所以tenfold就只是一个普通的函数。
function:函数,可以是 自定义函数 或者是 内置函数;
iterable:可迭代对象,可迭代性数据。(容器类型数据和类容器类型数据、range对象、迭代器)
把可迭代对象中的数据一个一个拿出来,然后放在到指定的函数中做处理,将处理之后的结果依次放入迭代器中,最后返回这个迭代器。
将列表中的元素转成整型类型,然后返回出来。
列表中的每一个数依次乘 2的下标索引+1 次方。使用自定义的函数,配合实现功能。
参数的意义和map函数一样
filter用于过滤数据,将可迭代对象中的数据一个一个的放入函数中进行处理,如果函数返回值为真,将数据保留;反之不保留,最好返回迭代器。
保留容器中的偶数
参数含义与map、filter一致。
计算数据,将可迭代对象的中的前两个值放在函数中做出运算,得出结果在和第三个值放在函数中运算得出结果,以此类推,直到所有的结果运算完毕,返回最终的结果。
根据功能我们就应该直到,reduce中的函数需要可以接收两个参数才可以。
将列表中的数据元素组合成为一个数,
iterable:可迭代对象;
key:指定函数,默认为空;
reverse:排序的方法,默认为False,意为升序;
如果没有指定函数,就单纯的将数据安札ASCII进行排序;如果指定了函数,就将数据放入函数中进行运算,根据数据的结果进行排序,返回新的数据,不会改变原有的数据。
注意,如果指定了函数,排序之后是根据数据的结果对原数据进行排序,而不是排序计算之后的就结果数据。
将列表中的数据进行排序。
还有一点就是 sorted 函数可以将数据放入函数中进行处理,然后根据结果进行排序。
既然有了列表的内置函数sort,为什么我们还要使用sorted函数呢?
高阶函数就是将函数作为参数的函数。
文章来自
enumerate(x,y)函数是把元组tuple、字符串str、列表list里面的元素遍历和索引组合,其用法与range()函数很相似,
下面示例enumerate(x,y)用法以及range(x)相似的用法,但是,enumerate(x,y)函数在遍历excel等时,可以实现与人视觉了解到的认识更好的理解。
enumerate(x,y)中参数y可以省略,省略时,默认从0开始,
如示例一:
list_words=["this","is","blog","of","white","mouse"]
for idx,word in enumerate(list_words):
print(idx,word)
打印结果:
使用range()函数遍历实现:
list_words=["this","is","blog","of","white","mouse"]
for i in range(len(list_words)):
print(i,list_words[i])
打印结果:
自定义开始索引号:
示例二:
list_words=["this","is","blog","of","white","mouse"]
for idx,word in enumerate(list_words[1:],2):#也可以写成for idx,word in enumerate(list_words,start=2):
print(idx,word)
打印结果:
从上面示例中可以看出,enumerate(x,y)中x是需要遍历的元组tuple、字符串str、列表list,可以和切片组合使用,
y是自定义开始的索引号,根据自己的需要设置开始索引号。
变量名={元素,元素,,,}
nums={11,24,45,96,28}
nums.add(42)
print(nums)
nums={11,24,45,96,28}
nums2=["anfly","tom"]
nums.update(nums2)
print(nums)
1)nums={11,24,45,96,28} [没有该数字报错]
nums.remove(24)
print(nums)
2)nums={11,24,45,96,28} [随机删]
nums.pop()
print(nums)
3)nums={11,24,45,96,28} [没有该数字不会报错]
nums.discard(24)
print(nums)
交集:(存在相同元素)
set1={"anfly","tom","haha"}
set2={"anfly","susala"}
set3=set1set2
print(set3)
并集:(得到全部集合中全部的元素)
set1={1,2,3,4}
set2={3,4,5,6}
new_set=set1|set2
print(new_set)
运算符 (+ * in)
内置函数 (len max min del)
列:set1 = {"1","2","3"}
print(min(set1))
def函数名():
执行语句
函数名()
列:
defhello():
print("hello word")
hello()
2.函数参数:
def add2num():
a=11
b=22
c=a+b
print(c)
add2num()
3.位置参数:
def fun(a,b):
print("a:",a)
print("b:",b)
fun(2,3)
4.关键字参数:
def fun(a,b):
print("a:",a)
print("b:",b)
fun(a=2,b=3) [第一个‘a’可以直接写数字,也可以展示;第二个以及之后‘b’不能直接写数字,要写‘b=3’这种格式]
5.缺省参数
def printinfo(name,age=20):
print("name:",name)
print("age:",age)
printinfo(name="anfly") [展示都能展示出来]
6.不定长参数
1).*args[展示是元组]
defprintinfo(*args):
print("args:",args)
printinfo(100,200,300,400)
2)**args[展示是k.v格式]
def printinfo(**kwargs):
print("kwargs:",kwargs)
printinfo(a=100,b=200,c=300,d=400)
7.参数位置顺序
def sun(a,*args,b=22,**kwargs):
print("a:",a) ==10
print("args:",args) ==(200,300)
print("b:",b) ==2
print("kwargs:",kwargs) =={‘m’:3,'n':4}
sun(100,200,300,b=2,m=3,n=4)
8.函数返回值
def fan(a,b):
return a+b
print(fan(1,2)) #3
9.匿名函数(lambda函数也叫匿名函数,即函数没有具体的名称)
案例一:
sum=lambda a,b:a+b
print(sum(1,2)) #3
案例二:
sum=lambda a,b:100
print(sum(1,2)) #100
1.局部变量
def jv():
a=3
print(a)
def jv1():
a=99
print(a)
jv() #3
jv1() #99
2.全局变量
def jv():
print(a)
def jv1():
a=99
print(a)
jv() #全局变量
jv1() #99
3.局部变量升成全局变量
def jv():
a=3
global b
b="我也是全局变量"
print(a)
def jv1():
a=99
print(a)
print(b)
jv() #3
jv1() #99 #“我也是全局变量”
import math
m = int(input("请输入第一个数字:"))
n = int(input("请输入第二个数字:"))
if m 0 or n 0 or m - n 0:
print("负数是没有阶乘,请重新输入!")
else:
result = math.factorial(m) / math.factorial(n) / math.factorial(m - n)
print("按照公式C(m, n) = m!/n! /(m - n)!,C({0},{1})的答案为 {2}".format(m, n, result))