Python解释器内置了很多实现常用功能的函数和类型,他们统称为内置函数,这些内置函数无需使用 import 导入,
在任意位置都可以直接使用。内置函数存在于 __builtins__ 模块中,因此,内置函数的作用域是内置作用域,
每个python脚本都会自动加载该模块,这正是可以随意使用内置函数的原因。
下面的代码展示如何通过获得 __builtins__ 模块来调用内置函数。
builtins = globals()['__builtins__']
print(type(builtins))
<class 'module'>
max_function = builtins.max
print(max_function([1, 4, 6, 9]))
9
内置函数globals以字典的形式返回当前模块命名空间里的全局变量,这其中就包含 __builtins__ 模块。
有些所谓的内置函数,例如 list , dict 等,其本质是类,而非函数。
但这些类的命名并没有遵守类的命名规范,而是采用了函数的命名规范,首字母是些小而非大写。
由于函数与类都是可调用对象,因此从语法上不能对他们的类型做出区分,
这似乎这是python开发人员有意而为之。众多教程将它们统称为内置函数,
虽然不是最准确的理解,但并不影响使用。
python的内置函数大约有70个左右,熟练的掌握并使用它们,将极大的简化代码, 提高编程效率,下面是按照函数名称首字母进行分类整理的内置函数表:
| 1 | 2 | 3 | 4 |
|---|---|---|---|
| abs | all | any | bytes |
| bin | bool | bytearray | compile |
| chr | callable | dict | divmod |
| delattr | dir | eval | exec |
| enumerate | filter | float | frozenset |
| getattr | globals | hash | hex |
| hasattr | isinstance | issubclass | iter |
| int | input | id | locals |
| list | len | max | min |
| map | next | oct | open |
| pow | reversed | round | |
| range | repr | set | setattr |
| slice | sorted | staticmethod | str |
| sum | super | tuple | type |
| vars | zip |
打印函数 print()
print() 函数能是所有学习计算机语言最先要使用的函数。
在有的编程语言中可能是以指令的方式先出现。
print() 函数实现的功能就是把信息打印到屏幕终端。
在遥远的时代,这个方式是计算机与人进行交互的最重要也是最基本的方式。
Python 语言同样有 print() 函数。
尤其要注意的是, 在 Python 2 中原本是 print 语句,后来才修改为函数的方式。
关于这个问题,可参考如下:
- 原始出处: https://peps.python.org/pep-3105/
- 博客园解释: https://www.cnblogs.com/yangxiaolan/p/5782584.html
- 知乎中的解释: https://zhuanlan.zhihu.com/p/69388407
关键字参数
大多数参数是由它们在函数调用中的位置来识别的。
例如, random.randint(l,10) 与 random.randint(10, 1) 不同。
函数调用 random.randint(l, 10) 将返回 1 到 10 之间的一个随机整数,
因为第一个参数是范围的下界,第二个参数是范围的上界(而 random.randint(10, 1) 会导致错误)。
但是,“关键字参数”是由函数调用时加在它们前面的关键字来识别的。
关键字参数通常用于可选变量。
例如, print() 函数有可选的变量 end 和 sep ,
分别指定在参数末尾打印什么,以及在参数之间打印什么来隔开它们。
end 关键词
如果运行以下程序:
print( 'Hello')
Hello
print('World')
World
这两个字符串出现在独立的两行中,因为 print() 函数自动在传入的字符串末尾添加了换行符。
但是,可以设置 end 关键字参数,将它变成另一个字符串。例如,
如果程序像这样:
print('Hello',end='')
Hello
print('World')
World
print ('cats','dogs','mice')
cats dogs mice
但是可以传入 sep 关键字参数,替换掉默认的分隔字符串。
在交互式环境中输入以下代码:
print ('cats','dogs','mice' ,sep=',')
cats,dogs,mice
也可以在编写的函数中添加关键字参数,但必须先在接下来的两章中学习列表和字典数据类型。 现在只要知道,某些函数有可选的关键字参数,在函数调用时可以指定。