Python入门篇-内建函数
Python入门篇-内建函数
作者:尹正杰
版权声明:原创作品,谢绝转载!否则将追究法律责任。
一.常见的内建函数案例
1>.标识id
返回对象的唯一标识,CPython返回内存地址.
#!/usr/bin/env python
#_*_conding:utf-8_*_
#@author :yinzhengjie
#blog:http://www.cnblogs.com/yinzhengjie name = "尹正杰" print(id(name)) #以上代码输出结果如下:
1747244871280
id函数使用案例
2>.哈希 hash()
返回一个对象的哈希值.
#!/usr/bin/env python
#_*_conding:utf-8_*_
#@author :yinzhengjie
#blog:http://www.cnblogs.com/yinzhengjie name = "尹正杰" print(hash(name)) #以上代码输出结果如下:
617473206203171253
hash函数使用案例
3>.类型 type()
返回对象的类型.
#!/usr/bin/env python
#_*_conding:utf-8_*_
#@author :yinzhengjie
#blog:http://www.cnblogs.com/yinzhengjie name = "尹正杰" print(type(name)) #以上代码输出结果如下:
<class 'str'>
type函数使用案例
4>.类型转换
float(), int(), bin(), hex(), oct(), bool(), list(), tuple(), dict(), set(), complex(), bytes(), bytearray().
5>.打印print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)
打印输出,默认使用空格分割、换行结尾,输出到控制台.
6>.对象长度len(s)
返回一个集合类型的元素个数.
7>.isinstance(obj, class_or_tuple)
判断对象obj是否属于某种类型或者元组中列出的某个类型 isinstance(True, int)
#!/usr/bin/env python
#_*_coding:utf-8_*_
#@author :yinzhengjie
#blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/
#EMAIL:y1053419035@qq.com print(isinstance(False,int)) print(isinstance(False,(str,))) print(isinstance(False,(int,))) print(isinstance(False,(set,))) print(isinstance(False,(bool,int,str))) #以上代码执行结果如下:
True
False
True
False
True
isinstance使用案例
8>.issubclass(cls, class_or_tuple)
判断类型cls是否是某种类型的子类或元组中列出的某个类型的子类 issubclass(bool, int)
#!/usr/bin/env python
#_*_coding:utf-8_*_
#@author :yinzhengjie
#blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/
#EMAIL:y1053419035@qq.com #判断bool是否是int的子类
print(issubclass(bool,int)) #判断str是否是int的子类
print(issubclass(str,int)) #以上代码执行结果如下:
True
False
issubclass使用案例
9>.绝对值abs(x) x为数值
#!/usr/bin/env python
#_*_coding:utf-8_*_
#@author :yinzhengjie
#blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/
#EMAIL:y1053419035@qq.com #求10的绝对值
print(abs(10)) #求-20的绝对值
print(abs(-20)) #求-300的绝对值
print(abs(-300)) #以上代码执行结果如下:
10
20
300
abs(x)使用案例
10>.最大值max() 最小值min()
返回可迭代对象中最大或最小值
返回多个参数中最大或最小值
#!/usr/bin/env python
#_*_coding:utf-8_*_
#@author :yinzhengjie
#blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/
#EMAIL:y1053419035@qq.com list_1 = [1,3,-5,7,9,100] #求可迭代对象的最大值
print(max(list_1)) #求可迭代对象的最小值
print(min(list_1)) #以上代码执行结果如下:
100
-5
最大值max() 最小值min()使用案例
11>.round(x) 四舍六入五取偶,round(-0.5)
#!/usr/bin/env python
#_*_coding:utf-8_*_
#@author :yinzhengjie
#blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/
#EMAIL:y1053419035@qq.com print(round(-0.5))
print(round(-1.5))
print(round(-1.3))
print(round(-1.6)) #以上代码执行结果如下:
0
-2
-1
-2
round使用案例
12>.pow(x , y) 等价于x**y
#!/usr/bin/env python
#_*_coding:utf-8_*_
#@author :yinzhengjie
#blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/
#EMAIL:y1053419035@qq.com #求10的平方
print(pow(10,2)) #求5的三次方
print(pow(5,3)) #求2的8次方
print(pow(2,8)) #求2的32次方
print(pow(2,32)) #求2的64次方
print(pow(2,64)) #以上代码执行结果如下:
100
125
256
4294967296
18446744073709551616
pow使用案例
13>.range
range(stop) 从0开始到stop-1的可迭代对象; range(start, stop[, step]) 从start开始到stop-1结束,步长为step的可迭代对象
#!/usr/bin/env python
#_*_coding:utf-8_*_
#@author :yinzhengjie
#blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/
#EMAIL:y1053419035@qq.com for i in range(3):
print("i = {}".format(i)) print("*" * 20 + "我是分割线" + "*" * 20) for j in range(3,10):
print("j = {}".format(j)) print("*" * 20 + "我是分割线" + "*" * 20) for k in range(3,20,2):
print("k = {}".format(k)) #以上代码执行结果如下:
i = 0
i = 1
i = 2
********************我是分割线********************
j = 3
j = 4
j = 5
j = 6
j = 7
j = 8
j = 9
********************我是分割线********************
k = 3
k = 5
k = 7
k = 9
k = 11
k = 13
k = 15
k = 17
k = 19
range使用案例
14>.divmod(x, y) 等价于tuple (x//y, x%y)
#!/usr/bin/env python
#_*_coding:utf-8_*_
#@author :yinzhengjie
#blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/
#EMAIL:y1053419035@qq.com print(divmod(3,5)) print(3//5,3%5) #以上代码执行结果如下:
(0, 3)
0 3
divmod使用案例
15>.sum(iterable[, start]) 对可迭代对象的所有数值元素求和
#!/usr/bin/env python
#_*_coding:utf-8_*_
#@author :yinzhengjie
#blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/
#EMAIL:y1053419035@qq.com #
print(sum(range(1,100,2))) #默认的起始数字为0
print(sum(range(1,100,2),0)) #指定起始数字位100
print(sum(range(1,100,2),100)) #以上代码执行结果如下:
2500
2500
2600
sum使用案例
16>.chr(i) 给一个一定范围的整数返回对应的字符
#!/usr/bin/env python
#_*_coding:utf-8_*_
#@author :yinzhengjie
#blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/
#EMAIL:y1053419035@qq.com print(chr(97))
print(chr(20013))
print(chr(22269)) #以上代码执行结果如下:
a
中
国
chr使用案例
17>.ord(c) 返回字符对应的整数
#!/usr/bin/env python
#_*_coding:utf-8_*_
#@author :yinzhengjie
#blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/
#EMAIL:y1053419035@qq.com print(ord('a'))
print(ord('中'))
print(ord('国')) #以上代码执行结果如下:
97
20013
22269
ord使用案例
18>.sorted(iterable[, key][, reverse]) 排序
返回一个新的列表,默认升序 reverse是反转
#!/usr/bin/env python
#_*_coding:utf-8_*_
#@author :yinzhengjie
#blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/
#EMAIL:y1053419035@qq.com print(sorted([1, 3, 5])) print(sorted([1, 3, 5], reverse=True)) print(sorted({'c':1, 'b':2, 'a':1})) #以上代码执行结果如下:
[1, 3, 5]
[5, 3, 1]
['a', 'b', 'c']
sorted使用案例
19>.翻转reversed(seq)
返回一个翻转元素的迭代器.
#!/usr/bin/env python
#_*_coding:utf-8_*_
#@author :yinzhengjie
#blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/
#EMAIL:y1053419035@qq.com print(list(reversed(""))) print(next(reversed([1,3,5]))) for x in reversed(['c','b','a']):
print(x) #以上代码执行结果如下:
['', '', '', '', '']
5
a
b
c
reversed使用案例
20>.枚举enumerate(seq, start=0)
迭代一个序列,返回索引数字和元素构成的二元组 start表示索引开始的数字,默认是0
#!/usr/bin/env python
#_*_coding:utf-8_*_
#@author :yinzhengjie
#blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/
#EMAIL:y1053419035@qq.com for x in enumerate([2,4,6,8]):
print(x) for x in enumerate("abcde"):
print(x,end=" ") #以上代码执行结果如下:
(0, 2)
(1, 4)
(2, 6)
(3, 8)
(0, 'a') (1, 'b') (2, 'c') (3, 'd') (4, 'e')
enumerate使用案例
21>.迭代器和取元素iter(iterable)、next(iterator[, default])
iter将一个可迭代对象封装成一个迭代器
next对一个迭代器取下一个元素。如果全部元素都取过了,再次next会抛StopIteration异常
#!/usr/bin/env python
#_*_coding:utf-8_*_
#@author :yinzhengjie
#blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/
#EMAIL:y1053419035@qq.com it = iter(range(5))
print(next(it)) it = reversed([1,3,5])
print(next(it)) #以上代码执行结果如下:
0
5
iter使用案例
22>.拉链函数zip(*iterables)
像拉链一样,把多个可迭代对象合并在一起,返回一个迭代器 将每次从不同对象中取到的元素合并成一个元组
#!/usr/bin/env python
#_*_coding:utf-8_*_
#@author :yinzhengjie
#blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/
#EMAIL:y1053419035@qq.com print(list(zip(range(10),range(10)))) print(list(zip(range(10),range(10),range(5),range(10)))) print(dict(zip(range(10),range(10)))) print({str(x):y for x,y in zip(range(10),range(10))}) list_1 = [1,3,5,7,9,11]
list_2 = [2,4,6,8] list_3 = zip(list_1,list_2)
print("list_1 = {}".format(list_1))
print("list_2 = {}".format(list_2))
print("list_3 = {}".format(list_3))
for i in list_3:
print(i) #以上代码执行结果如下:
[(0, 0), (1, 1), (2, 2), (3, 3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9)]
[(0, 0, 0, 0), (1, 1, 1, 1), (2, 2, 2, 2), (3, 3, 3, 3), (4, 4, 4, 4)]
{0: 0, 1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9}
{'': 0, '': 1, '': 2, '': 3, '': 4, '': 5, '': 6, '': 7, '': 8, '': 9}
list_1 = [1, 3, 5, 7, 9, 11]
list_2 = [2, 4, 6, 8]
list_3 = <zip object at 0x0000000002185F08>
(1, 2)
(3, 4)
(5, 6)
(7, 8)
zip使用案例
二.可迭代对象
#!/usr/bin/env python
#_*_coding:utf-8_*_
#@author :yinzhengjie
#blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/
#EMAIL:y1053419035@qq.com """
可迭代对象特点:
能够通过迭代一次次返回不同的元素的对象。所谓相同,不是指值是否相同,而是元素在容器中是否是同一个,例如列表中值可以重复的。
可以迭代,但是未必有序,未必可索引
可迭代对象有:list、tuple、string、bytes、bytearray、range、set、dict、生成器等
可以使用成员操作符in、not in,in本质上就是在遍历对象
""" print(3 in range(10)) print(3 in (x for x in range(10))) print(3 in {x:y for x,y in zip(range(4),range(4,10))}) #以上代码执行结果如下:
True
True
True
三.迭代器
#!/usr/bin/env python
#_*_coding:utf-8_*_
#@author :yinzhengjie
#blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/
#EMAIL:y1053419035@qq.com """
迭代器特点:
特殊的对象,一定是可迭代对象,具备可迭代对象的特征
通过iter方法把一个可迭代对象封装成迭代器
通过next方法,迭代迭代器对象
生成器对象,就是迭代器对象
""" for x in iter(range(10)):
print(x) g = (x for x in range(10))
print(type(g))
print(next(g))
print(next(g)) #以上代码执行结果如下:
0
1
2
3
4
5
6
7
8
9
<class 'generator'>
0
1
Python入门篇-内建函数的更多相关文章
- Python入门篇-高阶函数
Python入门篇-高阶函数 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.高级函数 1>.First Class Object 函数在Python中是一等公民 函数也 ...
- Python入门篇-函数、参数及参数解构
Python入门篇-函数.参数及参数解构 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.函数概述 1>.函数的作用即分类 函数 数学定义:y=f(x) ,y是x的函数,x ...
- Python入门篇-面向对象概述
Python入门篇-面向对象概述 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.语言的分类 面向机器 抽象成机器指令,机器容易理解 代表:汇编语言 面向过程 做一件事情,排出个 ...
- Python入门篇-StringIO和BytesIO
Python入门篇-StringIO和BytesIO 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.StringIO(用于文本处理) 1>.使用案例 #!/usr/bin ...
- Python入门篇-文件操作
Python入门篇-文件操作 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.文件IO常用操作 open:打开 read:读取 write:写入 close:关闭 readlin ...
- Python入门篇-functools
Python入门篇-functools 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.reduce方法 reduce方法,顾名思义就是减少 reduce(function,se ...
- Python入门篇-类型注解
Python入门篇-类型注解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.函数定义的弊端 1>.动态语言很灵活,但是这种特性也是弊端 Python是动态语言,变量随时可 ...
- Python入门篇-数据结构堆排序Heap Sort
Python入门篇-数据结构堆排序Heap Sort 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.堆Heap 堆是一个完全二叉树 每个非叶子结点都要大于或者等于其左右孩子结点 ...
- Python入门篇-数据结构树(tree)的遍历
Python入门篇-数据结构树(tree)的遍历 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.遍历 迭代所有元素一遍. 二.树的遍历 对树中所有元素不重复地访问一遍,也称作扫 ...
随机推荐
- php-resque 队列简单使用
一.安装 php-resque 进入项目根目录,composer 安装 php-resque composer require chrisboulton/php-resque 二.常用方法 1.连接 ...
- Win732位DotNetCore部署IIS错误记录
部署环境为:Win7专业版32位,数据库Mysql5.7.27-win32 1.先启用IIS功能 2.安装Mysql5.7.27-win32,使用解压版安装 安装步骤: mysql的解压根目录下新建m ...
- 【NPDP笔记】第四章 文化组织与团队
此为临时链接,仅用于预览,将在短期内失效.关闭 [NPDP笔记]第四章 文化组织与团队 小康 小康哥的产品之路 9月6日 4.1 文化和氛围对创新的重要性 文化:信念,价值观,假设,与期望 氛围:直接 ...
- [ARM-LInux开发]linux设备驱动makefile入门解析
以下内容仅作参考,能力有限,如有错误还请纠正.对于一个普通的linux设备驱动模块,以下是一个经典的makefile代码,使用下面这个makefile可以完成大部分驱动的编译,使用时只需要修改一下要编 ...
- (CSDN迁移) jFinal无法启动_JFinalDemoGenerator问题解决办法
Eclipse -> 项目右键 -> Build Path -> Config Build Path -> Source -> Add Folder, 将a_little ...
- (CSDN迁移) html中的rel属性
在页面上若需要同时存在多个页面,就通过一个button开启一个页面时,就需要指定不同的 rel="relName". 否则新页面就会将就原有的页面给覆盖掉.
- csu 1978: LXX的图论题
1978: LXX的图论题 Submit Page Summary Time Limit: 1 Sec Memory Limit: 128 Mb Submitted: 71 ...
- Appium 中使用 pressKeyCode 方法不起作用也没有报错
为了使 appium 支持 Android 系统 7 及以上,automationName 使用了 UIAutomator2.但是发现,使用androidDriver.pressKeyCode(And ...
- 卓金武《MATLAB在数学建模中的应用》 第2版
内容介绍 本书的作者都具有实际的数学建模参赛经历和竞赛指导经验.书中内容完全是根据数学建模竞赛的需要而编排的,涵盖了绝大部分数学建模问题的matlab求解方法.本书内容分上下两篇.上篇介绍数学建模中常 ...
- 【转帖】为什么有了Compose和Swarm,还会有Kubernetes的出现?
为什么有了Compose和Swarm,还会有Kubernetes的出现? https://www.cnblogs.com/chenqionghe/p/11474486.html 图非常好 一.k8s设 ...