1、 定义函数
def 函数名(形参列表):
函数体
return 返回值
示例代码:
def unit(width, height):
area = width * height
return area
def unit(width, height):
area = width * height
print("{0} x {1} 长方形面积:{2}".format(width, height, area))
2、 调用函数
示例代码:
def unit(width, height):
area = width * height
return area
rect_area = unit(width=320, height=480) #调用函数
print("{0} x {1} 长方形面积:{2:.2f}".format(320, 480, rect_area))
3、 参数的默认值
示例代码:
def make_coffee(name="卡布奇诺"):
return "制作一杯{0}咖啡".format(name)
coffee1 = make_coffee("拿铁")
coffee2 = make_coffee() #没有提供参数,使用默认值
print(coffee1)
print(coffee2)
4、 可变参数
4-1、 基于元组的可变参数(*可变参数)
*可变参数在函数中被组装成一个元组
示例代码:
def tup(*numbers): #可变参数
total = 0
for num in numbers:
total += num
return total
sum = tup(100, 20, 30)
print(sum)
--------------------------------
def tup(*numbers):
total = 0
for num in numbers:
total += num
return total
print(tup(100, 20, 30)) #多个参数被组装成元组numbers
4-2、 基于字典的可变参数(**可变参数)
示例代码:
def show_info(**info):
print('------show_info------')
for key, value in info.items():
print('{0} - {1}'.format(key, value))
show_info(name='tony', age=18, sex=True)
show_info(student_name='tony', number='1000')
5、 函数中变量的作用域
示例代码:
a = 20 #模块中定义变量a,作用域为整个模块
def value():
b = 10 #函数中定义变量b,作用域为整个函数
print("函数中变量b = {0}".format(b))
value()
print("全局变量a = {0}".format(a))
--------------------------------------
a = 20
def value():
global a #将函数的变量a提升为全局变量
a = 10 #全局变量a被修改为10
print("函数中变量a = {0}".format(a))
value()
print("全局变量a = {0}".format(a)
6、 函数类型
6-1、 过滤函数filter()
语法如下:
filter(function, iterabal) #参数function是一个提供过滤条件的函数,返回布尔值。参数iterabal是容器类型的数据
示例代码:
def f1(x):
return x > 50
data = [55, 60, 80, 10, 40, 30]
filterd = filter(f1,data) #filter 返回的是一个迭代器
print(list(filterd)) #需要用list转换成列表形式
6-2、 映射函数map()
语法如下:
map(function, iterable)
示例代码:
def f1(x):
return x * 2
data = [1, 2, 3, 4]
mapped = map(f1, data)
print(list(mapped))
7、 lambda()函数
的语法如下:
lambda 参数列表:lamdba体 #lamdba体只能包含一条语句,计算结果返回给lamdba()函数
示例代码:
def calc(opr):
if opr == '+':
return lambda a, b: a + b
else:
return lambda a, b: a - b
f1 = calc('+')
f2 = calc('-')
print(f1(10, 5))
print(f2(8, 6))
-----------------------------
data = [55, 60, 80, 10, 40, 30]
filterd = filter(lambda x: x>30 ,data)
print(list(filterd))
发表回复