美文网首页
章节4 内置函数

章节4 内置函数

作者: 圣堂刺客_x | 来源:发表于2019-10-09 21:39 被阅读0次

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

相关文章

网友评论

      本文标题:章节4 内置函数

      本文链接:https://www.haomeiwen.com/subject/jrzeuctx.html