在了解各个语言支持的数据类型之后,接下来要对比的,就是各种语言支持的各种控制结构。
1、选择控制结构
Python的选择语句if/elif/else : 语法含义上和C++、JAVA语言没有区别,只是在语法格式上有所不同。首先,采用elif作为else if的缩写(其他的脚本语言中也大部分是这样),其次,对于每一个选择条件,有冒号作为截止,其他的语言都是采用{}来标识代码段的。Python中是没有类似于JAVA和C++中的switch语句的,至于原因,是因为python中有一个很好的方式能够代替switch,这里先卖个关子,以后再说。
2、循环控制结构
C++和JAVA中都支持for、while和do while这三种循环结构。Python中同样存在while和for循环,但是不支持do while循环。虽然Python中同样提供for循环,但是它for循环的语法,和C++中不太一样,但是和JAVA中支持的for in 是一样的。从下面的样例中可以看出来,Python中的for循环,只能是基于一个可以循环取值的sequence来操作的;它并不能支持支持我们从i=0循环到i=100;但是类似此类的循环逻辑是非常常见的,所以python通过一个函数range来弥补这个缺陷,我们通过range(100)取到的就是从0-99的自然数集合,通过对range(100)进行for循环,和从i=0一直++i到100的效果是一样的。
样例:
for i in a:
print i
while循环和C++以及java一样,都是通过True、False语句来判断是否继续循环,当然语法拼写上也略有差别:
while(a<100):
a = a+10;
print a
在C++中支持continue、break语句中断循环,JAVA中还支持通过标记退出到执行循环(用于嵌套循环中),Python中也支持break和continue语句退出循环。除此之外,它还提供了一个与for配套使用的else语句,用于完成循环正常结束后执行的逻辑,如果循环是break退出的,则这段逻辑不会被执行。
for i in a:
if i == 3:
break;
else:
print "i‘m else"
可以看出来,从控制语句上来说,python和c++以及java并没有很大的区别。但是在语法的书写上,不是很习惯,总是容易写错。对于增加的for else的逻辑,个人感觉意义不大,反而可读性不高,毕竟else的意思是不然就,很难记住其真正的含义是正常完成才执行。