Python标准库学习--->1、内置函数(1-14个)_eihouwang的博客-程序员信息网

技术标签: python标准库  python  编程语言  

一、内置函数汇总
python标准库内置共计69个(如果我没弄错的话)。

二、详细说明
1、abs(x):返回一个数的绝对值,参数x可以是整数(如3、-3等),也可以是浮点数(如3.0,-3.5等)以及任何实现了__abs__()的对象,如果x 是一个复数(如3+4j)则返回的模(我测试3+4j的模返回5.0)

>>> abs(5)
5
>>> abs(3.4)
3.4
>>> abs(-4)
4
>>> abs(-4.11)
4.11
>>> abs(-9.2222222222222222222222222)
9.222222222222221
>>> abs(3+4j)
5.0
>>> abs(1+1j)
1.4142135623730951

2、all(iterable):返回bool值,首先参数必须是可迭代对象(如果不是会报错),如果iterable的所有元素均为真值或可迭代对象为空时,返回True,否则返回False

>>> all([])   #参数为列表无元素也就是可迭代对象为空,返回True
True
>>> all((1,2,3)) #可迭代对象所有元素均为真值,返回True
True
>>> all((1,2,3,0))  #可迭代对象中有非真值,返回False
False
>>> 

3、any(iterable):返回bool值。如果可迭代对象中的只要有一个元素为真值,则返回True,否则返回False。如果可迭代对象为空也返回False。

>>> any([])  #可迭代对象为空,返回False
False
>>> any([0,0,0]) #可迭代对象的元素没有一个是真值,返回False
False
>>> any([0,0,0,1,0])  #可迭代对象元素中出现了真值的元素,返回True
True
>>> 

4、ascii(object):返回一个对象可打印的字符串。

>>> ascii(5.0)
'5.0'
>>> ascii('a')
"'a'"
>>> ascii("a")
"'a'"
>>> ascii("中国")
"'\\u4e2d\\u56fd'"
>>> ascii('k k k ')
"'k k k '"

5、bin(x):将一个整数转变为一个前缀为“0b”的二进制字符串。

>>> bin(3)
'0b11'
>>> bin(-5)
'-0b101'

6、bool([x]):返回True或False。x 使用标准的 真值测试过程 来转换。如果 x 是假的或者被省略,返回 False;其他情况返回 True。

>>> bool(1)  #非零数值,返回True
True
>>> bool(5)  #非零数值,返回True
True
>>> bool(0.4) #非零数值,返回True
True
>>> bool(-2) #非零数值,返回True
True
>>> bool(0) #零值,返回False
False
>>> bool(None) #None,返回False
False
>>> bool(())  #空值,返回False
False
>>> bool([])  #空值,返回False
False
>>> bool('a')  #非空值,返回True
True

7、breakpoint(*args,**kws):此函数会在调用时将你陷入调试器中。(没太明白)

8、class bytearray([source[, encoding[, errors]]]):返回一个新的bytes数组。 bytearray 类是一个可变序列,包含范围为 0 <= x < 256 的整数。

可选形参 source 可以用不同的方式来初始化数组:
1–>如果是一个 string,您必须提供 encoding 参数(errors 参数仍是可选的);bytearray() 会使用 str.encode() 方法来将 string 转变成 bytes。

2–>如果是一个 integer,会初始化大小为该数字的数组,并使用 null 字节填充。

3–>如果是一个遵循 缓冲区接口 的对象,该对象的只读缓冲区将被用来初始化字节数组。

4–>如果是一个 iterable 可迭代对象,它的元素的范围必须是 0 <= x < 256 的整数,它会被用作数组的初始内容。

如果没有实参,则创建大小为 0 的数组。

bytearray(4) #参数为整数,会初始化大小为该数字的数组,并使用 null 字节填充。
bytearray(b'\x00\x00\x00\x00')
>>> bytearray([1,2,3,4])
bytearray(b'\x01\x02\x03\x04')
>>> bytearray([1,35,15])
bytearray(b'\x01#\x0f')
>>> bytearray([125,255,7,33])
bytearray(b'}\xff\x07!')
>>> bytearray("hello world") #参数是字符串时,encoding必须提供否则报错
Traceback (most recent call last):
  File "<pyshell#17>", line 1, in <module>
    bytearray("hello world")
TypeError: string argument without an encoding
>>> bytearray("hello world",encoding="utf-8") #参数时字符串并提供encoding 正常输出
bytearray(b'hello world')

9、class bytes([source[, encoding[, errors]]]):返回一个新的“bytes”对象, 是一个不可变序列,包含范围为 0 <= x < 256 的整数。bytes 是 bytearray 的不可变版本 - 它有其中不改变序列的方法和相同的索引、切片操作。

