Python 基础语法
任何一种编程语言(Python、Java、C 等)都有自己的一套语法规则,编译器(或者解释器)就是负责把符合编程语言语法规则的源代码转换成计算机 CPU 能够执行的机器码,然后执行。从这里开始,我们将正式开始 Python 程序设计语言语法规则 的学习。
Python 官方标准库地址 >>> 【传送门】,从这里你可以获取到关于 Python 程序设计语言的所有说明文档。
在开始正式学习 Python 基础语法规则之前,我们先来说明一些 Python 编程中需要注意的最最基本的语法规则或编码规范:
标点符号的使用
Python 默认语法中,标点符号都是 【半角英文】 输入。不小心用了中文标点的话,计算机会无法识别,然后报错:
1 | SyntaxError: invalid character in identifier |
源文件编码
Python3 源文件默认情况下(不明确指定),是以 UTF-8 进行编码的,所有字符串都是 unicode 字符串。
1 | # -*- coding: utf-8 -*- |
当然你也可以为源码文件指定不同的编码:
1 | # -*- coding: GB2312 -*- |
上述定义允许在源文件中使用 GB2312(simplified) 字符集中的字符编码,对应适合语言为简体中文。
标识符命名规范
程序设计语言中,标识符(Identifier)就是用于给变量、常量、函数、类、对象以及模块等命名,以建立起名称与使用之间的关系。
但标识符的命名不是随意的,而是要遵守一定的命令规则,比如说:
【1】 标识符可以由字母、数字和下划线组成,不能包含空格、@、% 以及 $ 等特殊字符。
【2】 第一个字符必须是字母表中字母或下划线 "_"
。
【3】 标识符对大小写敏感。
【4】 下划线开头的标识符是有特殊意义的:
- 以单下划线开头的标识符(如 _width),表示不能直接访问的类属性,其无法通过
from...import *
的方式导入; - 以双下划线开头的标识符(如__add)表示类的私有成员;
- 以双下划线作为开头和结尾的标识符(如
__init__
),是特殊方法专用标识符。代表类的构造函数。
因此,除非特定场景需要,应避免使用以下划线开头的标识符。
【5】 Python 中允许使用汉字作为标识符(避免使用),例如: 你好 = "ni hao"
。
【6】 除了要遵守以上这几条规则外,不同场景下的标识符命名规范:
- 模块名全小写,多个单词可用下划线分割;
- 包名全小写,com.mr、com.mr.book;
- 常量全大写,多个单词可用下划线分割;
- 变量、函数名,类中的属性名、方法名全部小写,多个单词可用下划线分割;
- 类名首字母全大写,多个单词可用下划线分割。
=============================== 英文名 ===============================
【7】 英文名可参照 CODELF 给出,不可以使用 Python 关键字,不推荐使用 内置函数名。
困扰:取名字真难?!!对于英语水平高考即巅峰的同学(当然不是贬低)达到见面知义有一定难度。
这里推荐一个网站:CODELF。命名前可以输入中文看看网络大佬们都是如何进行命名的。
Python 保留字
保留字即关键字,已经被 Python 系统赋予了特定的意义,我们不能把它们用作任何标识符名称。Python 的标准库提供了一个 keyword
模块,可以输出当前版本的所有关键字(35):
1 | >> import keyword |
使用 Python 中的保留字作为标识符,则解释器会报错:
1 | SyntaxError: can't assign to keyword |
注释
注释是给开发人员看的,可以是任意你想写的内容,解释器会自动忽略掉注释。由于解释器忽略的属性也可用于代码测试。
1 –> 行注释
Python 中单行注释以 #
开头,实例如下:
1 | #!/usr/bin/python3 |
说明多行代码的功能时,一般将注释放在代码的上一行;说明单行代码的功能时一般将注释放在代码的右侧。
2 –> 块注释
多行注释可以用多个 #
行注释,还可以使用三个连续单引号 ''' '''
或三个双引号 """ """
实现:
1 | #!/usr/bin/python3 |
块注释通常用来为 Python 文件、模块、类或者函数等添加版权或者功能描述信息。
Python 语句
1 –> 语句行
Python 可以在同一行中使用分号 ;
来写多条语句,以下是一个简单的实例:
1 | name = "Google"; age = 20; job = "IT"; |
2 –> 跨行语句
Python 通常是一行写完一条语句,但如果语句很长,我们可以使用反斜杠 (\) 来实现语句跨行,例如:
1 | # 表达式: |
Python 语法规范中,不推荐使用反斜杠实现语句跨行,这里你只需要知道有相关用法即可。推荐语句跨行方法见下文【Python 语句相关编码规范要求 >>>> 2】中说明。
| >>> =============================== Python 语句相关编码规范要求 >>>> ============================= <<< |
1】 每行只写一个语句,而且语句行尾不加(;)。
2】 Python 语法规则中规定 每行不超过 80 个字符。如果语句行过长时,建议使用圆括号 ()
来实现语句跨行:
Python 重要特性 >>>> 会将 圆括号
()
, 中括号[]
和花括号{}
中的多行内容隐式的连接起来。
1 | # 函数过长,实现跨行: |
避免宁缺毋滥的使用括号
()
,除非是用于实现跨行连接, 否则不要在返回语句或条件语句中使用括号,元组两边正常使用即可。
某些不便于跨行的特殊情况下 >>>> 可写于一行内(> 80 chars)
- 长的导入模块语句;
- 注释里的 URL、路径以及其他的一些长标记;
- 不便于换行,不包含空格的模块级字符串常量,比如 url 或者路径。
3】 除非是在 with
语句需要三个以上的上下文管理器的情况下,否则不要使用反斜杠连接行。
1 | Yes: with very_long_first_expression_function() as spam, \ |
缩进
Python 最具特色的就是使用 缩进 来表示代码块,不再需要使用大括号 {} 。
缩进有利有弊:
缩进的好处 –> 是强迫你写出格式化的代码,但没有规定缩进是几个空格还是 Tab
(但上下文要一致,不要混用 Tab 和 空格,否则会报错)。
按照约定俗成的管理,应该始终坚持使用 4
个空格的缩进。缩进不一致导致的错误:
1 | IndentationError: unindent does not match any outer indentation level |
缩进的坏处 –> 就是 “复制-粘贴” 功能失效了,这是最坑爹的地方。当你重构代码时,粘贴过去的代码必须重新检查缩进是否正确。
import && from … import
在 Python 中用 import
或者 from...import
来导入相应的模块从而调用其内置方法:
将整个模块(
somemodule
)导入,格式为:import somemodule
为方便模块使用,简写格式为:
import somemodule as xxx
从某个模块中导入某个函数,格式为:
from somemodule import somefunction
从某个模块中导入多个函数,格式为:
from somemodule import firstfunc, secondfunc, thirdfunc
将某个模块中的全部函数导入,格式为:
from somemodule import *
Google Style 编码规范
并不是只要遵循了上述 Python 基础语法规范,你就可以随心所欲的写脚本代码了。通常,在日常开发过程中,你必须遵循一定的编码规范,以提高代码的可读性。
这里,提供一个 Google Style 的 Python 风格规范。
工作项目中,你还可以使用编码规范的自动化工具来自动化规范你的代码,这是重要且合理的。
install_url
to use ShareThis. Please set it in _config.yml
.