语法和语义,程序格式 |
本页介绍与 Python 编程有关的几个重要概念和问题。
语法和语义Python 的程序是具有一定排列形式的一些字符行,但并不是任意一组字符行都是 Python 程序。Python 对其程序和程序的组成部分都有形式上的要求,这种形式要求就是 Python 的语法。就像在自然语言里一样,并不是所有字符序列(例如,中文字的序列)都是相应语言里的合法句子(例如中文句子)。如果一串中文字不符合中文对句子的形式要求,我们可以说“这根本不是中国话”;类似情况下也可以说“这写的根本不是 Python 程序”。我们在讨论 Python 程序的每一种结构时,都会提到它的形式,也就是说明该种程序结构的语法。例如,二元运算符(例如 +, * 等)的两边都应该是运算对象,连续出现两个二元运算符就不合语法(例如 3 + * 5)。 如果送给 Python 系统的一些字符行不符合 Python 语言的语法要求,那就不是 Python 程序。Python 系统在处理程序输入时可以检查出所有不符合语法的情况,并给出特定形式的语法错误报告(错误信息)。 在用一系列程序元素(数、字符串、运算符、变量等)作为部分构成一种复杂的结构时,Python 语言对其结构不仅有语法要求,对前后出现的元素之间的关系还可能有进一步的要求,这是由程序的上下文形成的关系(上下文导致的约束关系,上下文关系),我们把 Python 语言在这些方面要求称为 Python 程序的静态语义(主要是类型要求)。例如 'abc' * 5 是类型正确的表达式,但 'abc' / 5 和 'abc' + 5 都不是类型正确的表达式。 如果送给 Python 的一段语法上合法的程序违背了 Python 的静态语义要求,Python 系统也会报告错误,例如,输入表达式 'abc' / 5,Python 系统可能给出下面错误信息: "TypeError: unsupported operand type(s) for /: 'str' and 'int'"这说明 Python 系统发现了一个类型错误(TypeError)。 满足 Python 的语法和静态语义要求的程序称为结构良好的程序(良结构的程序)。 写出的一段在语法和静态语义上都正确的程序可以被 Python 系统执行,产生相应的效果,这就是该段程序的语义。非“良结构”的代码不能执行,它们没有语义。 我们写程序总是有一定的目的,例如是为了计算出所需的结果,或得到某种执行效果。这实际上是说,为了实现某种预期的作为编程目标的语义。 Python 程序和格式Python 语言对程序的格式有一套基本的强制性的要求,将其程序的格式也看作是程序语法的一部分,程序的格式会影响到程序的语义。一个 Python 程序由一些代码行组成,这些代码行的排列方式,主要是它们的退格形式,表达了程序的结构。有关规定主要是为了突出地显示程序的结构:
|
本页及相关页面(除另声明者外)由裘宗燕创建维护,可自由用于各种学习活动。其他使用需得到作者许可。 |