小编常在C / C ++语言中看到很多分号。在代码中,分号表示语句终止。Python并未强制使用分号来分隔语句,但因为分号导致Python乱码的情况可不少。
1. temp =10;if temp <12: print('It is cold'); cold = True;
小编准备了一篇小指南,解释为什么不应该在Python中使用分号,并列出了少数特殊情况。
语句终止符
在许多大众的编程语言中,需要在每个语句的末尾添加分号。
1. int c =10;
2. int a = 5;printf('In C++, semicolon at the end is must');
但Python并非如此。Python是一种简洁的编程语言,你不需要添加不必要的字符和语法。在Python中,一条语句结束于一行的结尾(方括号,引号或括号除外)。
1. c = 10
2. a = 5print('No semicolons in Python')
语句分隔符
Python中的分号表示分隔,而不是终止。它允许在同一行中编写多个语句。
1. print('Statement1'); print('Statement 2'); print('Statement 3')
此语法允许在单个语句的末尾加上分号:
1. print('WhyGod? WHY?');
该语句表示print('...'),然后在下一句终止。因此它实际上是两个语句,其中第二个为空。即使该语言允许使用分号分隔语句,但大多数Python程序员都不会在其代码中使用它。
在Python中允许使用分号是为了使两种编程语言之间的转换变得稍微容易一些。具有Java,C ++和PHP背景的程序员习惯性地将(无用的)终止符放在每一行的末尾。此外,在下列这些情况下,分号也会派上用场:
从Shell运行脚本
最常见的一种情况是使用python-c' <script> '从shell运行一个简短的脚本。因为不能在此处使用缩进,所以需要键入许多用分号分隔的表达式。以下面语句为例:
1. python-c 'import math; t = math.pi;print(int(t))’
另一个用例是exec语句:
1. exec('fori in [100,200,300]: print(i);print(i*2)')
评估表达式的副作用
在Jupyter Notebook之类的交互式环境中工作时,最后一个表达式返回的值将以字符串形式输出。评估某个函数的副作用真的会很烦人,在matplotlib中查看这个问题会产生赘余。
这实际上是调用.set_title(...)函数的返回值。为了抑制输出,可以在最后一条语句的末尾添加一个分号:
1. axis.set_title('Histogram',size=10);
Less is more.删掉那些多余的分号吧!