4-1 内置函数和匿名函数

 一 内置函数

1 输出 print

print(1,2,3,4,5,sep=';',end='| ') ##sep是以;分开每个数字,end是以|结尾的

2 查看内置属性

##dir查看某对象的属性及其方法

# import os

# print(dir(os))

3 数学相关运算的

3.1 abs 计算绝对值

# print(abs(-9))

3.2 divmod 可以返回商和余数

# print(divmod(9,4))

3.3 round 小数精确

# print(round(3.1415926,3)) #逗号后面可以指定保留几位小数,并且会四舍五入

3.4 pow 幂运算

# print(pow(2,3,5)) #(2**3)%3 就是2的三次方,对5取余

3.5 sum 求和

# print(sum ([1,2,3,4]))

# print(sum(range(1,10)))

#print(sum([1,2,3,4,5],10))  ##1到5求完和之后,然后再加10,不加默认是0

3.6 max求最大值(重要)

print(max(1,2,3,6))

print(max(range(1,10)))

3.7min 求最小值(重要)

1 # print(min(-1,0,3,4))
2 
3 # print(min(-1,0,3,4,key=abs)) ##算完绝对值之后,在返回最小值
4 
5 # def func(num):
6 
7 # return num%2
8 
9 # print(min(-2,3,-4,key=func))

3.8 反序

 1 ##reverse  ##直接返回结果
 2 
 3 # ret = [1,2,3,4,5]
 4 
 5 # ret.reverse()
 6 
 7 # print(ret)
 8 
 9 
10 #reversed  ##返回一个可迭代对象
11 
12 # ret1 = reversed(ret)
13 
14 # ret2 = reversed((1,2,3,4,5))
15 
16 # print(ret)
17 
18 # print(list(ret1))

4 字符串相关的

1 # eval和exec
2 
3 # eval('print(123)')
4 
5 # exec('print(123)')
6 
7 # print(eval('1+2-3*20/(2+3)'))##有返回值
8 
9 # print(exec('1+2-3*20/(2+3)')) ##执行了但没有返回值

5 format格式化显示

#字符串可以提供的参数,指定对齐方式,<是左对齐, >是右对齐,^是居中对齐

# print(format('test', '<20'))

# # print(format('test', '>20'))

# print(format('test', '^20'))

6##ord 字符串按照unicode转数字

# print(ord('a'))

7#chr数字按照unicode转字符

# print(chr(97))

8##repr用于%r格式化输出

# print(repr(1))

# print(repr('1'))

9 enumerate 枚举

 1 # ll=['a','b','c']
 2 
 3 # for i in ll:
 4 
 5 # print(ll.index(i),i)
 6 
 7 第二种写法
 8 
 9 # for i,v in enumerate(ll):
10 
11 # print(i,v)

10 zip返回一个迭代器,拉链就是按顺序让其一一对应


ret = zip([1, 2, 3, 4, 5], ('a', 'b', 'c', 'd'), (4, 5,0))  # 拉链方法

print(ret)

for i in ret:
print(i)
 

11filter 重要  用于过滤,比如大于几的数字,或者偶数,奇数之类的


lst = [1, 4, 6, 7, 9, 12, 17]
def func(num):
if num % 2 == 0: return True

filter(func, lst) ##分别把lst里面的值传给num,然后取出除2等于0的数字

for i in filter(func, lst):

print(i)


##第二种方法
g = (i for i in lst if i%2 == 0)
for i in g:
print(i)
 

12map 求1到10的平方 重要  主要用于计算


def func(num):

return num**2
for i in map(func,range(10)):

print(i)
 

13 排序

##sort 排序(这个只是个方法,不是函数)

1 # l = [1,-4,-2,3,-5,6,5]
2 
3 # l.sort(key=abs) ##按照绝对值来排序的
4 
5 # print(l)
打印结果是
[1, -2, 3, -4, -5, 5, 6]

##sorted排序(重要)

1 # l = [1,-4,-2,3,-5,6,5]
2 
3 # new_l = sorted(l,key=abs,reverse=True) ##按照绝对值,并且反序来排序的
4 
5 # print(new_l)
打印结果是
[6, -5, 5, -4, 3, -2, 1]

 二 匿名函数(lambda)

匿名函数:为了解决那些功能很简单的需求而设计的一句话函数

 1 #普通函数写法:
 2 def calc(n):
 3     return n**n
 4 print(calc(2))
 5 
 6 
 7 #换成匿名函数
 8 calc = lambda n:n**n
 9 print(calc(2))
10 
11 打印结果都是4

匿名函数格式

函数名 = lambda 参数 :返回值

#参数可以有多个,用逗号隔开
#匿名函数不管逻辑多复杂,只能写一行,且逻辑执行结束后的内容就是返回值
#返回值和正常的函数一样可以是任意数据类型

2.1例子
 1 ##第一种普通函数写法:
 2 # def func(num):
 3 #      return num ** 2
 4 #
 5 # for i in map(func,range(10)):print(i)
 6 
 7 
 8 ##第二种写法:匿名函数
 9 
10 # for i in map(lambda num : num ** 2 ,range(10)):print i
11 
12 
13 ##打印结果是0-9,9个数字的平方
#例子
现有两元组(('a'),('b')),(('c'),('d')),请使用python中匿名函数生成列表[{'a':'c'},{'b':'d'}]

第一种写法:普通函数
# def func(t):
#     return {t[0]:t[1]}
# ret = map(func,zip((('a'),('b')),(('c'),('d'))))
# print(list(ret))

##第二种写法:匿名函数
# ret = map(lambda t:{t[0]:t[1]},zip((('a'),('b')),(('c'),('d'))))
# print(list(ret))



 

 

原文地址:https://www.cnblogs.com/huningfei/p/8931518.html