1. chr() 函数
描述:
将十进制(十六进制)数转化为基础字符
chr() 用一个整数作参数,返回一个对应的字符
语法:
chr(i)
参数:
i -- 可以是10进制也可以是16进制的形式的数字
返回值:
返回值是当前整数对应的 Unicode 字符。
实例:
以下展示了使用 chr() 方法的实例:
>>>print chr(0x30), chr(0x31), chr(0x61) # 十六进制
0 1 a
>>> print chr(48), chr(49), chr(97) # 十进制
0 1 a
2. ord() 函数
描述:
将基础字符串转化成ASCII或unicode编码对应的整数
ord() 函数是 chr() 函数(对于8位的ASCII字符串)或 unichr() 函数(对于Unicode对象)的配对函数,它以一个字符(长度为1的字符串)作为参数,返回对应的 ASCII 数值,或者 Unicode 数值,如果所给的 Unicode 字符超出了你的 Python 定义范围,则会引发一个 TypeError 的异常。
语法:
ord(c)
参数:
c -- 字符
返回值:
返回值是对应的十进制整数。
实例:
以下展示了使用 ord() 方法的实例:
>>>ord('a')
97
>>> ord('b')
98
>>> ord('c')
99
3. del函数与垃圾回收机制(需要在整理垃圾回收机制)
描述:
Python中的垃圾回收算法是采用引用计数, 当一个对象的引用计数为0时, Python的垃圾回收机制就会将对象回收。
a = "larry"
b = a
larry这个字符串对象, 在第一行被贴了a标签后, 引用计数为1, 之后在第二行, 由贴上了b标签, 此时, 该字符串对象的引用计数为2
del a
注意: 在Python语言中, del语句操作某个对象的时候, 并不是直接将该对象在内存中删除, 而是将该对象的引用计数-1。
从以上示例中可以看出, larry这个字符串对象在第一行被贴上了a标签, 此时字符串对象的引用计数为1, 接着第二行又被贴上了b标签, 此时该字符串对象的引用计数为2, 在第三行中, del语言删除了a变量(标签), 在后续的print中可以看出, 内存中实际的字符串对象并没有被删除, del语言只是删除了一个变量对该字符串对象的引用, 所以对于larry这个字符串对象来说, 效果只是引用计数-1
魔法函数之del
类中的del魔法函数, 支持我们自定义清理对象的逻辑, 当Python解释器使用del语言删除类的对象的时候, 会自动调用类中的del函数, 我们可以对其进行重载
>>> class Ref:
...
... def __init__(self, name):
... self.name = name
...
... def __del__(self):
... print("删除对象")
... del self.name
...
>>>
>>> r = Ref(name="larry")
>>> print(r.name)
larry
>>>
>>> del r
删除对象
>>>
>>> print(r.name)
Traceback (most recent call last):
File "<input>", line 1, in <module>
print(r.name)
NameError: name 'r' is not defined
我们可以通过重载del魔法函数, 自己灵活控制在del 对象的时候执行哪些善后操作
4. sorted函数
描述:
sorted() 函数对所有可迭代的对象进行排序操作。
sort 与 sorted 区别:
sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作。
list 的 sort 方法返回的是对已经存在的列表进行操作,无返回值。
而内建函数 sorted 方法返回的是一个新的 list,而不是在原来的基础上进行的操作。
语法:
sorted(iterable, cmp=None, key=None, reverse=False)
参数说明:
iterable -- 可迭代对象。
cmp -- 比较的函数,这个具有两个参数,参数的值都是从可迭代对象中取出,此函数必须遵守的规则为,大于则返回1,小于则返回-1,等于则返回0。
key -- 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
reverse -- 排序规则,reverse = True 降序 , reverse = False 升序(默认)。
返回值:
返回重新排序的列表。
实例:
以下实例展示了 sorted 的使用方法:
1、对列表排序,返回新的的列表对象不会改变原列表
>>>a = [5,7,6,3,4,1,2]
>>> b = sorted(a) # 保留原列表
>>> a
[5, 7, 6, 3, 4, 1, 2]
>>> b
[1, 2, 3, 4, 5, 6, 7]
2、可以设定排序方式,默认从小到大reverse = False,设定从大到小reverse = True
>>> a = [5,7,6,3,4,1,2]
>>> sorted(a,reverse=False)
[1, 2, 3, 4, 5, 6, 7]
>>> sorted(a,reverse=True)
[7, 6, 5, 4, 3, 2, 1]
3、根据自定义规则来排序,使用参数:key,使用key,默认搭配lambda函数
(1)根据元素长度排序
>>> chars = ['a', 'is', 'boy', 'bruce', 'handsome']
>>> sorted(chars,key=lambda x:len(x))
['a', 'is', 'boy', 'bruce', 'handsome']
>>> #特殊写法
>>> sorted(chars,key=len)
['a', 'is', 'boy', 'bruce', 'handsome']
(2)对元组构成的列表进行排序
>>> tuple_list = [('A', 1,5), ('B', 3,2), ('C', 2,6)]
>>> sorted(tuple_list,key=lambda x:x[0])
[('A', 1, 5), ('B', 3, 2), ('C', 2, 6)]
>>> sorted(tuple_list,key=lambda x:x[1])
[('A', 1, 5), ('C', 2, 6), ('B', 3, 2)]
>>> sorted(tuple_list,key=lambda x:x[2])
[('B', 3, 2), ('A', 1, 5), ('C', 2, 6)]
(3)根据自定义规则排序
>>> list_num = [1,-2,-3,4,-5]
>>> sorted(list_num)
[-5, -3, -2, 1, 4]
>>> sorted(list_num,key=lambda x:x**2)
[1, -2, -3, 4, -5]
5. round() 返回浮点数x的四舍五入值
描述:
round() 方法返回浮点数x的四舍五入值。
语法:
round( x [, n] )
参数:
x -- 数值表达式。
n -- 数值表达式。
返回值:
返回浮点数x的四舍五入值。
实例:
以下展示了使用 round() 方法的实例:
>>> round(80.23456, 2)
80.23
>>> round(80.23456, 3)
80.235
>>>
6. join()方法
描述:
join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串
语法:
str.join(sequence)
参数:
str--连接字符串
sequence -- 要连接的元素序列
返回值:
返回通过指定字符连接序列中元素后生成的新字符串
实例:
以下实例展示了join()的使用方法:
>>> str = "_"
>>> seq = ("a","b","c")
>>> str.join(seq)
'a_b_c'
7. enumerate() 函数
描述
该函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。
语法
enumerate(sequence, [start=0])
参数
sequence -- 一个序列、迭代器或其他支持迭代对象。
start -- 下标起始位置。
返回值
返回 enumerate(枚举) 对象。
实例
以下展示了使用 enumerate() 方法的实例:
>>> seasons = ['Spring', 'Summer', 'Fall', 'Winter']
>>> list(enumerate(seasons))
[(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]
>>> list(enumerate(seasons,2)) #下标索引从2开始
[(2, 'Spring'), (3, 'Summer'), (4, 'Fall'), (5, 'Winter')]
>>>
普通的 for 循环
>>> seq = ['one', 'two', 'three']
>>> for element in enumerate(seq):
... print(element[0],element[1])
...
0 one
1 two
2 three
for 循环使用 enumerate
>>> seq = ['one', 'two', 'three']
>>> for i,element in enumerate(seq):
... print(i,element)
...
0 one
1 two
2 three
8. evel()函数
描述
eval() 函数用来执行一个字符串表达式,并返回表达式的值
eval() 只能执行有返回值的方法
语法
eval(expression[, globals[, locals]])
参数
expression -- 表达式。
globals -- 变量作用域,全局命名空间,如果被提供,则必须是一个字典对象
locals -- 变量作用域,局部命名空间,如果被提供,可以是任何映射对象
返回值
返回表达式计算结果
实例
以下展示了使用 eval() 方法的实例:
>>> x = 7
>>> eval("3*x")
21
>>> eval("pow(2,2)")
4
9. exec() 函数
描述
exec 执行储存在字符串或文件中的Python语句,相比于 eval,exec可以执行更复杂的 Python 代码。
语法
exec obj
参数
obj -- 要执行的表达式。
返回值
exec 返回值永远为 None。
实例
以下展示了使用 exec 的实例:
>>> exec("print('runoob.com')")
runoob.com
>>> exec("""for i in range(5):print("iter time: %d"%i)""")
iter time: 0
iter time: 1
iter time: 2
iter time: 3
iter time: 4
网友评论