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))