函数

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))

评论

《“函数”》 有 1 条评论

  1. 游客 的头像
    游客

    总结的很好

回复 游客 取消回复

您的邮箱地址不会被公开。 必填项已用 * 标注