学python的第八天

本文介绍了Python中的函数概念,包括函数名、参数、返回值,以及全局变量和局部变量的区别。重点讲解了可变函数(*args,**kwargs)、filter()和map()函数的应用,以及lambda匿名函数的使用示例。
摘要由CSDN通过智能技术生成
补充前面某天学的函数,函数具有函数名,参数,返回值,作用域:当前模块,函数中定义:嵌套函数,类中定义:方法
语法格式
def 函数名(形式参数列表):
    函数体
    return 返回值              #如果没有数据返回值,则可以省略return语句

# 1,变量

函数中变量的作用域,可以在模块中创建,作用域使整个模块,称为全局变量。也可以在函数中创建,默认情况下,作用域是整个函数,称为局部变量

x = 20


def p_a():
    x = 10
    print('函数中x={}'.format(x))


p_a()
print('全局变量x={}'.format(x))

# 在函数中将其声明为global,则会将函数中同名的变量提升为全局变量
x = 20


def p_a():
    global x
    x = 10
    print('函数中x={}'.format(x))


p_a()
print('全局变量x={}'.format(x))

# 2,可变函数

# 基于元组的可变函数(*可变函数)

def sum(*numbers):
    total = 0.0
    for number in numbers:
        total += number
    return total


print(sum(100.0, 20.0, 30.0))

# 基于字典的可变函数(**可变函数)
def show_info(**info):
    print('********************************')
    for key, value in info.items():
        print('{0} - {1}'.format(key, value))


show_info(name='wby', age=23, sex=True)
show_info(sutdent_name='wby', student_no='1000')

# 3,过滤函数 filter()

# 语法: filter(function,iterable)
# 参数function是一个提供过滤条件的函数,返回布尔值
# 参数iterable是容器类型的数据
# 处理一批数据

def f1(x):  # 提供过滤条件函数
    return x > 50  # 找出大于50元素


data1 = [66, 15, 91, 55, 77, 43, 63, 78, 22, 19]  # 需要处理的数据
filtered = filter(f1, data1)  # 过滤
data2 = list(filtered)  # 转化为列表
print(data2)  # 输出结果

# 4,映射函数map()

# 语法: map(function,iterable)

# 参数map是一个提供变换规则的函数,返回变换之后的元素

# 参数iterable是容器类型的数据

def f1(x):
    return x * 2  # 变换规则乘以2


data1 = [66, 15, 91, 28, 98, 50, 6, 80, 33]
mapped = map(f1, data1)
data2 = list(mapped)
print(data2)

# 5,匿名函数:lambda()函数

# 语法,lambda 参数列表:lambda体

# lambda体不能是一个代码块,不能包含多条语句,只有一条语句,语句会计算一个结果并返回给lambda()函数,但不需要return语句返回

# 例一:
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(f1(10, 5)))


# 例二:
data1 = [66, 15, 91, 28, 98, 50, 6, 80, 33]

filtered = filter(lambda x: (x > 50), data1)
data2 = list(filtered)
print(data2)

mapped = map(lambda x: (x * 2), data1)
data2 = list(mapped)
print(data2)

  • 10
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

WBY·~阿崟呢

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值