python定义函数及调用函数

1.def()函数自定义及调用函数

def f(x, y):
    return x*y + 3*x   # 返回一个值

def f_1(x, y):
    return 3*x, 4*y    # 双重返回一个数组

def f_2(x=1, y=3):     # 定义函数同时定义参数的默认值
    return [x+2, y+2]  # 返回值是一个列表

# 调用def()函数
# 1.1先对参数赋值,在调用
x = 2
y = 3
a = f(x, y)
b = f_1(x, y)
[c, d] = f_2(x, y)  # 注意即使函数f_2()已经赋值好了,但输出结果只与定义后赋予参数的值相同,当你不对参数赋值使用参数的默认值
print(a)  # 12
print(b)  # (6, 12)
print(c)  # 4

# 1.2.直接在函数中赋予参数的值
a = f(2, 3)
b = f_1(2, 3)
[c, d] = f_2(2, 3)
print(a)
print(b)
print(c)

# 1.3.main函数调用,直接打出main即可出现,且main这一行最左边有个三角形,点击直接运行选项
if __name__ == '__main__':
    a = f(x, y)
    b = f_1(x, y)
    [c, d] = f_2(x, y)
print(a)
print(b)
print(c)

2.lambda对简单的功能定义“行内函数”及调用lambda函数

f = lambda x: x + 2  # 定义一元函数
g = lambda x, y : x + y  # 定义二元函数

# 调用lambda函数
# 2.1
e1 = g(1, 2)
# 2.2
e2 = g(x, y)
print(e1)
print(e2)
# 2.3
if __name__ == '__main__':
    e3 = g(1, 2)
    print(e3)

# 两者的函数的前三种调用方法比较相似,但lambda偏向于简单函数的构建,比较简洁;
#                    而def函数偏向于运算比较复杂的函数构建,比较复杂

# 2.4.map()函数:首先定义一个函数,然后再用map()命令将函数逐一应用到(map)列表中的每一个元素,最后返回一个数组,适用于逐一遍历
a = [1, 2, 3] # 列表解析式
b = [i+2 for i in a]  # [3, 4, 5]

b = map(lambda x: x+2, a)
b = list(b)  # [3, 4, 5]
c = map(lambda x, y: x*y, a, b) # 将a,b两个列表的元素对应相乘,把结果返回给新列表
c =list(c)   # [3, 8, 15]

# 2.5.reduce()函数首先将列表的前两个元素作为函数的参数进行运算,然后将运算结果与第三个数字作为函数的参数....以此内推,直到列表结束,用于递归运算
from functools import reduce
n = 10
reduce(lambda x, y: x*y, range(1, n+1))

# 2.6filter()函数,用于筛选出列表中符合条件的元素
b = filter(lambda x: x > 5 and x < 8, range(10))
b = list(b)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值