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)的遍历 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.遍历 迭代所有元素一遍. 二.树的遍历 对树中所有元素不重复地访问一遍,也称作扫 ...
随机推荐
- Maya+VS编程入门初体验(HelloWorld)
Maya2018 + VS2017 环境搭建见 博客 1. 项目: VS 新建了一个 MEL Command类型的项目(MayaProject) 2. HelloWorld代码 #include< ...
- bootCDN引用的bootstrap前端框架套件和示例
这是bootCDN上引用的bootstrap前端框架套件,由多个框架组合而成,方便平时学习和测试使用.生产环境要仔细琢磨一下,不要用开发版,而要用生产版.bootCDN的地址是:https://www ...
- nginx使用与配置入门指南
这是一篇关于nginx使用与配置的入门指南,但不包括nginx的编译与安装.我假定你知晓如何安装nginx.对大多数Linux系统来说,nginx都已经存在于它们的软件包里,直接使用系统提供的软件管理 ...
- npx vs npm
npx vs npm npx 使用教程
- 使用清华源进行pip install
pypi 镜像使用帮助 pypi 镜像每 5 分钟同步一次. 临时使用 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple some-pac ...
- ACM- 编程练习网站--输入数据方法
#include "stdafx.h" #include <iostream> #include <string> #include <algorit ...
- linux vi/vim 编辑器学习总结
linux vi/vim 编辑器学习总结 很多时候我们开发人员不可避免的会涉及到项目部署,这个时候使用的就不是我们所熟知的 Windows 和 Mac OS 操作系统了,而是类 Unix 系统.项目部 ...
- 029 SSM综合练习05--数据后台管理系统--订单分页查询
1.PageHelper介绍 PageHelper是国内非常优秀的一款开源的mybatis分页插件,它支持基本主流与常用的数据库,例如mysql.oracle.mariaDB.DB2.SQLite.H ...
- c++11多线程记录2:线程管理
线程没有调用join和detach thread对象必须调用join或者detach,否则程序会终止 例如: void func() { std::cout << "hello, ...
- FORMAT 的用法
https://www.cnblogs.com/gaodu2003/archive/2008/12/22/1359927.html Format 格式指令具有以下的形式:"%" [ ...