1.4 Python语法基础

本节主要介绍Python中一些最基础的语法,包括标识符、关键字、变量声明、语句、代码块和模块等内容。

1.4.1 标识符

标识符就是变量、常量、函数、属性、类、模块和包等由程序员指定的名字。构成标识符的字符均有一定的规范,Python语言中标识符的命名规则如下:

区分大小写,Myname与myname是两个不同的标识符;

首字符可以是下画线“_”或字母,但不能是数字;

除首字符外的其他字符,可以是下画线“_”、字母和数字;

关键字不能作为标识符;

不能使用Python内置函数作为自己的标识符。

例如,identifier、userName、User_Name、_sys_val等为合法的标识符,而2mail、room#、$Name和class为非法的标识符,“#”和“$”不能构成标识符。

1.4.2 关键字

关键字是类似于标识符的保留字符序列,是由语言本身定义好的。Python语言中的关键字有33个,其中只有3个关键字的首字母要大写,即False、None和True,其他关键字的首字母全部小写。具体内容如表1-1所示。

表1-1 Python关键字

1.4.3 变量声明

在Python中声明变量时不需要指定它的数据类型,只要给一个标识符赋值就声明了变量,示例代码如下。

代码解释如下。

代码第①~③行分别声明了三个变量,这些变量声明不需要指定数据类型,你赋给它什么数值,它就是该类型的变量了。

代码第④行是给y变量赋布尔值True,虽然y已经保存了整数类型20,但它也可以接收其他类型数据。

1.4.4 语句

Python代码是由关键字、标识符、表达式和语句等内容构成的,语句是代码的重要组成部分。在Python语言中,一行代码表示一条语句,语句结束可以加分号,也可以省略分号,示例代码如下。

代码解释如下。

代码第①行在语句结束时使用了分号,但是实际编程时通常省略分号。

代码第②行有两条语句,但这样编写代码是不规范的,Python官方推荐一行代码只有一条语句。

代码第③行采用链式赋值语句,同时将“10”赋值给a、b、c三个变量。

1.4.5 代码块

if、for和while等语句中包含了多条代码,这些代码会放在一个代码块中。Python语言中的代码块与C和Java等语言中的差别很大,Python是通过缩进来界定代码块的,示例代码如下。

代码解释如下。

代码第①行和第②行是同一个缩进级别,它们在相同的代码块中。

代码第③行和第④行不在同一个缩进级别中,它们在不同的代码块中。

提示 一个缩进级别一般是一个制表符(Tab)或4个空格,考虑到不同的编辑器制表符显示的宽度不同,大部分编程语言规范推荐使用4个空格作为一个缩进级别。

1.4.6 模块

Python中一个模块就是一个“.py”文件,模块是保存代码的最小单位,模块中可以声明变量、常量、函数、属性和类等Python程序元素。一个模块可以访问另外一个模块中的程序元素。

下面通过示例介绍如何创建和使用模块。首先在“*.ipynb”(Jupyter Notebook文件)的同级当前目录下使用记事本等文本编辑工具创建一个module1.py文件,并编辑module1.py文件,示例代码如下。

代码解释如下。

上述代码第①行是一个注释行,用于指定脚本文件的编码格式。在这个例子中,它指定使用UTF-8 编码来处理脚本文件中的字符。

其他代码不再赘述。

那么如何在Jupyter Notebook代码文件中使用module1模块呢?可以使用import语句导入module1模块,示例代码如下。

代码解释如下。

代码第①行使用import<模块名>方式导入模块所有代码元素(包括变量、函数、类等)。访问代码元素时需要加“模块名.”,如代码第④行中的“module1.y”,其中“module1”是模块名,“y”是模块“module1”中的变量。

代码第②行使用from<模块名>import<代码元素>方式指定模块中特定的代码元素。

代码第③行访问当前模块变量y。

代码第⑤行访问module1模块变量z。需要注意,当z变量在当前模块中也存在时,z不能导入,即z是当前模块中的变量。

在Jupyter Notebook中执行上述代码,结果如图1-10所示。

图1-10 执行代码的结果