2.2 Python程序语法元素

2.2 Python程序语法元素

程序设计的6个步骤是利用计算机解决问题的方法步骤,程序设计语言则是解决问题的实现载体。在编写Python程序时,需要遵守哪些规则,使用哪些元素呢?下面我们通过一个程序案例来了解。

【案例2-1】 温度转换。

1.程序的格式框架

Python语言采用严格的“缩进”来表明程序的格式框架。缩进指每一行代码开始前的空白区域,用来表示代码之间的包含与层次关系。不需要缩进的代码顶行编写,不留空白。编写时可用Tab键来实现,也可以用多个空格(一般是4个空格)实现。但两者不能混用。程序缩进如图2-1所示。

图2-1 程序缩进

缩进是Python语言中表明程序框架的唯一手段,缩进不正确会导致程序运行错误。缩进也是表达代码间包含和层次关系的唯一手段。严格的缩进控制程序结构,有利于维护代码结构的可读性。

除了单层缩进,一个程序的缩进还可以“嵌套”,从而形成多层缩进。Python语言对语句之间的层次关系没有限制,可以无限制地嵌套使用。

缩进表达了所属关系。单层缩进代码属于之前最邻近一行的非缩进代码,多层缩进代码根据缩进关系决定所属范围。

注意不是所有代码都可以通过缩进包含其他代码,图2-1所示的缩进代码包含在if-elif-else这种判断结构中。一般来说,判断、循环、函数、类等语法形式能够通过缩进包含一批代码,进而表达对应语义。但是如print()这样的简单语句是不表达包含关系的,不能使用缩进。

2.注释

在实际的开发中,不管是个人开发还是团队合作开发,为了让别人更容易地理解代码的功能,使用注释是非常有效的方法。

注释就是程序员在代码中加入一行或多行信息,用来对语句、函数、数据结构等进行说明,提升代码的可读性。注释是辅助说明的文字,会被解释器略去,不被计算机执行。如案例2-1中的第一行代码就是注释:

#温度转换.py

Python中有两种注释方法。

·单行注释:以#开头。

#这是单行注释,独占一行

·多行注释:以3个单引号开头和结尾。如下代码以3个单引号开始,以3个单引号结束,就是多行注释。

这是多行注释

print语句不会被执行

print('hello world!')

Python程序代码中的非注释语句将按顺序执行,而注释语句则被解释器过滤掉,不会被执行。

注释主要有3种用途。

(1)标明作者和版权信息

在每个源代码文件开始前增加注释,标记编写代码的作者、日期、用途、版权声明等信息,可以用单行注释或多行注释。

(2)解释代码的原理或作用

在程序关键代码附近增加注释,解释关键代码的作用,增加程序的可读性。由于程序本身已经表达了功能意图,所以为了不影响程序阅读的连贯性,程序中的注释一般采用单行注释,标记在关键代码后面。对自定义函数功能进行介绍的注释说明,则常用多行注释,一般放在函数定义之前。

(3)辅助程序调试

在调试程序时,可以通过单行注释或多行注释临时“去掉”一行或连续多行与当前调试无关的代码,帮助程序员找到程序发生问题的可能位置。

3.变量命名与保留字

在现实生活中,人们使用一些名称来标记事物,如每种水果都有名称:苹果、梨等。在Python程序设计中也使用特定的名称(即变量)来保存和表示具体的数据值。为了更好地使用变量等其他程序元素,需要给它们关联一个标识符,关联标识符的过程称为命名。命名用于保证程序元素的唯一性。

Python的标识符由字母、数字、汉字和下划线相互组合而成,但是首字符不能是数字,中间不能有空格,长度没有限制。如以下均是合法命名的标识符:python、Python、姓名、Book2、python_is_great、_is_it_a_variable。其中python和Python是两个不同的变量,因为标识符对大小写敏感。

一般来说,程序员可以为程序元素选择任何自己喜欢的名字,但是为了程序的可读性,一般以相应的英文单词代替某个变量,如表示姓名、年龄的变量,常用name、age。对于由多个单词组合的命名一般常用3种规范。

①小驼峰法:除第一个单词之外,其他单词首字母大写,这种规则常用于变量,如myStudentNumber。

②大驼峰法:也称为帕斯卡命名法,每一个单词的首字母都采用大写字母,此规则常用于类名、函数名、属性、命名空间等,如class StudentInformation。

③下划线命名法:所有字母均小写,每个单词间都以下划线分割,如my_student_number。

不管用哪个规范对变量进行命名,都需要遵守一定的规则。

①标识符对大小写敏感,Python和python是两个不同的变量名。

②变量的首字符不能是数字,中间不能出现空格。

③不能使用保留字,如案例2-1中的if、for就是保留字,不能作为变量名。

保留字也称为关键字,指编程语言内部定义并保留使用的标识符,是编程语言的基本单词,大小写敏感,Python 3.×中共有33个保留字,如表2-1所示。

表2-1 Python 3.×中的33个保留字

4.赋值语句

程序中产生或计算新数据值的代码称为表达式,类似数学中的计算公式。表达式以表达单一功能为目的。运算后产生运算结果,运算结果的类型由操作符或运算符决定。

在Python语言中,“=”表示赋值,即可将等号右侧的计算结果赋给左侧的变量。包含等号的语句称为赋值语句。基本格式:

变量名=表达式

在Python中进行赋值的方式有多种,有单个变量赋值、同步赋值、交换赋值等。

①单个变量赋值:先运算右边的表达式,再将表达式的值赋给左侧变量。如下列赋值语句先执行右侧的5+6,得到11,再将11赋给左侧的变量a。

>>>a=5+6

②同步赋值:在Python中还可以同时给多个变量赋值,这种方式叫同步赋值。在同步赋值中,Python会先运算右侧的N个表达式,同时将表达式的结果赋给左侧的N个变量:按照位置顺序将右侧表达式的值赋给左侧变量。基本格式:

变量1,变量2,…=表达式1,表达式2,…

例如:

>>>a,b=5,6

左侧的变量和右侧的值会按位置一一对应进行赋值。5会赋给a,6会赋给b。

③交换赋值:将两个变量的值进行交换。基本格式:

变量1,变量2=变量2,变量1

>>>a,b=5,6

>>>a,b=b,a

先对a和b进行赋值,得到a=5,b=6,再经过交换赋值a,b=b,a,此时a和b的值进行了交换,结果是a=6,b=5。