2.1.5-内置函数.md

知识库

2.1.5 内置函数

Python 内置函数是解释器预先提供、无需导入模块即可直接调用的函数,用来完成类型转换、数学计算、序列处理、输入输出和对象查看等常见任务。本小节将常用内置函数分成五类:数据类型转换函数 int()、float()、str()、list()、tuple()、set()、dict();对象与属性函数 type()、dir();数学运算函数 abs()、round()、max()、min();序列操作函数 len()、sum()、range();输入输出函数 input()、print()。

数据类型转换方面,int() 可以把字符串或实数转换成整数:int("123") 得到整数 123,int(3.45) 得到整数 3。把实数转换成整数会丢掉小数部分,造成信息丢失。float() 可以把字符串或整数转换成实数:float('3.14') 得到 3.14,float(56) 得到 56.0。str() 可以把整数、实数以及组合数据类型等多种对象转换成字符串:str(1248) 得到 '1248',str([2, 5, 7]) 得到 '[2, 5, 7]'。数学运算方面,abs() 取绝对值,round() 按指定位数四舍五入,max() 和 min() 分别求最大值和最小值。例如 max([2.1, 5.4, 3.8]) 的结果是 5.4,round(3.25632, 2) 的结果是 3.26。

序列操作方面,len() 获取序列长度,sum() 对序列中的元素求和,range() 生成整数序列。例如 len('Thank you!') 的结果是 10,sum([3, 4, 5]) 的结果是 12。range() 的语法是 range(start, stop, step):start 可选,默认 0;stop 是结束值且必须给出,生成的序列不包含该值;step 可选,默认 1。range() 返回可迭代对象,数值在实际迭代时才计算,直接输出该对象看不到具体序列值,常用 list() 转换后再查看,也常用来控制循环次数。例如 list(range(5)) 得到 [0, 1, 2, 3, 4],list(range(0, 10, 2)) 得到 [0, 2, 4, 6, 8]。输入输出方面,input() 从用户获取输入:程序运行到此处会暂停并等待用户输入文本,按下回车后以字符串形式返回;参数是显示给用户的提示信息。因为返回值始终是字符串,若需要整数或实数,必须再用 int() 或 float() 转换。print() 把任意数量的对象转换成字符串后输出到屏幕,默认用空格分隔各项、以换行结束;可用 sep 指定分隔符,用 end 指定结束符。例如:

print("Python", "is", "fun!")
print("Python", "is", "fun!", sep='---', end=' ')
print('I love it!')

第一行输出 Python is fun!;后两行同一行输出 Python---is---fun! I love it!。对象操作方面,type() 返回对象的类型,dir() 列出对象的全部属性和方法。例如 a = 3.54 时,type(a) 的结果为 float。

使用时要注意几个常见坑。第一,int() 转换实数是截去小数部分,不是四舍五入,int(3.45) 得到 3 而不是 4。第二,input() 的结果是字符串,不转换就做算术运算会出错。第三,变量名并不强制禁止使用内置函数名,但一旦写成 list = [3, 4, 5],list 就不再是构造列表的函数,再写 list('abc') 会报 TypeError: 'list' object is not callable。第四,range() 不含结束值,且对象本身不是列表。

关键要点


下载此文件