012 Python中的 函数 ——使用篇

前言:

    把上课的笔记整理出一些可能常用到的函数,持续更新中。。。

    如有纰漏,请告知我,多谢~!


一、Globals()函数和locals函数()

Globals() 返回当前全局作用域内变量的字典

locals() 返回当前局部作用域内变量的字典

二、lambda表达式

Also called 匿名函数

作用

创建一个匿名函数对象

同def类似,但不提供函数名

语法

lambda [ 形参1, 形参2,… ] : 表达式

注:[ ]可略

说明

1.lambda只是一个表达式,它用来创建一个函数对象

2. 当lambda表达式调用时,先执行冒号(:)后的表达式,并返回表达式的结果的引用

3.lambda表达式创建的函数只能包含一条表达式;

4. lambda比函数简单且可以随时创建和销毁,有利于减少程序的耦合度;调用一次,就创建一次。

示例

myadd = lambda a, b: a + b  # 表达式

print("10 + 20 =", myadd(10, 20))

print("30 + 40 =", myadd(30, 40))

三、eval函数和exec函数

3.1 eval函数

作用

把一个字符串当成一个表达式来执行,返回表达式执行后的结果

格式

eval(source,globals=None,locals=None)

示例

S = input(“请输入一个表达式”)

V= eval(s)    #解释执行字符串,得到表达式的结果

Print(V)

>>>输入100+200*300

>>>得到60100,而不是字符串‘100+200*300’

# 此示例示意eval的用法:


x = 100
y = 200
v = eval('x + y')
print(v)  # 300

dict_local = {'x':1, 'y': 2}
v = eval('x + y', None, dict_local)
print(v)  # 3

dict_global = {'x':10, 'y': 20}
v = eval('x + y', dict_global, {'y':2})
print(v)  # 12


v = eval('x + y', None, {'y':2})
print(v)  # 12

v = eval('x + y', {'x':1})
print(v)  # 1 + y 出错


3.2 exec函数

作用

把一个字符串当成程序来执行

格式

exec(source,global= None,locals=None)

# exec.py


# 此示例示意exec函数的使用

x = 100
y = 200
s = '''z=x+y
print('z=', z)
print("hello world!")
'''
exec(s)  # 执行 s这个字符串
print(z)


dict_local = {'x': 1}
exec(s, None, dict_local)
print(dict_local)

四、高阶函数

4.1什么是高阶函数

High order function

需满足其中一个条件

1.函数接收一个或多个函数作为参数传入

2.函数返回一个函数

内建的高阶函数

map、filter、sorted

4.2 有哪些高阶函数

4.2.1 Map函数

作用

用函数和可迭代对象中的每一个元素作为参数返回新的可迭代对象;

语法

Map(func,*iterables)

要求

Func函数接收的参数个数必须与可迭代对象的个数相同;当最短的一个可迭代对象不再提供数据时迭代结束

示例

Def power2(x):

Return x ** 2

#生成一个iterable,使其可以生成1~9的平方

For x in map(power2,range(1,10)):

    Print(x)

L1 = [1, 2, 3, 4]

L2 = [5, 6, 7, 8]

#生成数据为:1**5, 2**6,

def power_x_y(x,y):

    return x ** y

for x in map(power_x_y, L1, L2):

    print(x)

4.2.2 Filter函数

格式

filter(function,iterable)

作用

筛选可迭代对象中的数据,返回一个可迭代对象,此可迭代对象将对可迭代对象提供的数据进行筛选

说明

函数function将对iterable中的每个元素进行求布尔值,返回True则保留,返回False则丢弃。

示例

Def isodd(x):

Return x % 2 == 1

For x in filter(isodd, range(41,53)):

    Print(x)

4.2.3 Sorted 函数

作用

将原可迭代对象提供的数据进行排序,生成排序后的列表

格式

Sorted(iterable, key=None, reverse=False)

说明

1.Key函数是用来提供一个排序参考值的函数,这个函数的返回值将作为排序的依据

2.Reverse标志用来设置是否降序排序

示例

L = [5, -2, -4, 0, 3, 1]

L2 = sorted(L)     

#要得到这样的结果该怎么办?

[0, 1, -2, 3, -4, 5]

L3 = sorted(L, key=abs)

Ps:不要加括号,这是让sorted函数去调用key所对应的函数;而不是自己调用abs()

Names = [‘Tom’,‘Jerry’,‘Spike’,‘Tyke’]

#结果[‘Tom’,‘Tyke’,‘Jerry’,‘Spike’]

L = sorted(names, key=len


猜你喜欢

转载自blog.csdn.net/weixin_37767152/article/details/80718594
今日推荐