大家在学习python时,会遇到这样的情况,有些东西直接就可以使用,例如str()、len();

而有些需要import 导入才能使用,比如sys、os、time、math;

还有些需要安装才能使用,比如pandas、pyautoGUI、numpy、requests。

然后还分不清什么是函数,什么是模块,什么是包,什么又是库。

编程重在理解与运用,同学们大可不必纠结于概念,我们了解下即可。

内建对象——不需要导入

Python解释器自带的函数、常量分别叫做内置函数、内置常量,这些函数和常量可以直接使用,不需要定义或import导入。

这里引入的概念【内置函数】、【内置常量】

【内置函数】一般包括Python 解释器自带的函数(function)和类型(class)

function -- 函数是可以向调用者返回某个值的一组语句。还可以向其传入零个或多个参数并在函数体执行中被使用。

参考官方文档: 内置函数 — Python 3.10.2 文档https://docs.python.org/zh-cn/3/library/functions.html#built-in-funcs

【内置常量】“常量”即不变化的量,与“变量”相对。

参考官方文档: 内置常量 — Python 3.10.2 文档https://docs.python.org/zh-cn/3/library/constants.html

使用python代码 dir(__builtins__) 可以输出Python所有内建对象:

(以下是我的python3.8版本输出的)

['ArithmeticError', 'AssertionError', 'AttributeError', 'BaseException', 'BlockingIOError', 'BrokenPipeError', 'BufferError', 'BytesWarning', 'ChildProcessError', 'ConnectionAbortedError', 'ConnectionError', 'ConnectionRefusedError', 'ConnectionResetError', 'DeprecationWarning', 'EOFError', 'Ellipsis', 'EnvironmentError', 'Exception', 'False', 'FileExistsError', 'FileNotFoundError', 'FloatingPointError', 'FutureWarning', 'GeneratorExit', 'IOError', 'ImportError', 'ImportWarning', 'IndentationError', 'IndexError', 'InterruptedError', 'IsADirectoryError', 'KeyError', 'KeyboardInterrupt', 'LookupError', 'MemoryError', 'ModuleNotFoundError', 'NameError', 'None', 'NotADirectoryError', 'NotImplemented', 'NotImplementedError', 'OSError', 'OverflowError', 'PendingDeprecationWarning', 'PermissionError', 'ProcessLookupError', 'RecursionError', 'ReferenceError', 'ResourceWarning', 'RuntimeError', 'RuntimeWarning', 'StopAsyncIteration', 'StopIteration', 'SyntaxError', 'SyntaxWarning', 'SystemError', 'SystemExit', 'TabError', 'TimeoutError', 'True', 'TypeError', 'UnboundLocalError', 'UnicodeDecodeError', 'UnicodeEncodeError', 'UnicodeError', 'UnicodeTranslateError', 'UnicodeWarning', 'UserWarning', 'ValueError', 'Warning', 'WindowsError', 'ZeroDivisionError', '__build_class__', '__debug__', '__doc__', '__import__', '__loader__', '__name__', '__package__', '__spec__', 'abs', 'all', 'any', 'ascii', 'bin', 'bool', 'breakpoint', 'bytearray', 'bytes', 'callable', 'chr', 'classmethod', 'compile', 'complex', 'copyright', 'credits', 'delattr', 'dict', 'dir', 'divmod', 'enumerate', 'eval', 'exec', 'exit', 'filter', 'float', 'format', 'frozenset', 'getattr', 'globals', 'hasattr', 'hash', 'help', 'hex', 'id', 'input', 'int', 'isinstance', 'issubclass', 'iter', 'len', 'license', 'list', 'locals', 'map', 'max', 'memoryview', 'min', 'next', 'object', 'oct', 'open', 'ord', 'pow', 'print', 'property', 'quit', 'range', 'repr', 'reversed', 'round', 'set', 'setattr', 'slice', 'sorted', 'staticmethod', 'str', 'sum', 'super', 'tuple', 'type', 'vars', 'zip']

模块——需要import导入

【模块】(Module)即单独的一个python文件,模块能定义函数,类和变量,模块里也能包含可执行的代码。它是 Python 代码的一种组织单位。各模块具有独立的命名空间,可包含任意 Python 对象。模块可通过 import 操作被加载到 Python 中。

Python 中(至少)有三类模块:

  1. 使用 Python 编写的模块(.py);

  2. 使用 C 编写的动态加载模块(.dll,.pyd,.so,.sl 等);

  3. 使用 C 编写并链接到解释器的模块,要获取此列表,输入:

    import sys
    print(sys.builtin_module_names)

(以下是我的python3.8版本输出的)

