文章目录

  • Python名称由来
  • Python历史版本
  • 变量命名规则
  • Python安装
  • 操作系统如何运行程序
  • Python 开发常用工具
  • 代码规范
  • Python标准库模块导入
  • 使用Python 包(package)组织代码

Python名称由来

Python的创始人为 Guido van Rossum,当时他在阿姆斯特丹的荷兰数学和计算机科学研究学会工作。1989年的圣诞节期间,Guido van Rossum为了在打发时间,决心开发一个新的脚本解释编程,作为ABC语言的一种继承,替代使用Unix shell和C语言进行系统管理,担负同Amoeba操作系统(英语:Amoeba (operating system))的交互和异常处理。之所以选中Python作为编程的名字,是因为他是BBC电视剧——《蒙提·派森的飞行马戏团》(Monty Python’s Flying Circus)的爱好者。

Python历史版本

Python 历史上有几个重要的版本节点:

  • January 1994,Python1.0 发布
  • 2000年10月16日,Python2.0 发布
  • 2010年7月3日,Python2.7 发布,这是Python2.x的最后一个版本,Python2.x 和 Python3.x不兼容
  • 2008年12月3日,Python3.0 发布,Python3引入多个和Python2.x不兼容的特性,Python 从2.x到3.x的迁移经历了比较长的时间,编程语言版本不兼容有时候会是个致命错误(例如Perl6),好在Python挺过来了。
  • 2021年10月5号,Python3.10 发布,这是目前到2021年为止最新的版本
  • 而最新的开发中版本是 Python3.11

变量命名规则

  • 变量名只能包含字母、数字和下划线。变量名可以字母或下划线开头,但不能以数字开头,例如,可将变量命名为message_1,但不能将其命名为1_message。
  • 变量名不能包含空格,但可使用下划线来分隔其中的单词。例如,变量名greeting_message可行,但变量名greeting message会引发错误。
  • 不要将Python关键字和函数名用作变量名,即不要使用Python保留用于特殊用途的单词,如print。
  • 变量名应既简短又具有描述性。例如,name比n好,student_name比s_n好,name_length比length_of_persons_name好。
  • 慎用小写字母l和大写字母O,因给他们可能被人错看成数字1和0;

注意:应使用小写的Python变量名。在变量名中使用大写字母虽然不会导致错误,但避免使用大写字母是个不错的注意。

Python安装

不同平台对Python环境的默认支持是不同的:

  • Windows 平台没有默认安装 Python
  • Linux/Mac 平台大部分默认安装了 Python2.7

安装Python3.x 版本:
Windows:下载 Windows 安装包安装:https://www.python.org/downloads/windows/
CentOS: 使用yum包管理器,执行命令:yum install -y python3
Ubuntu: 使用apt-get包管理器,执行命令:apt-get install -y python3
MacOS: 安装brew包管理器,执行命令: brew install python3

操作系统如何运行程序

人和操作系统如何交互?最早Ken Thompson设计Unix的时候,使用的是命令解释器,命令解释器接受用户的命令,然后解释他们并执行。
Shell是人和机器交互的界面,分为GUI和命令行(CLI)两种方式,这里重点介绍命令行的方式。概念Shell路易斯·普赞(Louis Pouzin)在1964年至1965年间首次提出,随后在Multics(MULTiplexed Information and Computing System)项目中首次被实现出来。肯·汤普逊(Ken Thompson)以Multics上的shell为范本实现的第一个Unix壳层(Unix shell):Thompson shell。AT&T贝尔实验室的史蒂夫·伯恩在1977年实现了Bourne shell,或sh,它是Version 7 Unix默认的Unix shell,替代执行文件同为sh的Thompson shell。微软的Windows操作系统也提供了命令行壳层的功能,它们是Windows 95 / 98下的command.com、Windows NT内核下的cmd.exe以及PowerShell。
下面的Python 列表包含了Unix系统常见的shell:
shells = [ ‘Bourne shell(sh)’, ‘Almquist shell(ash)’, ‘Debian Almquist shell(dash)’, ‘Bourne-Again shell(bash)’, ‘Korn shell(ksh)’, ‘Z shell(zsh)’, ‘C shell(csh)’, ‘TENEX C shell(tcsh)’, ‘EMACS shell (eshell)’, ‘Es shell(es)’, ‘esh (Unix) – Easy Shell’, ‘friendly interactive shell(fish)’, ‘rc shell(rc)– shell for Plan 9 from Bell Labs and Unix’, ‘scsh(Scheme Shell)’, ‘Stand-alone Shell(sash)’, ‘BeanShell(bsh,bsh.Interpreter , bsh.Console)’, ‘Rhino JavaScript壳层(org.mozilla.javascript.tools.shell.Main)’ ]
通过shell,我们可以让操作系统执行Python程序。而Python是解释型语言,源代码不是直接翻译成机器语言,而是先翻译成中间代码,再由解释器对中间代码进行解释运行。有两种基本的方式运行 Python

  • repl: 交互式编程( Interactive )
  • source: Python 源代源文件( File )

