Python函数下(第九讲)

在这里插入图片描述

1.内置文件中常用方法

1.range()

  • range(start,stop,step) --> range object
  • start:起始值默认为零
  • stop:结束值
  • step:步长
print(list(i for i in range(0,10)))
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# 生成0到10的整数

2.zip()

    zip()用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。

  • zip(iter[,iter2 […]]) --> zip object
a = ('name', 'age')
b = ('Jeff', 18)
print(tuple(zip(a, b)))
# (('name', 'Jeff'), ('age', 18))

3.map()

    map() 会根据提供的函数对指定序列做映射。

  • map(func,*iterables) --> map object
num = ['1', '2', '3']
nums = map(lambda x:int(x),num)
print(list(nums)) # [1, 2, 3]

4.filter()

    filter() 用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表。

  • filter(func, iterable) --> filter object
  • func:自定义函数
  • iterable:可迭代对象
def jishu(a):
    return a % 2 == 1
print(list(filter(jishu, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10])))
# [1, 3, 5, 7, 9];把奇数过滤出来

练习

  • 实现:返回1-10的奇数列表
def jishu(a):
    return a % 2 == 1
print(list(filter(jishu, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10])))
# [1, 3, 5, 7, 9];把奇数过滤出来
  • 实现:阶乘,比如n!=123*…*n
def chengjie(n):
    rse = n
    for i in range(1, n):
        rse *= i
    print(rse)
chengjie(6) # 720

2.匿名函数

1.匿名函数介绍

    当我们在传入函数时,有些时候,不需要重复调用该函数,直接传入匿名函数更方便,也无需担心函数名冲突,并且还可以将匿名函数赋值给一个变量,再利用变量来调用该函数。

  • lambda x:x*x
  • 关键字lambda表示匿名函数
  • 冒号前面的x表示函数参数
  • 冒号后面的表示函数返回值
a = lambda x, y : x*y
print(a(2, 3)) # 6

2.匿名函数应用

  • 匿名函数作返回值
def fx(i, j):
    return lambda: i * j

f = fx(6, 6)
  • 匿名函数作实参
def text(a, b, func):
    res = func(a, b)
    return res

nums = text(11, 22, lambda x, y: x + y)

3.练习

  • 将 lis = [4,-2,3,1] --> [1,-2,3,4]
lis = [4, -2, 3, 1]
# key:指定排序规则,排序完成返回原元素
# abs取绝对值
lis.sort(key=abs)
print(lis)
  • infors = [{‘name’:‘qian’,‘age’:28},{‘name’:‘amy’,‘age’:20},{‘name’:‘james’,‘age’:25}]以name对应的值进行排序
infors = [{'name': 'qian', 'age': 28}, {'name': 'amy', 'age': 20}, {'name': 'james', 'age': 25}]
# key:排序键-->获取每个字典当中的name值
infors.sort(key=lambda x:x['name'])
print(infors)

3.高阶函数

    高阶函数需满足条件:

  • 函数名 作为 参数传入
  • 函数名 作为 返回值

4.闭包

    闭包的定义需要满足以下三个条件:

  • 在一个外函数中定义了一个内函数
  • 内函数里运用了外函数临时变量
  • 并且外函数返回值内函数的引用
# 运行顺序标在代码后面
def text(number): # 2
    print('--1--') # 3

    def text_in(number_in): # 6
        print(number_in) # 7
        print('--2--') # 8
        return number_in + number # 9
    print('--3--') # 4
    return text_in # 5


res = text(20) # 1
res1 = res(25) # 6
print(res1)
'''
输出结果
--1--
--3--
25
--2--
45
'''

5.装饰器

    装饰器 (@) 是一种语法糖,主要用于在函数或类的基础上添加一些可重用的额外功能。从应用开发的角度来看的话,我们使用装饰器来对我们的应用代码进行功能性扩展和包装,以提高代码的可重用性可维护性

  • 日志记录
  • 调用跟踪管理及参数验证
  • 在 Web 应用中进行登录验证或路由注册
  • 性能优化中记录任务执行时间
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python函数是一段可重复使用的代码块,用于执行特定的任务。函数可以接受输入参数,并返回输出结果。以下是Python函数的一些知识点: 1. 定义函数:使用关键字`def`来定义函数,后面跟着函数名和参数列表。函数体内的代码块需要缩进。 示例: ```python def greet(name): print("Hello, " + name + "!") ``` 2. 参数传递:函数可以接受零个或多个参数。参数可以是必需的(必须提供)或可选的(可以省略)。参数可以是位置参数或关键字参数。 示例: ```python def add_numbers(a, b): return a + b result = add_numbers(3, 5) # 位置参数 print(result) # 输出:8 def multiply_numbers(x, y=2): return x * y result = multiply_numbers(4) # 关键字参数 print(result) # 输出:8 ``` 3. 返回值:函数可以使用`return`语句返回一个值。如果没有明确指定返回值,则函数默认返回`None`。 示例: ```python def square(x): return x * x result = square(3) print(result) # 输出:9 ``` 4. 函数文档字符串:可以使用文档字符串(docstring)来描述函数的功能、参数和返回值等信息。文档字符串位于函数定义的第一行或第二行。 示例: ```python def greet(name): """ 打印问候语 参数: - name: 姓名 """ print("Hello, " + name + "!") ``` 5. 匿名函数(Lambda函数):使用`lambda`关键字可以创建匿名函数,这些函数没有函数名,通常用于简单的功能。 示例: ```python square = lambda x: x * x result = square(3) print(result) # 输出:9 ``` 6. 函数作为参数:在Python中,函数可以作为参数传递给其他函数,也可以作为返回值返回。 示例: ```python def apply_operation(x, y, operation): return operation(x, y) def add(x, y): return x + y result = apply_operation(3, 5, add) print(result) # 输出:8 ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值