Python基础(三)
程序的三大基本结构(再复杂的程序也是由这几部分组成的)
顺序结构:
顾名思义,这个结构中的各部分按顺序执行,比如吃饭,我们首先要洗手,然后准备碗筷,最后吃饭,如果把吃饭看作是一个程序,那么吃饭这个程序就是顺序结构的。
如上图1-1,由四边形和箭头组成的图形称为流程图,常用来表示程序的运行过程,不过图示经过了一定的简化,并非标准的流出图。
分支结构(也有称选择结构的):
果园有许许多多的果树,树上有很多的树叶,它们长在各自的枝条上,这些枝条称为树枝。分支就是类似树枝的概念,秋天到了,果树上的果子熟了,但也有的没熟,长了成熟果子的枝条,我们把果子摘下来,果子还没有成熟的枝条,我们就让它再长一会,这就是条件选择的思想。
Python中使用if 语句(条件语句)用于控制程序的执行,格式如下:
if 判断条件:
执行语句
else:
执行语句
执行语句 即执行对应的行为的语句,比如在上面果园的例子中,摘下成熟的果子就相当于执行语句,值得注意的是不摘果子让果子再长一会同样也是执行语句。
判断条件 往往是含有逻辑运算符、关系运算符等的表达式,在上面果园的例子中,果子是否熟了就是判断条件,如果熟了执行摘果子,如果没熟,执行等待果子成熟。
循环结构:
理解起来有一定难度,建议把下面的代码自己敲一遍,然后试着修改里面的数字、变量
观察效果
循环,顾名思义,就是重复的意思,每天都要吃饭,就可以看作是循环,当新的一天到来,执行吃饭的行为,在Python中,循环主要通过for和while来实现,简称他们为for循环和while循环。
书写格式可以参考如下:
for i in range(1,6) :
print(i)
switch = True
while switch :
print(“开关是打开着的”)
第一段程序是一个最简单的for循环
in是Python中的成员运算符,除了in以为还有一个not in,单独使用时和单词字面含义相同,分别对应在里面和不在里面,可以用来判断一个对象是否存在于指定序列(可能有点难以理解,举个例子,比如1在1到5之间,可以简单理解为1 in 1-5)
range()是一个函数,range(1,6)就相当于上面例子里的1到5,注意是1到5,不是1到6,最后一位是不包括在内的。
后面是一个print()函数,这个已经用的很多了,不再赘述
整段程序连起来的效果就是打印出1、2、3、4、5五个数字
单独看 for i in range(1,6): 这条语句的效果实际上是执行五次冒号后面的语句,并且每次执行前为i这个变量进行赋值,每次赋值的值都不一样,分别从1-5
第二段程序稍微简单一点,是一个简单的while循环,switch为一个定义的布尔型变量,while循环会判断while后面紧跟的表达式是否为True(建议这么记,只要while后面跟着的东西不为0,就进入循环,因为实际上while后面跟的是负数和正数都会进入循环,即非0为真),很明显,switch我们定义的就是True,那么程序就会进入循环,一直打印 开关是开着的,你将会看到屏幕不停的输出,永无休止,这种永无休止的循环,我们称为死循环。
for和while都是当型循环,意思是当条件满足时进入循环,不必太纠结当型循环和直到型循环,直到型循环在Python可以借助break来实现。
循环嵌套:
如果循环还没有搞清楚的,往上翻,先把循环弄懂,我们下面通过一个案例去分析
Python中很多东西是可以嵌套的,包括if语句也是可以的,它们的嵌套用缩进来表示。
上图为3*3的一个循环嵌套结构,Python的语句是自上而下运行的(可以说所有编程语言都是如此),
首先是外层的for循环,也就是i所在的那个循环
range的范围0-2,故一共执行三次,
第一次执行的时候i=0,进入内层循环,也就是j所在的那个循环,范围也是0-2,
内层循环包括一条输出语句,可以输出此时的i和j的值
所以可以看到第一行输出了三段内容,i均为0,而j从0一直变化到2
第二次执行的时候i=1,进入内层循环
所以可以看到第二行还是输出了三段内容,i均为1,而j从0一直变化到2
…以此类推,不妨试着修改代码,看看会有什么变化
break、pass、continue:
首先看pass,在学习之前,不妨找出之前的代码,在程序的任何地方加上pass,然后观察效果,你会发现…毫无变化…
没错…pass语句在Python中就是空语句,它什么也不会做,你可以当pass就是让计算机发了个呆,可以结合最上方果树的例子,对于成熟的果子,我们要摘下它,对于为成熟的果子,那么我们就应该是pass,选择原地挂机
break,这个单词在英语中译为打破,它的效果和它的翻译一样,就是打破整个循环,以上面while循环的案例来说,如果在输出语句的后面加上一个break,你会发现,它输出一次就停止了,不会再死循环,因为break打破了循环,终止了程序。
switch = True
while switch :
print(“开关是打开着的”)
break
continue,它的效果类似break,也是打破,但它只能够打破循环中的一小部分,并不会退出整个循环。
我们修改循环嵌套的案例,并对比效果,可以发现,第一次外层循环全部被跳过了