内置函数
Python 已经做好的帮手,拿来就能用。
它是什么
内置函数 是现成工具。
不用自己写 def。
直接喊名字,加上括号。
Python 希望常用的小事不必每次从头发明。 求绝对值、数个数、排个序,语言把它们准备好,放进「开机就有」的工具箱。
自己做的 函数 和内置函数用法相似: 喊名字、加括号、看返回值。
名字从哪来
内置的英文是 built-in,意思是「造在里面的」。 和「后来才安装的」相对。
很多语言都有类似工具箱。
C 语言要 #include 才有一部分数学函数。
Python 把最常用的一批直接放在 builtins 模块里,启动就能用。
print、input、int、len 都在这个箱子里。
它们看起来像命令,其实都是函数。
帮手很多,不必背完。 先认识一批最常用的就够。
它怎么工作
每个函数都要想:括号里放什么?出来是什么?
| 函数 | 本事 | 例子 |
|---|---|---|
abs | 绝对值 | abs(-5) → 5 |
round | 四舍五入 | round(3.6) → 4 |
pow | 乘方 | pow(2, 3) → 8 |
min | 最小 | min(3, 1, 2) → 1 |
max | 最大 | max([3, 9]) → 9 |
sum | 求和 | sum([1, 2, 3]) → 6 |
len | 长度或个数 | len("你好") → 2 |
range | 整数序列 | range(3) → 0、1、2 |
sorted | 新的排好序的列表 | sorted([3, 1]) → [1, 3] |
type | 询问类型 | type(3) → int |
int / float / str | 类型转换 | int("12") → 12 |
round(3.14159, 2) 可以留两位小数。
pow(2, 3) 和 2 ** 3 都是 8。
range 常配合 for。
list(range(3)) 只是方便把序列看清楚。
sorted 通常不改原来的 列表。
列表自己的 sort() 会改原来的。
平均数可以组合:
nums = [90, 80, 70]
mean = sum(nums) / len(nums)
print(round(mean, 1))len("你好") 是 2,因为按字符数。
sorted("cab") 会得到字符列表 ['a', 'b', 'c']。
不确定时,先 print 看一眼。
这就是最便宜的显微镜。
对空列表求 min 或 max 会失败。
没有元素,就没有最小最大。
sum([]) 倒是 0。
生活里在哪里
- 尺子:量长度,像
len。 - 计算器的 |x| 键:绝对值,像
abs。 - 成绩单:最高分、最低分、总分,像
max、min、sum。 - 点名册人数:像
len(名单)。 - 图书馆把书按拼音重排:像
sorted。
生活里的工具箱不用你焊接。 Python 的内置函数也一样:认识名字,会用就行。
和相近概念的差别
内置函数是语言自带的。
自己的函数是你用 def 做的。
导入模块以后才能用的,例如 math.sqrt,叫标准库函数,也不算「开机就有」的那一小批。
sorted 是函数。
sort 是列表的方法。
一个常常给出新列表,一个改原来的列表。
int、str 既是类型名,也能当转换函数用。
见 类型转换。
print 主要给眼睛看。
len、sum、abs 主要把结果送回给程序。
见 print。
常见误会
误会 1:忘记括号,写成 len nums。
函数都要括号。
len(nums) 才对。
误会 2:以为 range(3) 包含 3。
停在 3 前面。
误会 3:把 sorted 和 sort 当成完全同一件事。
一个出新列表,一个改原列表。
误会 4:round 的第二个参数忘了,小数位被全部收掉。
round(3.14159) 得到 3。
要留两位,写 round(3.14159, 2)。
误会 5:sum 用在字符串上。
它只适合数字序列。 文字请用拼接,或先转换。
想知道更多
- 书:潘洪波《小学生 Python 趣味编程》(用成绩、长度这些生活量引出现成帮手)。
- 书:埃里克·马瑟斯《Python 编程:从入门到实践》(后面项目会反复用到长度、求和、排序,可和家长一起查例子)。
未登录时不会保存学习进度