博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python之路--Python基础4--内置函数
阅读量:7058 次
发布时间:2019-06-28

本文共 4533 字,大约阅读时间需要 15 分钟。

内置函数介绍:

 内置参数官方详解 https://docs.python.org/3/library/functions.html?highlight=built#ascii 

 下面是本人对常用内置函数的理解:

print(abs(-1))  #绝对值  1print(all([1, 2, 3, 4, 5]))             #Trueprint(all(['', 1, 2]))                  #False#bool为False的情况0、 空、Noneprint(bin(12345), type(bin(12345)))     #0b11000000111001 
print(chr(97)) #按照ascll表将数字转换成字符 aprint(ord("a")) #按照ascll表将字符转换成数字 97print(divmod(10, 3)) #返回(商,余数) (3, 1)print(id(1)) #查看内存地址print(isinstance("123", int)) #Falseprint(type("123") is str) #判断数据类型 Trueprint(len("123")) #3print("123".__len__()) #计算长度 3print(pow(2, 3)) #2的3次方 8print(pow(2, 3, 3)) #前两个参数是求次方,后一个参数是取余运算 2print(type(repr(1234))) #将1234转成字符串
print(type(str(1234))) #
l = [1, 2, 3]for i in reversed(l): #倒着打印 print(i)print(round(3.5)) # 四舍五入 4print(round(3.3)) # 3print(l[0:3:2]) #切片[1, 3]a = slice(0, 3, 2)print(l[a]) #切片[1, 3]print(sum([1, 2, 3, 4, 5])) #求和运算 15print(sum([1, 2, 3, 4, 5]), 100) #可以设置初始值100, 结果为115print(sum([], 100)) #100print(eval("1+2*3/4")) #将字符串形式的表达式 解析并执行: 2.5a = "print('hello exec')"exec(a) #将字符串形式的代码 解析并执行:hello exec#compile()#几乎用不到 #把一个代码文件加载进来,按exec和eval的方式解析并执行def Sayhi(): name = "YL" print(locals()) #打印局部变量 {'name': 'YL'} print(globals()) #打印全局变量Sayhi()#-------------------------------------------------------------------------------------#map(function, sequence1, sequence2...)a = map(lambda x: x*x, range(10))print(a) #
print(list(a)) #[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]#可以处理多个sequence,实现通过function方法对sequence1,sequence1,..进行处理,这就要求function也支持相应数量的参数输入:a = map(lambda x, y, z: x+y+z, range(10), range(10), range(10))print(list(a)) #[0, 3, 6, 9, 12, 15, 18, 21, 24, 27]#------------------------------------------------------------------------------------------#-------------------------------------------------------------------------------------#reduce(function, sequence, starting_value):#仅能处理一个sequence,starting_value为初始化值,执行顺序为:先将每个sequence内部第一个值和starting_value进行function处理,#处理的结果再与sequence第二个值进行function处理,直到结束。#->reduce的function函数必须要输入两个变量才能进行运算from functools import reduceprint(reduce(lambda x, y: x + y, [2, 3, 4, 5, 6], 1)) #21#结果为21 执行顺序为---->((((( (1+2) +3)+4)+5)+6))print(reduce(lambda x, y: x + y, [2, 3, 4, 5, 6])) #20#-------------------------------------------------------------------------------------#------------------------------------------------------------------------------------# filter(function, sequence):对sequence中的item依次执行function(item),只能有1个sequencea = range(10)b = filter(lambda x: x > 5, a)print(b) #
print(list(b)) #[6, 7, 8, 9]print(list(filter(lambda x: x+5, a))) #[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]#filter可以看作是过滤函数,貌似并不能修改sequence里面的值l = [1, 2, 0, 4, 0, 7]print(list(filter(None, l))) #当function是None时,返回的是Ture的item:[1, 2, 4, 7]#-------------------------------------------------------------------------------------a = list(range(10))print(a) #[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]b = list(range(10, 16))print(b) #[10, 11, 12, 13, 14, 15]print(list(zip(a, b))) #[(0, 10), (1, 11), (2, 12), (3, 13), (4, 14), (5, 15)]#printmsg = "又回到最初的起点"f = open("tofile", "w")print(msg, "记忆中你青涩的脸", sep="|", end="", file=f) #在文件tofile中写入:又回到最初的起点|记忆中你青涩的脸import time #老牛逼了for i in range(10): time.sleep(0.5) #print(".") print(".", end="", flush=True)# import sys# print("---", vars(sys))# print("...", dir(sys))# import time# for n in (100000, 200000, 300000, 400000):# data = b'x'*n# start = time.time()# b = data# while b:# b = b[1:]# print('bytes', n, time.time()-start)## for n in (100000, 200000, 300000, 400000):# data = b'x'*n# start = time.time()# b = memoryview(data)# while b:# b = b[1:]# print('memoryview', n, time.time()-start)

 

小结:map、filter、reduce三个函数的区别

map函数,可以有多个sequence参数,并且可以修改参数sequence中的item的值

 

filter函数,只能有一个sequence参数,并且不能修改参数sequence中的item的值,相当于一个过滤函数

 

reduce函数,只能有一个sequence参数,并且不能修改参数sequence中的item的值,相当于一个累加函数,它的function参数必须有两个参数传入

 

 

 

 

转载于:https://www.cnblogs.com/Andy0827/p/8231535.html

你可能感兴趣的文章
跳转到移动终端
查看>>
Azure Storage Client Library 重试策略建议
查看>>
元素分类
查看>>
页面获取当前时间
查看>>
select,poll,epoll
查看>>
关于“foreach循环”中遇到的几个问题总结
查看>>
重温JSP学习笔记--El函数库
查看>>
模板引擎ejs的include方法
查看>>
NOIP2003 传染病控制
查看>>
bzoj千题计划316:bzoj3173: [Tjoi2013]最长上升子序列(二分+树状数组)
查看>>
linux: 堆排序和快速排序的整理
查看>>
请求数据传入(SpringMVC)
查看>>
第七篇 PHP编码规范
查看>>
队列(queue)
查看>>
jsHint-静态代码检查工具eclipse中使用
查看>>
xpath节点匹配简易教程
查看>>
undefined reference问题总结
查看>>
binary 和 varbinary
查看>>
php构造方法与析构方法
查看>>
条件熵
查看>>