小肥羊要进步

函数

1.形参

#coding=utf-8  形参
def rect_area(width,height):
area=width*height
return area
def print_area(width,height):
area=width*height
print("{0}*{1}长方形的面积:{2}".format(width,height,area))
2.调用函数-使用位置参数调用函数

 

 

 

 

3.使用关键字参数调用函数,调用者可以清晰地看出所传递参数的含义,提高函数调用的可读性。

def rect_area(width,height):
area=width*height
return area
r_area=rect_area(width=320,height=480)
#关键字的名称就是定义函数时形参的名称
print("{0}*{1}长方形的面积:{2} ".format(320,480,r_area))
r_area=rect_area(height=320,width=480)
#实参不再受形参的顺序限制
print("{0}*{1}长方形的面积:{2} ".format(320,480,r_area))

4.参数的默认值:因为python没有函数重载的概念,而是为函数参数提供默认值
#coding=utf-8
def make_coffee(name='卡布奇诺'):
return "制作一杯{0}咖啡".format(name)
coffee1=make_coffee("拿铁")
coffee2=make_coffee()
print(coffee1)
print(coffee2)

5.可变参数
python中的函数可以定义接收不确定数量的参数,这种参数成为可变参数。
可变参数有2中,*/**参数
6.基于元组的可变参数(*可变参数)
*可变参数在函数中被组装成一个元组
#coding=utf-8
def sum(*numbers):#可变参数
total=0.0
for number in numbers:
total+=number
return total
#多个参数被组装成元组numbers
print(sum(100.0,20.0,30.0))
print(sum(30.0,80.0))

7.基于字典的可变参数(**可变参数)
**可变参数在函数中被组装成一个字典

 

 

 8.局部变量和全局变量

 

 

 一般情况况下不在模块和函数中定义两个同名变量,因为会发生命名冲突,函数中的同名变量会屏蔽模块中的同名变量。

对于在模块和函数中各定义的一个同名变量,如果在函数中将其声明为global,则会将函数中的这个同名变量提升为全局变量。

 

 

9.函数类型

 

 

10.过滤函数filter()

#提供过滤函数条件
def f1(x):
return x>50

data1=[66,15,91,28,98,50,7,80,99]
filtered=filter(f1,data1)
data2=list(filtered) #转换为列表
print(data2)
11.映射函数map()
map()函数用于对容器中的元素进行映射(或变换)。
eg:我想讲列表中的所有元素都乘以2,返回新的列表
def f1(x):
return x*2

data1=[66,15,91,28,98,50,7,80,99]
#filtered=filter(f1,data1)
mapped=map(f1,data1)
data2=list(mapped) #转换为列表
print(data2)
12.匿名函数lambda():没有名称的函数
'参数列表'与函数的参数列表是一样的,但是不需要用小括号括起来
lambda参数列表:lambda体
PS:lambda体部分不能是一个代码块,不能包含多条语句,只有一条语句,语句会计算一个结果并返回给lambda()函数,但与有名称的函数不同的是,不需要使用return语句返回
#lambda匿名函数
def calc(opr):
if opr =='+':
return lambda a,b:(a+b)
else:
return lambda a,b:(a-b)

f1=calc('+')
f2=calc('-')
print("10+5={0}".format(f1(10,5)))
print("10-5={0}".format(f2(10,5)))

13.lambda函数很强大,可以减少代码量
1)def add(a,b)
    return a+b
1.1)lambda a,b:(a+b)
2)def sub(a,b):
    return a-b

2.2)lambda a,b:(a-b)
14.之前filter和map函数的例子转化为lambda

data1=[66,15,91,28,98,50,7,80,99]
filtered=filter(lambda x:(x>50),data1)
data2=list(filtered) #转换为列表
print(data2)
#map()


data1=[66,15,91,28,98,50,7,80,99]
mapped=filter(lambda x:(x*2),data1)
data2=list(mapped) #转换为列表
print(data2)




 



posted on 2020-06-21 23:14  小肥羊要进步  阅读(241)  评论(0编辑  收藏  举报

导航