2.4 基本结构

2.4 基本结构

1.顺序结构

顺序结构是最简单的程序结构,也是最常用的程序结构,只要按照解决问题的顺序写出相应的语句就行,它的执行顺序是自上而下,依次执行。例如:

这段程序代码就是顺序结构的形式,会按照自上而下的顺序一句一句地执行。先给长和宽赋值,再算面积、周长,最后输出面积和周长的值。

2.分支结构

分支结构是控制程序运行的一类重要结构,它的作用是根据判断条件选择相应的程序语句执行,不满足条件的分支中语句块不会被执行。它的基本格式是:

if、elif、else都是保留字,在if、elif后面必须给出条件表达式,只有在满足该条件的情况下,即表达式的结果为True,才会执行该句下面的语句块。else后面不用放条件表达式,表示不满足if和elif语句中的所有条件。

案例2-1中的代码就使用了选择结构:

在这段代码中,当输入的内容以F或f结尾时,则会执行语句“c=((eval(t[:-1])-32)/1.8)”所在的语句块,而与之相对的elif和else及它们包含的语句块均不会被执行。同样的,当输入的内容以C或c结尾时,则会执行“f=eval(t[:-1])*1.8+32”所在的语句块,而与之相对的if和else及它们包含的语句块均不会被执行。当结尾字符既不是F或f,也不是C或c时,else中包含的语句“print('输入格式错误')”会被执行,而if和elif对应的语句块则不会被执行。

3.循环结构

循环结构也是控制程序运行的一类重要结构,与分支结构控制程序的执行相似,它的作用是根据判断条件决定是否将一段程序代码重复执行一次或多次。它的基本结构有两种,一种是while结构,另一种是for-in结构。

(1)while结构

while结构的基本格式:

当条件表达式结果为真时,执行语句块1。每次执行完语句块1后,回到条件判断的语句再次进行判断,如果仍为真,则继续执行语句块1,直到条件表达式结果为False,则结束循环,执行语句块2。

例如,重复画10个圆,如图2-2所示。

图2-2 多圆成花

实现代码如下:

n的初始值是0,循环的判断条件是n<10,只要n的值小于10,则会不停地执行画圆和转向的语句,每画一个圆,n的值就增加1,然后再次进行判断。一直到n的值等于10,则结束循环,执行“turtle.done()”语句。

while循环还有一种特殊的无限循环,在循环体中设置某个条件,当条件被触发时强制退出。例如,绘制五角星(图2-3),并用红色填充。代码如下:

运行结果如图2-3所示。

图2-3 五角星

(2)for-in结构

for-in结构的基本格式是:

当变量的值在指定范围内时,就执行语句块1,每执行一次,变量的值就按指定方式发生改变。当变量的值变化到不在指定范围内时,则结束循环,执行语句块2。例如,使用循环来实现图2-4的绘制。

图2-4 螺旋体

“for i in range(200)”指的是变量i从0开始计数,一直到199为止,每次循环加1,即循环体运行200次。循环体中3个语句的功能分别是选择颜色,画一条长度为2*i的线条,再右转89°。重复执行200次后结束循环。