1.1 格式框架
1.1.1 缩进
Python 语言采用严格的 “缩进” 来表明程序的格式框架。缩进用来表示代码之间的包含和层次关系,它是 Python 语言中表明程序框架的唯一手段。PEP 8 指南建议使用四个空格表示一个缩进,这既提高了可读性,又留下了足够的多级缩进空间。
在字处理文档中,通常被广泛使用的是制表符,而不是使用空格来完成缩进。对于字处理文档来说,这样做的效果很好,但混合使用制表符和空格会让 Python 解释器感到迷惑。好在每款编辑器都提供了一种功能,可以将输入的制表符转换为指定数量的空格。因此,在编写代码时绝对应该使用制表符键,但一定要对编辑器进行设置,使其在文档中插入空格而不是制表符。
1.1.2 注释
注释是代码中的辅助性文字,用以在程序中使用自然语言进行解释说明。Python 语言采用 #
表示一行注释的开始,多行注释需要在每行开始都使用 #
。PEP 8 建议注释的行长不应超过 72 字符。
严格地讲,Python 并未提供多行注释。但可以使用成对的三个单引号 '''
或双引号 """
来实现多行注释的功能。事实上, '''
或 """
在 Python 中用来完成文档注释。
1.1.3 续行符
Python 程序是逐行编写的,每行代码的长度并无限制。但单行代码太长会不利于阅读,PEP 8 建议每行不超过 80 个字符。
在 Python 中可以使用续行符将单行代码分割成多行代码,Python 中的续行符为 \
,续行符后应直接换行。列表、元组、字典中的元素之间不使用续行符也可以直接换行。
在大多数的开发软件中,都可以设置一个视觉标志,通常是一条垂直参考线,让你知道不能越过的界限在什么地方。
1.1.4 空行
要将程序的不同部分分开,可使用空行。空行与代码缩进不同,它并不是 Python 语法的一部分。即使书写时不插入空行,也不会出现语法错误。但是空行的作用在于分隔两段不同功能或含义的代码,便于日后代码的维护或重构。因此,空行也是程序代码的重要部分。
通常,函数之间或类中的方法之间用空行分隔,表示一段新的代码的开始。类和函数入口之间也用一行空行分隔,以突出函数入口的开始。
1.2 基本语法元素
1.2.1 变量与常量
变量是保存和表示数据值的一种语法元素。变量的值可以改变,能够通过赋值方式被修改。变量的标识符通常全部使用小写字母,单词之间使用下划线连接。
常量是一种特殊的变量,其值在程序的整个生命周期内保持不变。通常使用全部大写变量名的方式来指出应将该变量视为常量。相比于直接使用字面值而言,为常量指定一个有意义的名称,可以更清晰地表达出它的用途。
1.2.2 标识符
Python 语言允许使用大写字母、小写字母、数字、下划线和汉字等字符及其组合给变量、函数、类等命名,即标识符。标识符的长度没有限制,首字符不能是数字,中间不能出现空格。
注意:Python 对大小写敏感,例如 message 和 Message 是两个不同的标识符。
1.2.3 保留字
保留字,也称为关键字,指被编程语言内部定义并保留使用的标识符。程序员编写程序不能定义与保留字相同的标识符。每种程序设计语言都有一套保留字,保留字一般用来构成程序的整体框架、表达关键值和具有结构性的复杂语义等。
1.3 基本语句元素
1.3.1 表达式
产生或计算新数据值的代码片段称为表达式。表达式类似数学中的计算公式,运算后产生运算结果,运算结果的类型由操作符或运算符决定。表达式一般由数据和操作符等构成,是构成 Python 语句的重要部分。
1.3.2 赋值语句
Python 语言中,=
表示 “赋值”,即将等号右侧的值计算后将结果值赋给左侧变量,包含等号 =
的语句称为 “赋值语句”。格式为:
<变量> = <表达式>
还可以使用同步赋值语句同时给多个变量赋值,格式为:
<变量 1>, …, <变量 N> = <表达式 1>, …, <表达式 N>
1.3.3 分支与循环
分支语句的作用是根据判断条件选择程序执行路径,包括单分支、二分支和多分支。
循环语句与分支语句控制程序执行类似,它的作用是根据判断条件确定一段程序是否再次执行一次或者多次。循环语句包括遍历循环和条件循环。
1.4 数据类型概述
1.4.1 数字类型
Python 中的数字类型有整数、浮点数、复数,分别和数学中的整数、小数、复数相对应。不同的数字类型可以直接计算。可以把 IDLE 当作一个计算器使用:
>>> 1 + 2
3
>>> 3 - 2
1
>>> 2 * 3
6
>>> 3 / 2
1.5
>>> 3 ** 2
9
>>> 3 ** 0.5
1.7320508075688772
>>> 2 + 3*4
14
>>> (2 + 3) * 4
20
1.4.2 字符串
字符串是字符的序列表示,根据字符串的内容多少分为单行字符串和多行字符串。单行字符串由一对单引号 '
或双引号 "
作为边界来表示,多行字符串由一对三单引号 '''
或三双引号 """
作为边界来表示。
在 Python 中,单引号和双引号都用来表示字符串。这种设计的好处是可以在字符串中很轻松地包含引号和撇号:
>>> print('I tlod my friend, "Python is interesting."')
I tlod my friend, "Python is interesting."
>>> print("She's my best friend.")
She's my best friend.
还有一种特殊的字符串是转义字符。Python 语言的转义符为 \
,其与后面相邻的一个字符共同组成了新的含义。如:\n
表示换行、\\
表示反斜杠、\'
表示单引号、\"
表示双引号、\t
表示制表符。
字符串是一个字符序列。字符串最左端位置标记为 0,向右依次增加;最右端位置标记为 -1,向左依次递减。对字符串中某个字符的检索被称为索引。索引的使用方式为:
<字符串或字符串变量>[序号]
>>> 'hello'[0]
'h'
>>> 'hello'[3]
'l'
>>> 'hello'[-2]
'l'
Python 中的字符串以 Unicode 编码存储,字符串的英文字符和中文字符都算作 1 个字符。
对字符串中某个子串或区间的检索被称为切片。切片的使用方式为:
<字符串或字符串变量>[N: M]
切片将会返回字符串的第 N 个到第 M 个字符,不包含末尾的 M 个字符。
>>> 'hello'[1: 3]
'el'
>>> 'hello'[1:] # 检索区间到最后一个字符结束
'ello'
>>> 'hello'[: 3] # 检索区间从 0 开始
'hel'
>>> 'hello'[:] # 返回字符串副本
'hello'
此外,还可以在切片时指定步长:
<字符串或字符串变量>[N: M: K]
>>> 'hello'[::2]