返回一个固定的集合,不允许添加or删除、修改集合
1 | >>> a = frozenset(range(10)) |
字符串格式化函数 str.format()
1 | >>> "{} {}".format("hello", "world") |
除了使用上面序号的方式,还可以用key的方式,如下
1 | >>> "{name} haha {age}".format(name='yhh', age=20) |
注意,传参为dict时,前面要加两个星号
数字格式化
1 | >>> "{:.2f}".format(3.1415926) |
用于过滤序列,过滤掉不符合条件的元素,返回一个迭代器对象,如果要转换为列表,可以使用 list() 来转换
1 | filter(function, iterable) |
实例如下
1 | >>> def f(s): |
执行储存在字符串或文件中的 Python 语句,相比于 eval,exec可以执行更复杂的 Python 代码
举例如下:
1 | >>> exec('print("Hello World")') |
进阶
exec除了接收上面的python语句块之外,还可以接收表示全局和局部命名空间的参数
如
1 | >>> x = 10 |
顾名思义,这个使用来删除属性的
delattr(x, 'foobar')
相等于del x.foobar
举例说明
1 | class A: |
不太知道什么场景会用这个
主要用来执行字符串表达式,和 compile
有一些区别,后者功能更加强大,可以编译字符串格式的python代码,而eval更多的是基础运算
举例如下:
1 | >>> a = 10 |
请注意,eval对表达式有限定,如果需要更丰富的支持,可以考虑exec
数学中的复数,通过complex
可以简单的生成
1 | >>> complex(1, 2) |
注意,字符串转换时,加号左右两边不能有空格
将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标
一个常见的使用case
1 | >>> seq = ['one', 'two', 'three'] |
接收两个数字类型(非复数)参数,返回一个包含商和余数的元组(a // b, a % b)
1 | >>> divmod(10, 3) |
不带参数时,返回当前范围内的变量、方法和定义的类型列表;带参数时,返回参数的属性、方法列表
语法
1 | dir([object]) |
实例
1 | >>> class A: |
dict用于创建字典
1 | >>> dict() |
请注意,传参为可迭代的序列的场景
将一个字符串编译为字节代码
这个比较厉害了,传入一段字符串,把它编译成可执行的脚本
语法
1 | compile(source, filename, mode[, flags[, dont_inherit]]) |
source
– 字符串或者AST(Abstract Syntax Trees)对象。。filename
– 代码文件名称,如果不是从文件读取代码则传递一些可辨认的值。mode
– 指定编译代码的种类。可以指定为 exec
, eval
, single
。flags
– 变量作用域,局部命名空间,如果被提供,可以是任何映射对象。。flags
和dont_inherit
是用来控制编译源码时的标志举例说明
1 | >>> str = "for i in range(0,10): print(i)" |
修饰符对应的函数不需要实例化,不需要self
参数,第一个参数需要是表示自身类的cls
参数,可以来调用类的属性,类的方法,实例化对象
举例如下:
1 | >>> class A: |
chr()
参数为整数,返回一个对应的字符
1 | >>> chr(10) |
请注意传参可以为10进制,也可以为16进制,取值为 [0,114111]/[0,0x10FFFF]
)
检查一个对象是否是可调用,对于函数、方法、lambda 函式、 类以及实现了 __call__
方法的类实例, 它都返回 True
1 | >>> callable(10) |
返回一个新的 bytes 对象,该对象是一个 0 <= x < 256 区间内的整数不可变序列。它是 bytearray 的不可变版本。
基本用法和 bytearray 相似,唯一区别是返回的数组是不可变的
举例如下
1 | >>> bytes([1,2,3]) |
请注意,数组内容不可变,强制赋值时抛异常
返回一个新字节数组。这个数组里的元素是可变的,并且每个元素的值范围: 0 <= x < 256
语法:
1 | class bytearray([source[, encoding[, errors]]]) |
参数说明:
实例
1 | >>> bytearray('hello', 'utf-8') |
bool()
函数用于将给定参数转换为布尔类型,如果没有参数,返回 False。
bool 是 int 的子类。
1 | >>> bool('True') |
bin()
返回一个整数 int 或者长整数 long int 的二进制表示。
1 | >>> bin(10) |
Update your browser to view this website correctly. Update my browser now