首页 > 编程语言 > 详细

Python3 内置函数(一)

时间:2021-07-16 15:27:52      阅读:20      评论:0      收藏:0      [点我收藏+]

前言

最近在官网发现了Python文档,我以前居然都不知道,汗!!!分享下链接:链接。(还可选择中英文哦)

内置函数

abs(x):返回一个数的绝对值

>>> abs(2.345)
2.345
>>> abs(-2.345)
2.345

all(iterable):如果 iterable 的所有元素均为真值(或可迭代对象为空)则返回 True 。

红色部分很重要如:

>>> all(())
True
>>> all([])
True
>>> all({})
True

在元素不为0、空、None、False外,都为True

>>> all([a, b, ‘‘, d])   # 列表list,存在一个为空的元素
False
>>> all([0, 1,2, 3])          # 列表list,存在一个为0的元素
False
>>> all([1,2,3,None])    
False
>>> all([1,2,3,False])
False

any(iterable):函数用于判断给定的可迭代参数 iterable 是否全部为 False

这里注意全部为False才返回False,也就是0、空、None、False。而all是有一个就返回False

>>> any([a, b, ‘‘, d])   # 列表list,存在一个为空的元素
True
>>> any([0, ‘‘, False])        # 列表list,元素全为0,‘‘,false
False
>>> any([]) # 空列表
False
>>> any(()) # 空元组
False

ascii(object):返回一个包含对象的可打印表示形式的字符串,但是使用 \x\u 和 \U 对 repr()返回的字符串中非 ASCII 编码的字符进行转义。

>>> ascii(abcdefg)
"‘abcdefg‘"
>>> ascii(abcdef0)
"‘abcdef0‘"

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

>>> bin(3)
0b11
>>> bin(4)
0b100

class bool([x]):返回一个布尔值,True或者False。

bool类是int的子类,也使用0或1表示False和True

>>> bool()
False
>>> bool(0)
False
>>> bool(1)
True

breakpoint(*args, **kws):默认进入pdb模式

>>> breakpoint()
--Return--
> <stdin>(1)<module>()->None
(Pdb)

breakpoint会调用sys.breakpointhook(),而sys.breakpointhook()会调用pdb.set_trace(),从而实现进入调试器,值得注意的是pdb.set_trace()并没有参数,

而如果breakpoint()是可带参数的,这就比较坑了。

def b():
    breakpoint(pdb)
结果:
    breakpoint(pdb)
TypeError: set_trace() takes 0 positional arguments but 1 was given

如果需传入参数需修改Python环境变量PYTHONBREAKPOINT,使用Python -J设置,不过Python并不建议这样做。所有我们只需进入pdb就可以了。

class bytearray([source[, ebcoding[,errors]]]):按规则返回一个新的bytes数组

包含三个可选参数,source、encoding、errors

如果没有跟参数,返回一个大小为0的bytes数组,

source参数:

  1. 如果是一个 string,您必须提供 encoding 参数(errors 参数仍是可选的),bytearray会使用str.encode()方法将string转变为bytes
  2. 如果是一个 integer,会初始化大小为该数字的数组,并使用 null 字节填充。
  3. 如果是一个遵循 缓冲区接口的对象,该对象的只读缓冲区将被用来初始化字节数组。
  4. 如果是一个 iterable 可迭代对象,它的元素的范围必须是 <= 256 的整数,它会被用作数组的初始内容
>>> bytearray()
bytearray(b‘‘)
>>> bytearray(a)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: string argument without an encoding
>>> bytearray(a, encoding=utf-8)
bytearray(ba)
>>> bytearray(2)
bytearray(b\x00\x00)
>>> bytearray([1,2,3])
bytearray(b\x01\x02\x03)
>>> bytearray(b‘Hi!‘)
bytearray(b‘Hi!‘)

class bytes([source[, encoding[, errors]]]):返回一个新的“bytes”对象

是一个不可变序列,包含范围为 <= 256 的,和bytearray()用法相同,不过返回值是b字符串

>>> bytes(9)
b\x00\x00\x00\x00\x00\x00\x00\x00\x00

callable(object):如果参数 object 是可调用的就返回 Ture,否则返回 False

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

>>> callable(1)
False
>>> def a():
...     pass
...
>>> callable(a)
True

chr(i):返回 Unicode 码位为整数 i 的字符的字符串格式

  • i -- 可以是 10 进制也可以是 16 进制的形式的数字,数字范围为 0 到 1,114,111 (16 进制为0x10FFFF)。
>>> chr(2)
\x02
>>> chr(96)
`
>>> chr(99)
c

@classmethod:把一个方法封装成类方法

class C:
    @classmethod
    def b(cls):
        print(1)

compile(source,filename,mode,flags=0,dont_inherit=False,optimize=-1):将source编译成代码或AST对象

代码对象可以被exec() 或eval()执行。source 可以是常规的字符串、字节字符串,或者 AST 对象。

  • source -- 字符串或者AST(Abstract Syntax Trees)对象。。
  • filename -- 代码文件名称,如果不是从文件读取代码则传递一些可辨认的值。
  • mode -- 指定编译代码的种类。可以指定为 exec, eval, single。
  • flags -- 变量作用域,局部命名空间,如果被提供,可以是任何映射对象。。
  • flags和dont_inherit是用来控制编译源码时的标志

filename 实参需要是代码读取的文件名;如果代码不需要从文件中读取,可以传入一些可辨识的值(经常会使用 ‘<string>‘)。

mode 实参指定了编译代码必须用的模式。如果 source 是语句序列,可以是 ‘exec‘;如果是单一表达式,可以是 ‘eval‘;如果是单个交互式语句,可以是 ‘single‘。(在最后一种情况下,如果表达式执行结果不是 None 将会被打印出来。)

>>>str = "for i in range(0,10): print(i)" 
>>> c = compile(str,‘‘,exec)   # 编译为字节代码对象 
>>> c
<code object <module> at 0x10141e0b0, file "", line 1>
>>> exec(c)
0
1
2
3
4
5
6
7
8
9
>>> str = "3 * 4 + 5"
>>> a = compile(str,‘‘,eval)
>>> eval(a)
17

class complex([real[, imag]]):返回值为 real + imag*1j 的复数,或将字符串或数字转换为复数。

  • real -- int, long, float或字符串;
  • imag -- int, long, float;
>>> complex(2,3)
(2+3j)
>>> complex(4+6j)
(4+6j)

delattr(object,name):如果对象允许,该函数将删除指定的属性。

  • object -- 对象。
  • name -- 必须是对象的属性
class C:
    x = 0
    y = ‘‘
    z = None
    def test(self):
        pass

print(hasattr(C, x))
print(hasattr(C, y))
print(hasattr(C, z))
print(hasattr(C, test))
delattr(C, x)
delattr(C, y)
delattr(C, z)
delattr(C, test)
print(hasattr(C, x))
print(hasattr(C, y))
print(hasattr(C, z))
print(hasattr(C, test))

输出:

True
True
True
True
False
False
False
False

 


Python3 内置函数(一)

原文:https://www.cnblogs.com/half-way-programmer/p/15019668.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!