10、callable(object):如果参数 object 是可调用的就返回 True,否则返回 False。 如果返回 True,调用仍可能失败,但如果返回 False,则调用 object 将肯定不会成功。 请注意类是可调用的(调用类将返回一个新的实例);如果实例所属的类有 call() 则它就是可调用的。

11、chr(i):返回 Unicode 码位为整数 i 的字符的字符串格式。是 ord() 的逆函数。

>>> chr(98)
'b'
>>> chr(254)
'þ'
>>> chr(3)
'\x03'
>>> chr(63)
'?'
>>> chr(10000)
'✐'

12、@classmethod:把一个方法封装成一个类方法,一个类方法把类自己作为第一个实参。请用以下习惯来声明类方法:

class C:
    @classmethod
    def f(cls, arg1, arg2, ...): ...

@classmethod 这样的形式称为函数的 decorator – 详情参阅 函数定义。

类方法的调用可以在类上进行 (例如 C.f()) 也可以在实例上进行 (例如 C().f())。 其所属类以外的类实例会被忽略。 如果类方法在其所属类的派生类上调用,则该派生类对象会被作为隐含的第一个参数被传入。(理解的还是不太深刻O(∩_∩)O~

>>> class C:
	@classmethod
	def f(cls,str):
		print(str)

		
>>> C.f('hello')  #可以直接在类上直接调类方法
hello
>>> a=C()
>>> a.f('hello world')  #也可以实例化后调类方法
hello world

13、 compile(source, filename, mode, flags=0, dont_inherit=False, optimize=-1):将 source 编译成代码或 AST 对象。代码对象可以被 exec() 或 eval() 执行。
source:可以是常规的字符串、字节字符串,或者 AST 对象。
filename:代码读取的文件名;如果代码不需要从文件中读取,可以传入一些可辨识的值(经常会使用 ‘’)。
mode:指定了编译代码必须用的模式。如果 source 是语句序列,可以是 ‘exec’;如果是单一表达式,可以是 ‘eval’;如果是单个交互式语句,可以是 ‘single’。(在最后一种情况下,如果表达式执行结果不是 None 将会被打印出来。)

>>> o=compile('print("123")','str','single')
>>> exec(o)
123
>>> 

14、 class complex([real[, imag]]):返回值为 real + imag*1j 的复数,或将字符串或数字转换为复数。如果第一个形参是字符串,则它被解释为一个复数,并且函数调用时必须没有第二个形参。第二个形参不能是字符串。每个实参都可以是任意的数值类型(包括复数)。如果省略了 imag,则默认值为零,构造函数会像 int 和 float 一样进行数值转换。如果两个实参都省略,则返回 0j。

>>> complex('1',3)  #第一个参数是字符串时候,不能出现第二个参数,否则报错
Traceback (most recent call last):
  File "<pyshell#6>", line 1, in <module>
    complex('1',3)
TypeError: complex() can't take second arg if first is a string
>>> complex('1+2j') 
(1+2j)
>>> complex(1,2)
(1+2j)
>>> complex(3,3+4j) #返回3+(3+4j)j=3+3j+4j*j=3+3j-4=-1+3j
(-1+3j)
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/eihouwang/article/details/113001235

智能推荐

成功抗“疫”背后的IT科技_大数网的博客-程序员信息网

2020年已然过半,但新冠疫情仍在肆虐,防疫日常化成为常态。相比于国外疫情的水深火热,国内防疫可谓成果卓著,全国各大医院成为抗疫的主力军。这其中,地坛医院便是北京抗“疫”的主战场,负责收...

MySQL 为什么需要 redo log?__江南一点雨的博客-程序员信息网_为什么需要redolog

文章目录1. 谁的 redo log2. buffer pool3. change buffer4. redo log 的诞生4.1 redo log buffer4.2 redo log 落盘今天想和大家聊一聊 MySQL 中的 redo log,其实最早我是想聊两阶段提交的,后来想想可能有小伙伴还不了解 binlog,所以就先整了一篇 binlog:手把手教你玩 MySQL 删库不跑路,直接把 MySQL 的 binlog 玩溜!MySQL删库不跑路(视频版)binlog 大家懂了之后,接下

dsu on tree备忘_新笑雨的博客-程序员信息网

dsu on tree是一种处理树上不带修改,询问子树有关的信息的问题的思想,可以被称为静态链分治(这个称呼比较符合这个算法的特点)算法实现对于一个节点:先递归处理轻儿子。然后递归处理重儿子。计算当前节点的答案,这里需要遍历所有轻儿子(本来需要遍历整个子树,因为重儿子的影响我们没有清除,所以不用遍历重儿子的子树)如果该节点本身是轻儿子,那么就需要清除该节点内所有子树的影响。大概模板:...

ARP中间人攻击_Marchccc的博客-程序员信息网

攻击发起端:同网段kali Linux攻击目标:同网段Windows7已知攻击目标ipv4地址为192.168.1.224在攻击发起端执行:arpspoof -i eth0 -t 192.168.1.224 127.0.0.1再查看攻击目标,已经无法连接网络。...

Ubuntu下安装NCCL【运行百度的paddle多卡训练需要依赖NCCL】_u013250861的博客-程序员信息网_ubuntu 安装nccl

运行百度的paddle多卡训练需要依赖nccl,所以需要安装nccl,本文提供压缩包的nccl安装方式,亲测可用我这里安装的cuda是cuda-11.0然后进入/usr/local/cuda-11.0/lib64可以看到需要删除原有文件,然后重新生成libnccl.so 和 libnccl.so.2这两个文件.这里的libnccl.so.2.3.5 要根据自己的来决定最后在ls可以看到颜色变了,说明OK参考资料:安装nccl教程Ubuntu16.04安装NCCL........

opencv形态学应用之区域填充_wxplol的博客-程序员信息网_形态学区域填充

在进行形态学填充之前必须了解一点:当我们的边界是4连通边界时,我们使用的结构元素为8连通;当我们的连通边界为8连通时,我们需要用4连通的结构元素。算法:初始化:Bo=种子点(这里采用opencv鼠标操作来手动选取种子点)循环:(用3X3十字结构元素对对种子点进行膨胀,然后不断的用图像的补集对膨胀的结果进行约束)结束条件:膨胀结果不发生变化#include#in

随便推点

form上传表单enctype属性编码值_俟河之清的博客-程序员信息网

form表单在你不写enctype属性时,也默认为其添加了enctype属性值,默认值是enctype="application/x- www-form-urlencoded".这个属性管理的是表单的MIME编码,共有三个值可选:  ①application/x-www-form-urlencoded (默认值)  ②multipart/form-data  ③text/pla...

Java 理论课阶段测试(20%)_Bland New的博客-程序员信息网

1.定义一个描述旅客的类,输入旅客的姓名和年龄,根据年龄输出票价等信息。import java.util.Scanner;public class Main { public static void main(String[] args) { // TODO Auto-generated method stub Scanner in=new Scanner(System.in); System.out.println("please input name");

【论文笔记】QBSUM: 基于查找的文本摘要数据集_啦啦伟vv的博客-程序员信息网_文本摘要数据集

QBSUM: a Large-Scale Query-Based Document Summarization Dataset fromReal-world Applications基于查询的文档摘要旨在提取或生成直接回答或与搜索查询相关的文档的摘要。这是一项重要的技术,可以有益于各种应用程序,例如搜索引擎、文档级机器阅读理解和聊天机器人。目前,为基于查询的摘要设计的数据集数量不足,现有数据集的规模和质量也有限。此外,据我们所知,没有公开可用的基于中文查询的文档摘要数据集。在本文中,我们提出了 QBSUM

视频关键帧提取_天地一扁舟的博客-程序员信息网

引子:最近在帮老师做项目,涉及到视频和图形图像处理这方面的内容。我觉得作为一个程序猿,不仅仅着眼于小的细节,对自己整体方向的把握也需要一个比较好的规划,我们的目标是:当一个好的程序猿。项目整体的架构是:ubuntu+python+django+apache+html+mongodb。当时卡在视频关键帧提取这一块好长时间,也没人指导我自己该怎么做,谁让我们程序猿自学能力要强呢?网

人在校园的日子 _wjp16351的博客-程序员信息网

有次期考,考完某门课程后回到宿舍,大伙都兴高采烈的在交流答案,这时 老大冒出一句:完拉~!我小纸条夹在试卷里面交上去了!!众人皆倒。     结果老大重修……     这是俺大三时的真实故事。     当年大学刚报到的时候,宿舍有一哥们A毛发特旺盛,留络腮胡子。等我们看 了一周看习惯了,辅导员看不下去强令他刮了。当天他回去之后坐在床上正照镜子感 叹,另外一哥们B回来盯着看了半天,忽然冲出去,正在我

Python进阶之atexit模块使用_公众号菜鸟童靴的博客-程序员信息网_atexit python

微信搜索“菜鸟童靴”,选择“关注公众号”我们一起开启Python进阶之旅!如何让Python在退出时强制运行一段代码,说起这个需求,我们就不得不说Python atexit模块了:退出处理器 atexit 模块定义了清理函数的注册和反注册函数. 被注册的函数会在解释器正常终止时执行. atexit 会按照注册顺序的逆序执行; 如果你注册了 A, B 和 C, 那么在解释器终止时会依序执行 C, B, A.看完这段介绍,有点类似栈的原理,后进先出1、举个例子说明...

推荐文章

热门文章

相关标签