掌握常用的内置函数及其用法。
数学类函数:abs、divmod、max、min、pow、round、sum。
类型转换函数:bool、int、float、str、ord、chr、bin、hex、tuple、list、dict、set、enumerate、range、object。
序列操作函数:all、any、filter、map、next、sorted。
对象操作函数:help、dir、type、ascii、format、vars。
交互操作函数:input、print。
文件操作函数:open。
一、数学运算函数
1、abs(x)
该函数返回数字的绝对值。
参数x为数值表达式。
函数返回x(数字)的绝对值。
示例程序:
bash
>>> abs(3.14)
3.14
>>> abs(-1 * 3.14)
3.14
2、divmod(a, b)
该函数把数字a除以数字b的商和余数封装成一个元组,并返回。
参数a为被除数,b为除数。
返回值是元组:(a//b, a%b),不是列表。
注意:余数的符号,有第二个参数决定。
示例程序:
bash
>>> divmod(10, 3) # 都是正数的情况
(3, 1)
>>> divmod(-10, 3) # 被除数为负数的情况
(-4, 2)
>>> divmod(10, -3) # 除数为负数的情况
(-4, -2)
>>> divmod(-10, -3) # 都是负数的情况
(3, -1)
二、类型转换函数
1、bool([x])
用于将给定的参数转换成布尔类型,如果没有参数,则返回False。
如果给定参数x,只要x的值为False、或空、或0、或None,返回都是False;否则返回值都是True。
示例程序:
bash
>>> bool() # 不给定参数时
False
>>> bool(False) # 参数为False时
False
>>> bool("False") # 参数为字符串"False"时
True
>>> bool(0) # 参数为数字0时
False
>>> bool("0") # 参数为字符串"0"时
True
>>>> bool("") # 参数为空时
False
>>> bool(None) # 参数为None时
False
2、ord(字符)
用于将给定单个字符转换成对应的ASCII码值,返回值为int类型。
注意,参数只能给一个字符,不能多给,也不能不给。
示例程序:
bash
>>> ord("0") # 查看字符串"0"的ASCII码值
48
>>> ord("中") # 查看汉字"中"的ASCII码值
20013
>>> ord("国") # 查看汉字"国"的ASCII码值
22269
部分ASCII码表如下:
3、chr(数值表达式)
用于将数值表达式转换成字符串(单个字符)。
可以将chr()函数看作ord()函数的逆运算。
示例程序:
bash
>>> chr(20013) # 查看数字20013对应的字符
"中"
>>> chr(22269) # 查看数字22269对应的字符
"国"
4、set([可迭代对象])
用于将给定的可迭代对象转换成一个无需不重复的元素集合;如果不给定参数,则创建一个空的元素集合。
集合可以执行交集、并集、差集计算。
示例程序:
bash
x = set("Hello") # 将字符串"Hello"转换成元素集合
y = set("Python") # 将字符串"Python"转成集合
>>> x, y # 查看x和y的值
({'e', 'o', 'l', 'H'}, {'P', 'h', 't', 'y', 'o', 'n'})
>>> x & y # 求两个集合的交集
{'o'}
>>> X | y # 求两个集合的并集
{'P', 'h', 'H', 'l', 't', 'y', 'o', 'n', 'e'}
>>> x - y # 求两个集合的差集
{'l', 'H', 'e'}
>>> y - x # 注意减数和被减数的位置不同,结果也不
{'P', 'h', 'y', 't', 'n'}
5、enumerate(可迭代对象)
用于将一个可遍历对象(如:列表、字符串、元素)组合成一个索引序列,也就是为每一个元素的外增加一个对应的索引,一般用于for循环。
示例程序:
bash
>>> lst = [12, 34, 56, 78, 90] # 初始化一个列表lst
>>> for v in lst: # 使用for循环遍历列表lst
>>> print(v) # 将每次迭代出来的元素打印出来
12
34
56
78
90
>>> # 先将列表lst转换成enumerate对象,再用for循环迭代
>>> for i, v in enumerate(lst):
>>> print(i, v) # 将每次迭代出来的索引和元素打印出来
0 12
1 34
2 56
3 78
4 90
6、object()
object类是Python中所有类的基类,如果定义一个类时没有指定继承哪个类,则默认继承object类。
object()函数无参数,返回一个新的无特征对象。
示例程序:
bash
>>> object()
<object object at 0x0000015273235400>
三、序列操作函数
1、all(可迭代对象)
用于判断给定的可迭代对象中的每个元素是否都为True,如果是则返回True,否则返回False。
元素值除了0、空、None、False之外,都算True。
注意:all()函数对空字符串、空列表、空元组的判断结果为True。因为all()函数判断的是可迭代对象里的元素是否为真,而不是可迭代对象本身。
因为没有元素,也就不会有假元素,所以返回真。
示例程序:
bash
>>> all([1, 2, 3, 4, 5]) # 列表中的数字都不为0
True
>>> all([1, 2, 0, 4, 5]) # 列表中存在一个数字0
False
>>> all(()) # 判断空元组
True
>>> all("") # 判断空字符串
True
>>> all([]) # 判断空列表
True
2、any(可迭代对象)
用于判断给定的可迭代对象中的元素,只要有一个元素为True,则返回True;否则返回False。
注意:any()函数对空字符串、空列表、空元组的判断结果为False。因为空的可迭代对象里面没有任何元素,所以不会有元素的值为True,所以返回False。
all()和any()的判断逻辑不同,所以对空对象的判断结果也不同。
示例程序:
bash
>>> any(['a', 'b', 'c', 'd']) # 所有元素都为True
True
>>> any(['False', '', '', '']) # 只有一个元素为True
True
>>> any([False, None, 0, '']) # 所有元素都为False
False
>>> any(()) # 判断空元组
False
>>> any("") # 判断空字符串
False
>>> any([]) # 判断空列表
False
3、filter(过滤函数,可迭代对象)
该函数用于过滤序列,将不符合条件的元素过滤掉,返回一个filter对象。可使用list()函数将迭代器对象转换成列表对象。
filter()函数接收两个参数,第一个是处理函数,第二个是要处理的可迭代对象。将可迭代对象传递给处理函数进行处理,最后将符合条件(判断结果为True)的元素放到新的可迭代对象中,实现过滤效果。
示例程序:过滤出列表中的所有奇数。
bash
# 定义一个函数,用于判断给定的参数是否为奇数
def ji_shu(n):
return n % 2 == 1
# 初始化一个原始列表
lst = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# 将处理函数ji_shu 和 待过滤对象lst传入filter函数
new_obj = filter(ji_shu, lst) # 执行数据过滤过滤操作
# 将new_obj转换成列表,并打印出来
print(list(new_obj))
运行结果:[1, 3, 5, 7, 9]
4、map(映射函数,可迭代对象)
该函数可接受两个及以上参数,第一个参数是用来映射的函数,后面可以接受一个或多个可迭代对象。通过映射函数,对可迭代对象做映射。
映射过程将:将映射函数依次作用在可迭代对象的每个元素上,得到一个新的map对象并返回。
注意:map()和filter()函数一样,都不改变原有的可迭代对象,而是返回一个新的可迭代对象。
示例程序:
bash
# 定义一个函数,用于计算给点参数的平方
def square(x):
return x ** 2
# 初始化一个列表 lst
lst = [1, 2, 3, 4, 5]
# 将映射函数 square 和 可迭代对象 lst 传入map()函数
new_obj = map(square, lst) # 执行映射操作
# 将new_obj转换成列表,并打印出来
print(list(new_obj))
运行结果:[1, 4, 9, 16, 25]
(1)通过使用lambda匿名函数的方法使用map()函数,程序如下:
bash
# 将两个列表的对应的元素相加,将结果转换成list并打印出来
print(list(map(lambda x, y: x+y, [1, 3, 5], [2, 4, 6])))
# 运行结果如下
[3, 7, 11]
(2)通过lambda匿名函数使返回值是一个元组,程序如下:
bash
# 使用匿名函数,结合map()函数做了一系列的批量计算
print(list(map(lambda x, y: (x**y, x+y), [2, 4, 6], [4, 3, 2])))
# 运行结果如下
[(16, 6), (64, 7), (36, 8)]
(3)通过map()函数实现类型转换,程序如下:
bash
# 1、将字符串型列表转换成数字类型列表
print(list(map(int, ['1', '2', '3'])))
# 2、将字符串转换成列表
print(list(map(int, '12345')))
# 3、提取字典中的键,将其转换成整数,并将结果放在一个列表中
print(list(map(int, {'1': 2, '3': 4, '5': 6})))
print(list(map(int, {'1': 2, '3': 4, '5': 6}.keys())))
5、next(迭代器对象[, 默认值])
用于返回迭代器对象(iterator)的下一个元素,如果没有下一个对象,就返回默认值;如果不设置默认值,会报错(StopIteration)。
注意:这里的迭代器对象,不是可迭代对象!比如:字符串、列表都是可迭代对象,但是不适用next方法,只有迭代器对象才可以。
使用iter(可迭代对象)函数可以将可迭代对象转换成迭代器对象(iterator)。然后将迭代器对象作为参数传递给next()函数,每调用一次next()函数,就返回下一个元素。
示例程序:
bash
>>> it = iter('abc') # 将字符串转换成 iterator 对象
>>> next(it) # 使用next()函数查看迭代器对象it的下一个元素
'a' # 第一次调用next()函数,返回第一个元素
>>> next(it) # 使用next()函数继续获取it对象的下一个元素
'b'
>>> next(it) # 第三次使用next()函数,查看it最后一个元素
'c'
>>> next(it) # it对象获取完毕之后,继续查看下一个元素
Traceback (most recent call last):
File "<pyshell#17>", line 1, in <module>
next(it)
StopIteration
>>> next(it, '没有下一个了') # 设定默认值,避免程序报错
'没有下一个了' # 如果没有下一个元素可以迭代,就返回默认值
四、对象操作函数
对象类操作函数,知道基本的用法,了解即可。
1、help()
用于查看函数或者模块用途的详细说明,返回对象的帮助信息。示例程序:
bash
>>> help('os') # 查看"os"模块的帮助信息
···显示帮助信息···
>>> lst = [1, 2, 3] # 初始化一个列表
>>> help(lst) # 查看列表 lst 的帮助信息
···显示帮助信息···
>>> help(lst.append) # 查看lst的append方法的帮助文档
Help on built-in function append:
append(object, /) method of builtins.list instance
Append object to the end of the list.
2、dir([object])
该函数不带参数时,以列表的形式返回当前范围内的变量、方法和定义的类型;带参数时,返回给定参数的属性和方法的列表。如果参数包含方法__dir__(),该方法将被调用。如果参数不包含__dir__(),该方法将最大限度的搜集参数信息。
示例程序:
bash
>>> dir() # 获取当前模块的属性列表
['__annotations__', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'it', 'l', 'lst', 'os', 'r']
>>> dir([]) # 查看列表的方法
['__add__', '__class__', '__class_getitem__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']
3、ascii()
该函数返回一个表示对象的ASCII码字符串。
示例程序:
bash
>>> ascii((1, 2))
'(1, 2)'
>>> ascii({'name': '张三', 'age': 12})
"{'name': '\\u5f20\\u4e09', 'age': 12}"
4、vars([object])
该函数用于返回对象object的属性和属性值的字典对象,即查看对象的命名空间;如果没有指定参数,就返回当前调用位置的属性和属性值。
示例程序:
bash
>>> a = 2 # 初始化变量 a
>>> b = vars() # 获取当前调用位置的命名空间
>>> b['a'] # 查看命名空间里,变量a的属性值
2
五、模拟考题
(一)单选题:
1、关于abs()函数,描述不正确的是( )。
A、abs()函数的功能是取整数的绝对值
B、abs()函数的功能是取实数的绝对值
C、abs()函数的功能是取一个数的绝对值
D、负数的绝对值是整数
2、以下表达式的值为False的是( )。
A、all(())
B、any((0, 1))
C、all((0,))
D、any(['a', 'b', '', 'd'])
3、ascii(chr(65))的值是( )。
A、'A'
B、65
C、"'A'"
D、'65'
4、下列选项中具有查看函数或模块说明功能的函数是( )。
A、help()函数
B、ascii()函数
C、dir()函数
D、vars()函数
(二、判断题)
1、divmod()函数的返回值是一个包含商和余数的列表。( )
2、bool()、bool(None)、bool('')、bool([''])这四个表达式输出的结果都是False。( )
3、在Python中,执行print(ord('a') + 12)语句,能够得到一个数字结果。( )
4、在Python中,函数all([])将返回False。( )
-->参考答案往下翻<--
-->参考答案<--
一、单选题:
1~4:A、C、C、A
二、判断题:
1~4:F、F、T、F