Python表达式解析:如何判断哪些选项是有效的Python语法规则
首先,我们通过一个思考题,来检验大家是否理解了所说语法:

以下哪些选项属于有效的 Python 表达式?需选择所有能够以上述表达式为起始的语法。
A. 3B. ((3)C. (1 * (2 * ( 3* 4 ) ) )D. + 33E. ( ( ( 7 ) ) )
为确保能生成有效的 Python 表达式,你可以在某个地方进行尝试。不过,最好先看看自己是否能够找出哪些才是正确答案。
下面我们来逐一分析每个选项。
大家还记得上节课学的 Python 表达式吗?如果不记得,就可以回顾一下。
根据以下这些表达式,来分析每一个选项:
表达式 表达式 运算符 表达式
表达式 ( 表达式 )
A 选项是正确的,原因在于它仅包含一个数字。我们能够依据此规则获取到数字 3。从表达式着手,将其中的数字进行替换,接着再用数字 3 去替换之前的数字。
B 选项不是有效的表达式。因为从表达式开始考虑,我们仅有三种选择:
使用表达式 运算符 表达式来替换
使用数字替换
使用替换(表达式)。我们需匹配以左圆括号开始的表达式,将其替换为带左圆括号的表达式。应用此规则后,会得到一个左圆括号与表达式。接着从这里开始,我们匹配到了最外层的左圆括号和最外层的右圆括号,且剩下了(3。接下来,我们可以将(3 这个表达式)用带括号的表达式来替换。我们运用这条规则把这个表达式进行替换,不过这里不太符合,因为需要两个右圆括号才能匹配。
这条规则意味着:我们所使用的每一个左圆括号,最终都必须用对应的右圆括号来闭合。因为如此,所以无法生成括号使用未成对的表达式,进而这不是一个合规有效的 Python 表达式。
我们能够生成第三个表达式是因为它具有很多嵌套的表达式。
这里有三个左圆括号,不过也有三个右圆括号与它们配对闭合。
我们以一个表达式作为起始,通过使用这个规则,将其替换为圆括号表达式圆括号,以此来获得这个表达式。
现在我们有了一个起始为数字的表达式,于是我们将这个表达式替换为表达式与运算符以及另一个表达式的组合。
我们依旧保留之前的外层括号。现在我们将这个表达式替换为数字,接着再替换运算符。
所有的步骤我就不写了,我希望大家建立一个基本的概念:
我们可以通过重复替换,来构建像这个一样的复杂表达式。
D 选项不是合法的表达式。我们无法通过这条规则获得一个运算符在最前面的表达式。
以上为这道题的解答。接下来我们着重对 Python 表达式和语句这部分内容进行梳理。
python 表达式和语句
表达式是值,变量和运算符的组合。
单独的一个值是一个表达式,单独的变量也是一个表达式。
Python语句是一段可执行代码。
常见的有这样的语句,比如赋值语句;还有 if 语句;以及 while 语句;再有 for 语句等等。
赋值
赋值具有这样的特性:变量名在首次进行赋值操作时会被创建出来;并且变量名在被引用之前,必须先进行赋值。
序列赋值:
= 1,2print(A,B)1 2
在上面的例子中,写了两个元组,只是省略了它们的括号。
python 使赋值运算符右侧元组内的值与左侧元组内的变量相互对应,接着每次赋予一个值。
高级序列赋值:
a,b,c,d,e,f = '关注编程联盟'print(a,b,c,d,e,f)关 注 编 程 联 盟
右边元素的数目要跟左边的变量数目相同,不然会产生错误
扩展解包赋值:
a,*b = '关注编程联盟'print(a,b)[注 编 程 联 盟]*a,b = '关注编程联盟'print(a,b)[关 编 程 联] 盟a,*b,c = '关注编程联盟'print(a,b,c)[注 编 程 联] 盟
一个变量名带有星号,它收集了序列中那些没有被赋值给其他名称的所有项。
增强赋值语句:
x=1x+=1print(x)
赋值语句总结:
Python 条件语句
Python 的条件语句是依据一条或多条语句的执行结果,也就是 True 或者 False 来确定要执行的代码块。能够通过下面的图来对条件语句的执行过程进行简单的了解。
在 Python 编程里,if 语句是用来控制程序执行的。它的格式是:
if 判断条件:
执行语句……
如果判断条件成立且值为 True,就执行执行语句;如果判断条件不成立,就不执行执行语句。
Python程序语言规定,任何非 0 的值以及非空(None)的值都被视为 true,而 0 或者 None 则被视为 false。
if 判断条件:
执行语句……
else:
执行语句……
当“判断条件”成立(即非零)时,就会执行后面的语句。并且执行内容可以有多行,通过缩进来区分属于同一范围。另外,else 是可选语句,如果需要在条件不成立时执行相关内容,就可以执行 else 后面的语句。
if 判断条件1:
执行语句1……
elif 判断条件2:
执行语句2……
elif 判断条件3:
执行语句3……
else:
执行语句4……
if 语句的判断条件可以用>、=、(大于)、