Python 开发常用工具

IDEL(https://docs.python.org/3/library/idle.html),,) Python 内置的IDE,功能比较一般。,
VIM(http://www.vim.org/),,)如果你是个VIM爱好者,可以用VIM编写Python,但是Python的缩进处理会比较麻烦。当然,你在 Linux 服务器上的时候有时候就只能用VI/VIM了。
Visual Studio Code(https://code.visualstudio.com/)),VSCode 对Python的支持非常友好,配合几个插件后几乎是对 Python 开发最友好的IDE了。
PyCharm(https://www.jetbrains.com/pycharm/)),jetbrains 出品的 PyCharm 也是 Python 开发者常用的IDE。

代码规范

CodeChina上有一个中文镜像仓库:zh-google-styleguide,可以看到 Google Python 代码风格指引十分简短:python_style_rules
此外,Python 官方代码风格文档是:PEP8。你会问PEP是什么?PEP是Python Enhancement Proposals的缩写。一个PEP是一份为Python社区提供各种增强功能的技术规格,也是提交新特性,以便让社区指出问题,精确化技术文档的提案。

Python标准库模块导入

Python 语言通过模块(module)来组织代码。Python 标准库十分庞大,由C语言编写的内置模块,和由 Python 编写的解决常见开发需求的模块。下面的Python数组列举了常用标准库。

python_modules = ["os --- 多种操作系统接口","os.path --- 常用路径操作","re --- 正则表达式操作","datetime --- 基本日期和时间类型","heapq --- 堆队列算法","enum --- 对枚举的支持","math --- 数学函数","random --- 生成伪随机数","itertools --- 为高效循环而创建迭代器的函数","functools --- 高阶函数和可调用对象上的操作","shutil --- 高阶文件操作","sqlite3 --- SQLite 数据库 DB-API 2.0 接口模块","csv --- CSV 文件读写","hashlib --- 安全哈希与消息摘要","hmac --- 基于密钥的消息验证","time --- 时间的访问和转换","argparse --- 命令行选项、参数和子命令解析器","logging --- Python 的日志记录工具","threading --- 基于线程的并行","multiprocessing --- 基于进程的并行","socket --- 底层网络接口","email --- 电子邮件与 MIME 处理包","json --- JSON 编码和解码器","urllib --- URL 处理模块","http --- HTTP 模块"
]

使用 import 相关的语句可以引入 Python 标准库模块。特别地,import 可以被动态的从任何地方调用。

使用Python 包(package)组织代码

稍微正式一点的项目,都会通过将代码组织成有层次结构的组织,以便于管理和持续维护。Python 通过包(package)的方式来组织代码,包是一种特殊的模块(module)。
Python 的包有两种形式,分别是Regular packages 和 namespace packages。
所谓 Regular packages 就是指含有__init__.py的目录,这样的包被其他模块导入的时候,会先执行目录下__init__.py里的代码。Regular packages 可以嵌套,也就是目录下的子目录也可以是一个包。例如:

python_package_dir_example = '''
parent/__init__.pyone/__init__.pyone/__init__.pytwo/__init__.pythree/__init__.py
'''

而 namespace packages 也是有层次结构的模块组织,不过它未必是存在文件夹里的,可以存在Zip压缩包里,也可以存在网络上,而且子包和父包也未必要存储在同一个地方。这里忽略不展开。
如果一个模块被import过,Python 会将导入的模块缓存在sys.modules字典里缓存起来,再次导入的时候不会重新执行导入动作,直接从缓存里取。反之,如果我们从sys.modules里把导入的模块删除,则再次import会再次触发模块导入动作。
良好的包/模块组织在程序开发中有重要的作用。随着项目代码的逐渐增加,一开始的单文件程序会逐渐膨胀,所幸 Python 提供当包模式可以良好应对通常的代码分层组织。
但是,当目录层次增加后,在下层目录里的代码引用其他目录的模块时,总是要输入全部路径有时并不方便,此时可以考虑使用 Python 的包相对路径来导入模块。

本文内容到此结束了,
如有收获欢迎点赞

Python从入门到入土-基础知识准备相关推荐

  1. python向量计算库教程_NumPy库入门教程:基础知识总结

    原标题:NumPy库入门教程:基础知识总结 视学算法 | 作者 知乎专栏 | 来源 numpy可以说是 Python运用于人工智能和科学计算的一个重要基础,近段时间恰好学习了numpy,pandas, ...

  2. python网络爬虫的基本步骤-python爬虫入门需要哪些基础/python 网络爬虫教程

    如何入门 Python 爬虫 入门个吊,放弃 python爬虫入门需要哪些基础 现在之所以有多的小伙伴热衷于爬虫技术,无外乎是因为爬我们做很多事情,比如搜索引擎.采集数据.广告过滤等,以Python为 ...

  3. Python学习--最完整的基础知识大全

    ##Python学习–最完整的基础知识大全 关于python的基础知识学习,网上有很多资料,今天我就把我收藏的整理一下分享给大家! #####菜鸟教程python2 #####菜鸟教程python3 ...

  4. 小猪的Python学习之旅 —— 1.基础知识储备

    小猪的Python学习之旅 -- 1.基础知识储备 引言: (文章比较长,建议看目录按需学习-) 以前刚学编程的时候就对Python略有耳闻,不过学校只有C,C++,Java,C#. 和PHP有句&q ...

  5. Python从入门到实战 基础入门视频教程(讲解超细致)-黄勇-专题视频课程

    Python从入门到实战 基础入门视频教程(讲解超细致)-4123人已学习 课程介绍         Python基础入门视频教程:本课程从Python入门到纯Python项目实战.超100以上课时, ...

  6. 网络知识入门:路由器基础知识全接触

    网络知识入门:路由器基础知识全接触 发布时间:2008.05.29 07:01     来源:赛迪网    作者:月伴雨 路由器综述 路由器是互联网的主要节点设备.路由器通过路由决定数据的转发.转发策 ...

  7. Python系列 之 matplotlib库 基础知识

    Python系列 之 matplotlib库 基础知识学习 Pyplot 简单示例 中文显示问题 注册全局字体 font_manager.FontProperties注册字体 Figure Figur ...

  8. Python从入门到入土

    Python从入门到入土 简介 Python 是一种通用编程语言,其在科学计算和机器学习领域具有广泛的应用.如果我们打算利用 Python 来执行机器学习,那么对 Python 有一些基本的了解就是至 ...

  9. 小白入门!网络安全基础知识详解(附知识问答)

    小白入门!网络安全基础知识详解(附知识问答) 一.引论 提到网络安全,一般人们将它看作是信息安全的一个分支,信息安全是更加广义的一个概念:防止对知识.事实.数据或能力非授权使用.误用.篡改或拒绝使用所 ...

  10. 深入了解计算机基础,计算机入门《计算机基础知识》(全16集)

    计算机入门<计算机基础知识>是一套比较经典的老教程,里面个别章节有些过时,但是原的东西讲的很好永不过时,对于想了解电脑.计算机的初学者是很好的教程,课程讲的十分详细.深入浅出,相对于< ...

最新文章

  1. [Android Pro] 由模块化到组件化(一)
  2. linux c 指针 内存 泄漏几种情况
  3. 不仅有史上最详细Docker 安装Minio Client,还附带解决如何设置永久访问和永久下载链接!!(详图)绝对值得收藏的哈!!!!
  4. Mongo客户端MongoVUE的基本使用
  5. c语言找出最大值和最小值并按降序排输出,大学一年级下学期C语言程序设计实验报告答案 完整版...
  6. pyHook pyHook3 区别_一般过去时态和现在完成时态之间到底有什么区别?通过一道语法题,帮你彻底讲清楚!...
  7. android按钮旋转,单击一个按钮在android中顺时针旋转图像
  8. OkHttp协议介绍以及文件下载和上传+OkHttp协议封装+OkHttp拦截器____SpringBoot——集成Okhttp3
  9. Linux分区空间不足了怎么办??
  10. AI(5)---AI知多少
  11. 苹果AirPods 2新爆料:无线充电盒重量增加 支持快速充电
  12. mysql binlog ignore db_MySQL binlog_ignore_db 参数最全解析
  13. micropython文件上传软件_4-3 为NodeMCU刷入MicroPython固件
  14. php标准代码格式,PHP PSR代码格式规范
  15. 字符串全排列 java实现
  16. rubyonrails test 小记
  17. Kali Linux上安装QQ等Windows应用
  18. aes sm1 对比_SM1,SM2,SM3,SM4刨析
  19. PDF转成图片后不清晰怎么办呢?
  20. 计算机主机故障有哪些,电脑硬件常见故障有哪些

热门文章

  1. IT书籍电子书下载网站
  2. 真鱼游来游去动态壁纸_真鱼动态壁纸
  3. 相册排版软件Pixellu SmartAlbums 2 mac版
  4. 双硬盘安装win10和linux双系统,双硬盘安装 Win 10 和 Ubuntu 16.04 双系统
  5. pe系统服务器怎么做双盘备份,韩博士教你如何使用pe备份系统
  6. rarlinux基于linux-x64
  7. 如何从官网下载Hibernate源码与jar包
  8. aspectjweaver和aspectjrt的作用
  9. Delphi FireMonkey 的动画以及多线程
  10. 计算机速录水平考试,汉字速录水平测试(速录证考试报名网站)