('_abc', '_ast', '_bisect', '_blake2', '_codecs', '_codecs_cn', '_codecs_hk', '_codecs_iso2022', '_codecs_jp', '_codecs_kr', '_codecs_tw', '_collections', '_contextvars', '_csv', '_datetime', '_functools', '_heapq', '_imp', '_io', '_json', '_locale', '_lsprof', '_md5', '_multibytecodec', '_opcode', '_operator', '_pickle', '_random', '_sha1', '_sha256', '_sha3', '_sha512', '_signal', '_sre', '_stat', '_statistics', '_string', '_struct', '_symtable', '_thread', '_tracemalloc', '_warnings', '_weakref', '_winapi', '_xxsubinterpreters', 'array', 'atexit', 'audioop', 'binascii', 'builtins', 'cmath', 'errno', 'faulthandler', 'gc', 'itertools', 'marshal', 'math', 'mmap', 'msvcrt', 'nt', 'parser', 'sys', 'time', 'winreg', 'xxsubtype', 'zlib')

如果找不到模块的源文件,可能它是一个内建的模块,或是使用 C,C++ 或其他编译型语言实现的动态加载模块。这种情况下可能是没有源码文件的,类似 mathmodule.c 这样的文件会存放在 C 代码目录中(但不在 Python 目录中)。

通过 python 代码 sys.modules (一个全局字典)可以输出 python 中的所有模块对象。sys.modules是python启动后就加载在内存中。每当程序员导入新的模块,sys.modules将自动记录该模块。当第二次再导入该模块时,python会直接到字典中查找,从而加快了程序运行的速度。它拥有字典所拥有的一切方法。

{'sys': <module 'sys' (built-in)>,'builtins': <module 'builtins' (built-in)>,'_frozen_importlib': <module 'importlib._bootstrap' (frozen)>,'_imp': <module '_imp' (built-in)>,'_warnings': <module '_warnings' (built-in)>,'_frozen_importlib_external': <module 'importlib._bootstrap_external' (frozen)>,'_io': <module 'io' (built-in)>,'marshal': <module 'marshal' (built-in)>,'nt': <module 'nt' (built-in)>,'_thread': <module '_thread' (built-in)>,'_weakref': <module '_weakref' (built-in)>,'winreg': <module 'winreg' (built-in)>,'time': <module 'time' (built-in)>,'zipimport': <module 'zipimport' (frozen)>,'_codecs': <module '_codecs' (built-in)>,'codecs': <module 'codecs' from 'c:\\users\\administrator\\appdata\\local\\programs\\python\\python38\\lib\\codecs.py'>,'encodings.aliases': <module 'encodings.aliases' from 'c:\\users\\administrator\\appdata\\local\\programs\\python\\python38\\lib\\encodings\\aliases.py'>,'encodings': <module 'encodings' from 'c:\\users\\administrator\\appdata\\local\\programs\\python\\python38\\lib\\encodings\\__init__.py'>,'encodings.utf_8': <module 'encodings.utf_8' from 'c:\\users\\administrator\\appdata\\local\\programs\\python\\python38\\lib\\encodings\\utf_8.py'>,'_codecs_cn': <module '_codecs_cn' (built-in)>,'_multibytecodec': <module '_multibytecodec' (built-in)>,'encodings.gbk': <module 'encodings.gbk' from 'c:\\users\\administrator\\appdata\\local\\programs\\python\\python38\\lib\\encodings\\gbk.py'>,'_signal': <module '_signal' (built-in)>,'__main__': <module '__main__'>,'encodings.latin_1': <module 'encodings.latin_1' from 'c:\\users\\administrator\\appdata\\local\\programs\\python\\python38\\lib\\encodings\\latin_1.py'>,'_abc': <module '_abc' (built-in)>,'abc': <module 'abc' from 'c:\\users\\administrator\\appdata\\local\\programs\\python\\python38\\lib\\abc.py'>,  ...}

包——需要import导入

【包】(package)是一种可包含子模块或递归地包含子包的 Python 模块。从技术上说,包是带有 __path__ 属性的 Python 模块。简单来说,它更像是一个文件夹。

库——需要import导入

【库】(Library)是具有相关功能模块的集合。这也是Python的一大特色之一,即具有强大的标准库、第三方库以及自定义模块。

标准库——需要import导入

Python 标准库相当于解释器的外部扩展,在我们安装 python 解释器的时候,就一块安装上了。它并不会随着解释器的启动而启动,要想使用这些外部扩展,必须提前导入。

Python 标准库非常庞大,所提供的组件涉及范围十分广泛。它包含了多个内置模块 (以 C 编写),Python 程序员必须依靠它们来实现系统级功能,例如文件 I/O,此外还有大量以 Python 编写的模块,提供了日常编程中许多问题的标准解决方案。其中有些模块经过专门设计,通过将特定平台功能抽象化为平台中立的 API 来鼓励和加强 Python 程序的可移植性。

Windows 版本的 Python 安装程序通常包含整个标准库,往往还包含许多额外组件。对于类 Unix 操作系统,Python 通常会分成一系列的软件包,因此可能需要使用操作系统所提供的包管理工具来获取部分或全部可选组件。

参考官方文档:Python 标准库 — Python 3.10.2 文档https://docs.python.org/zh-cn/3.10/library/index.html

第三方库——需要先安装后 再导入

