2.2.6 语句的分隔

分号是C、Java等语言中标识语句结束的标志。Python也支持分号,同样可以用分号作为一行语句的结束标识。但在Python中分号的作用已经不像在C、Java中那么重要了,在C、Java中分号是必需的;而Python中的分号可以省略,主要通过换行来识别语句的结束。例如,以下两行代码是等价的。


01     # 下面两条语句是等价的
02     print( "hello world!")
03     print( "hello world!");

【代码说明】

·第1行代码的输出结果:


hello world!

·第2行代码的输出结果:


hello world!

如果要在一行中书写多个语句,就必须使用分号分隔了,否则Python无法识别语句之间的间隔。


01     # 使用分号分隔语句
02     x = 1; y = 1 ; z = 1

【代码说明】第2行代码中有3条赋值语句,语句之间需要用分号隔开。如果不隔开语句,则Python解释器不能正确解释,会提示语法错误。


SyntaxError: invalid syntax

注意 分号并不是Python推荐使用的符号,Python倾向于使用换行作为每条语句的分隔。简单直白是Python语法的特点,通常一行只写一条语句,这样便于阅读和理解程序。一行写多条语句的方式是不好的实践。

Python同样支持多行写一条语句,Python使用“\”作为换行符。在实践中,一条语句写在多行也是很常见的。例如,把SQL语句作为参数传递给函数,由于SQL非常长,因此需要换行书写,提高代码的可读性。


01     # 字符串的换行
02     # 写法一
03     sql = "select id,name \
04     from dept \
05     where name = 'A'"
06     print (sql)
07     # 写法二
08     sql = "select id,name " \
09           "from dept " \
10           "where name = 'A'"
11     print (sql)

【代码说明】

·写法一只使用了一对双引号,把SQL语句分为select、from、where三部分分别书写。

·第6行代码输出结果如下。


select id,name from dept where name = 'A'

·写法二使用了3对双引号,select、from、where分别对应一对双引号。

·第11行代码输出结果如下。


select id,name from dept where name = 'A'

第二种写法比第一种写法的可读性更强,可以使用空格和制表符对齐语句,使代码显得更工整。对于简短的语句不推荐使用换行的写法,这种写法只会造成阅读障碍。下面这段程序是不合理的换行写法。


01     # 一条语句写在多行
02     print (\
03     "hello world!")

【代码说明】第2、3行代码是一个整体,调用print输出“hello world!”,这种情况不适合分行书写。