Welcome to my blog.|

Khru

园龄:2年11个月粉丝:22关注:1

2022-08-16 22:33阅读: 31评论: 0推荐: 0

Python-函数

函数

函数具有函数名, 参数返回值.

  • 在模块中但是类之外定义, 作用域是当前模块, 称之为函数.
  • 在别的函数中定义, 称之为嵌套函数.
  • 在类中定义, 称之为方法.

定义函数

def 函数名(形式参数列表):
函数体
return 返回值

调用函数

  1. 调用函数的基本形式: 调用函数时传递的实参与定义函数时形参的顺序一致.

  2. 在调用函数时可以采用"关键字=实参"的形式, 关键字就是定义函数时形参的名称. 实参不再受形参的顺序限制.

参数的默认值

当定义函数时提供了默认值, 如果调用函数时没有提供实参, 则使用默认值.

def rect_area(width_0, height_0):
area = width_0 * height_0
return area
def print_area(width_1=0, height_1=0):
area = rect_area(width_0=width_1, height_0=height_1)
print("{0} * {1}长方形的面积: {2}".format(width_1, height_1, area))
width, height = (2, 3)
print_area(width, height)
# 2 * 3长方形的面积: 6
print_area()
# 0 * 0长方形的面积: 0

可变参数

函数可以定义接收不确定数量的参数, 即可变参数.

  • 基于元组的可变参数 - *可变参数

    def summary(*numbers):
    total = 0.0
    for number in numbers:
    total += number
    print(total)
    summary(*(30.0, 80.0)) # 110.0
    summary(100.0, 20.0, 30.0) # 150.0
  • 基于字典的可变参数 - **可变参数

    def show_info(**d):
    print("----show information----")
    for key, value in d.items():
    print("{0}: {1}".format(key, value))
    show_info(**{'a': 1, 'b': 2})
    show_info(a=1, b=2, c=3)
    def add(a, b):
    return a+b
    print(add(**{'a': 1, 'b': 2})) # 3

函数类型

Python 中的任意一个函数都有数据类型, 即 function 函数类型.

  1. 一个函数作为另一个函数返回值使用.

    def add(a, b):
    return a + b
    def sub(a, b):
    return a - b
    def opr(c):
    if c == '+':
    return add
    else:
    return sub
    f1 = opr('+') # f1 = add
    f2 = opr('-') # f2 = sub
    a, b = (2, 1)
    print(type(f1)) # <class 'function'>
    print("{0} + {1} = {2}".format(a, b, f1(a, b)))
    print("{0} - {1} = {2}".format(a, b, f2(a, b)))
    • 匿名函数 - lambda 参数列表: lambda体

      def opr(c):
      if c == '+':
      return lambda a, b: (a + b)
      else:
      return lambda a, b: (a - b)
  2. 一个函数作为另一个函数参数使用.

    def add_params(a, b):
    return a + b
    def mult_params(func, a, b, c):
    return func(a, b) * c
    def mult_dict(func, c, **params):
    return func(**params) * c
    a, b, c = (1, 2, 3)
    r1 = add_params(a, b)
    r2 = mult_params(add_params, a, b, c)
    r3 = mult_dict(add_params, c, b=2, a=1)
    print(r1) # 3
    print(r2) # 9
    print(r3) # 9
    • 过滤函数 - filter(function, iterable)

    • 映射函数 - map(function, iterable)

      def func1(x):
      return x > 50
      def func2(x):
      return x * 2
      data1 = [66, 15, 91, 28, 98, 50]
      filtered = filter(func1, data1)
      mapped = map(func2, data1)
      print(type(filtered)) # <class 'filter'>
      print(type(mapped)) # <class 'map'>
      data2 = list(filtered)
      print(data2)
      data3 = list(mapped)
      print(data3)

本文作者:Khru

本文链接:https://www.cnblogs.com/khrushchefox/p/16593282.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   Khru  阅读(31)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起