在标准库以外还存在成千上万并且不断增加的其他组件 (从单独的程序、模块、软件包直到完整的应用开发框架),访问官网 Python 包索引 即可获取这些第三方包。

它一般放在python安装目录下的 Lib\site-packages 目录下。

自定义模块、包——需要先放到python环境变量目录下后 再导入

自定义模块、包 就是我们自己写的python模块或者是包了。

python 内置函数 内置模块 标准库 第三方库 函数 模块 包 库相关推荐

  1. python内置标准库不可以处理的文件是_精华 | 140种Python标准库、第三方库和外部工具都有了...

    原标题:精华 | 140种Python标准库.第三方库和外部工具都有了 作者 | 宋天龙 来源 | 大数据(ID:hzdashuju) [导读]Python数据工具箱涵盖从数据源到数据可视化的完整流程 ...

  2. python内置函数用来返回列表、元组、字典_python程序设计第一章基础知识 题库及选解...

    由于学校的python是笔试,所以找了份感觉比较好的题库刷了下其中前八章的填空和判断,附上选解.各章链接如下 填空 1. Python安装扩展库常用的是()工具.(pip) 2. Python标准库m ...

  3. python 内置标准库socketserver模块的思考

    socketserver模块简化了编写网络服务器的任务, 在很大程度上封装了一些操作, 你可以看成是事件驱动型的设计, 这很不错.它定义了两个最基本的类--服务器类 BaseServer, 请求处理类 ...

  4. python内置函数用来返回序列中的最小元素_1000道Python题库系列分享二(48道)

    1.10 pip list 1.11 对 1.12 错 1.13 错 1.14 错 1.15 对 1.16 错 1.17 对 本期题目: 2.1 表达式int('11111', 2)的值为______ ...

  5. python内置库有哪些_python 内置库

    广告关闭 回望2020,你在技术之路上,有什么收获和成长么?对于未来,你有什么期待么?云+社区年度征文,各种定制好礼等你! version: 0. 2.0, configurations: }, de ...

  6. python内置函数多少个_每个数据科学家都应该知道的10个Python内置函数

    python内置函数多少个 Python is the number one choice of programming language for many data scientists and a ...

  7. 【Python】Python3.7.3 - Python内置函数

    文章目录 系统参数 Python内置函数 abs() all() any() ascii() repr() eval() 空值为假,非空为真 系统参数 [tony@tony-controller bi ...

  8. Python内置函数any()、map()组合运用案例一则

    Python内置函数any()用来测试某个可迭代对象中是否所有对象都等价于True,map()用来把一个函数映射到一个或多个可迭代对象上. 问题描述:测试一个字符串中是否包含指定列表中的某个字符串作为 ...

  9. Python内置函数int()高级用法

    int()函数常用来把其他类型转换为整数,例如: >>> int(3.2) 3 >>> int(1/3) 0 其实,int是Python内置类型之一,之所以能够当作 ...

  10. Python内置函数eval()用法及其安全问题

    Python内置函数eval()用来对表达式进行求值: >>> eval('3+5') 8 >>> a = 3 >>> b = 5 >> ...

最新文章

  1. Top100论文导读:深入理解卷积神经网络CNN(Part Ⅱ)
  2. OpenGL鼠标拾取
  3. 使用 greenDao 框架 操作数据库
  4. mysql扩展文件_MySQL中的空间扩展
  5. windows下kangle虚拟主机-easypanel跑iis6.0开php空间并支持ZendOptimizer教程
  6. pycharm-perl脚本
  7. 快播CEO认罪_成人网站对技术的要求有多高?
  8. Excel解决中英文分离
  9. 真是其了怪的jwplayer
  10. 基于STM32F103的智能循迹小车(舵机加双电机加灰度传感器的方案)
  11. 互斥事件的概念和公式_独立事件与互斥事件的区别与联系公式
  12. Python基础之列表、元组、字典、集合的使用
  13. Android系统快速编译方式ninja
  14. 曾我爱的人《亲爱的,别跨过那条江》:关于爱你,我准备用一生
  15. display:grid 布局实现两行两列
  16. 温习Android基础知识——《第一行代码(第三版)》读书笔记 Chapter 2 Kotlin语法
  17. html边角效果图,PS制作卷边/卷角效果图2种方法,PS交错的作用,PS压缩图像方法,PSHTML+图像的解释,PS颜色位数的作用...
  18. 移动端前端抓包神器详解(whistle+weinre)
  19. Android百度地图SDK—地图标记
  20. 面试官:你期望薪资多少?用这个套路回答,95%不会吃亏

热门文章

  1. Axure实时更新项目
  2. 电子琴的源程序(eda课程设计)
  3. Allegro实用技巧之模块复用
  4. 代码整洁之道 阿里规约
  5. 在学习数据库时遇到的问题以及解决方案集合 —— 学习数据库(二)
  6. UDS诊断之负响应码
  7. Simplorer不能导入Maxwell模型
  8. 如何从0开始画出一张优秀的架构图
  9. 51单片机读取DS18B20(单总线)
  10. 【Linux】ubuntu下移动文件