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入门篇-内建函数的更多相关文章

  1. Python入门篇-高阶函数

    Python入门篇-高阶函数 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.高级函数  1>.First Class Object 函数在Python中是一等公民 函数也 ...

  2. Python入门篇-函数、参数及参数解构

    Python入门篇-函数.参数及参数解构 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.函数概述 1>.函数的作用即分类 函数 数学定义:y=f(x) ,y是x的函数,x ...

  3. Python入门篇-面向对象概述

    Python入门篇-面向对象概述 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.语言的分类 面向机器 抽象成机器指令,机器容易理解 代表:汇编语言 面向过程 做一件事情,排出个 ...

  4. Python入门篇-StringIO和BytesIO

    Python入门篇-StringIO和BytesIO 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.StringIO(用于文本处理) 1>.使用案例 #!/usr/bin ...

  5. Python入门篇-文件操作

    Python入门篇-文件操作 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.文件IO常用操作 open:打开 read:读取 write:写入 close:关闭 readlin ...

  6. Python入门篇-functools

    Python入门篇-functools 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.reduce方法 reduce方法,顾名思义就是减少 reduce(function,se ...

  7. Python入门篇-类型注解

    Python入门篇-类型注解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.函数定义的弊端 1>.动态语言很灵活,但是这种特性也是弊端 Python是动态语言,变量随时可 ...

  8. Python入门篇-数据结构堆排序Heap Sort

    Python入门篇-数据结构堆排序Heap Sort 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.堆Heap 堆是一个完全二叉树 每个非叶子结点都要大于或者等于其左右孩子结点 ...

  9. Python入门篇-数据结构树(tree)的遍历

    Python入门篇-数据结构树(tree)的遍历 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.遍历 迭代所有元素一遍. 二.树的遍历 对树中所有元素不重复地访问一遍,也称作扫 ...

随机推荐

  1. (转)搭建Elasticsearch和kibana环境

    搭建Elasticsearch和kibana环境 作者:IT云清 原文:https://blog.csdn.net/weixin_39800144/article/details/81162002 1 ...

  2. 实现CI/CDk8s高可用集群搭建总结以及部署API到k8s

    实现CI/CD(Centos7.2)系列二:k8s高可用集群搭建总结以及部署API到k8s 前言:本系列博客又更新了,是博主研究很长时间,亲自动手实践过后的心得,k8s集群是购买了5台阿里云服务器部署 ...

  3. zabbix 后台数据库清除数据

    alerts 表 problem 表 escalations 表 events 表  event_recovery表 对 这些表进行清除 防止不停发送邮件 -- alerts table rebuil ...

  4. 使用Mysql中的concat函数或正则匹配来快速批量生成用于执行的sql语句

    背景介绍 今天需要给一张表里面补数据,需要按照行的维度进行update,如果是个别数据那么直接写update语句就可以了,但是场景要求的是将整表的数据进行update,要实现这个需求就不能只靠蛮力了, ...

  5. PHP设计模式 - 命令模式

    命令模式:在软件系统中,“行为请求者”与“行为实现者”通常呈现一种“紧耦合”.但在某些场合,比如要对行为进行“记录.撤销/重做.事务”等处理,这种无法抵御变化的紧耦合是不合适的.在这种情况下,如何将“ ...

  6. static binding/dynamic binding

    static binding/dynamic binding class Person { private void who() { System.out.println("Inside p ...

  7. Node.js 开发指南-读书笔记

    1. Node.js 使用了单 线程.非阻塞的事件编程模式 Node.js 最大的特点就是采用异步式 I/O 与事件驱动的架构设计.对于高并发的解决方 案,传统的架构是多线程模型,也就是为每个业务逻辑 ...

  8. jmeter Dashboard Report

    说明:详情参考:https://jmeter.apache.org/usermanual/generating-dashboard.html JMeter3.0以后引入了Dashboard Repor ...

  9. 一个 frameset 框架

    <frameset border="0" framespacing="0" rows="45,*" frameborder=" ...

  10. Python之路【第二十四篇】:数据库索引

    数据库索引 一.索引简介 索引在mysql中也叫做"键",是存储引擎用于快速找到记录的一种数据结构.索引对于良好的性能非常关键,尤其是当表中的数据量越来越大时,索引对于性能的影响愈 ...