python中主要通过if判断以及while循环来实现流程控制,下面来逐一进行详细说明。
一、if判断语句
if判断分为单分支以及多分支两种情况,首先来说单分支的情况,看如下代码
cmd=input(''>>:)
if cmd == 'quit':
break
上面这段代码就是if单分支的情况,只使用if做条件判断,当然可以把几个if连用,如下代码
oldboy_age=85
age=input('age:')
if age > oldboy_age:
print('too old')
if age < oldboy_age:
print('too young')
if age==oldboy_age:
print('you got it')
上面的代码连用了3个if对同一情景下的多个条件进行了判断,当每个条件之间没有重叠的部分时这样还可以,但如果出现以下的情况就不行了,看如下代码
score=input('score:')
if score >=90:
print('A')
if score >=80:
print('B')
if score >=70:
print('C')
if score>=60:
print('D')
if score <60:
print('E')
上面这段代码如果输入99,则输出结果会是A,B,C,D.因为单分支的情况下每个判断都是独立的,所以程序会把每个条件都做判断然后满足条件就会输出相应的结果,显然这是不行的,这时就需要用到if多分支了,将上面的代码稍作修改
score=input('score:')
if score >=90:
print('A')
elif score >=80:
print('B')
elif score >=70:
print('C')
elif score>=60:
print('D')
else :
print('E')
这时再输入99,输出结果是A,这是因为使用if多分支之后所有判断条件成为了一个整体,程序在判断某一个条件满足之后就会输出相应的结果不再对后面的条件做判断,后面的条件判断的代码也就不会再执行。所以我们可以看出if单分支只适合在同一情景下只有一个判断条件或者多个判断条件之间没有重叠的部分时使用,大部分情况下还是建议使用if多分支,既避免了上面的情况发生也提升了程序运行速度。另外除了0、None、空序列(空字符串、空列表、空元祖、空字典)和False外,其余都可以让if判断成立。
二、while循环
while循环的语法如下
while 条件:
循环体
使用while循环输出0-9的数字,看如下代码
count=0
while count<10:
print(count)
count +=1
上面的代码定义了一个计数器count初始值为0,while条件判断当count小于10时,输出count的值并且让count自增1,然后再做判断直到count=10不满足条件循环终止,这就是最简单的while循环,当然while循环也可以嵌套使用,看如下代码
while True:
name=input('name:')
password=input('password:')
if name='egon' and password=='123':
print('login successful')
else:
continue
while True:
cmd=inpu('>>:')
if cmd=='quit'
break
else:
print('===>',cmd)
break
上面的代码嵌套使用了两层while循环,最外面的while循环控制验证用户名和密码,当用户名和密码输入正确才能进入下一层循环,否则就重新输入一直循环。当进入下一层循环时让用户输入需要执行的命令,如果命令是quit则退出程序,否则执行命令这里用print函数模拟。实际在编程时,我们一般使用一个变量作为while的条件便于控制while循环的退出,上面的代码可稍作修改,看如下代码
tag=True
while tag:
name=input('name:')
password=input('password:')
if name='egon' and password=='123':
print('login successful')
else:
continue
while tag:
cmd=inpu('>>:')
if cmd=='quit'
tag=False
else:
print('===>',cmd)
三、for循环
python中for循环与while循环有所不同,for循环主要用于遍历一个可迭代对象诸如字符串、列表、元祖、字典、集合等,它的语法如下
for 变量 in 可迭代对象:
循环体
在使用for循环时,有时还会用到enumerate()方法,它的作用是将可迭代对象组合成一个索引序列,同时列出数据和数据下标,在字符串中数据为单个字符,在列表、元祖、集合中为其中的元素,在字典中为key值。另外在使用for循环时还有一个常用的方法就是range()。range()方法是用于产生指定范围的数字,可以指定三个值,分别是起始值、结束值、步长,如果不指定起始值默认从0开始取值,在取值时结束值无法取到,在python2中range方法会产生一个列表,在python3中range方法只会生产一个迭代器,在内存中同一时刻只会存在一个值。
四、else、break、continue
1、else
while循环的else语句写在while循环代码块之后,它只有在while循环没有被break打断整个循环执行完之后才会执行。另外不仅while循环可以和else语句一起用,for循环也可和else语句一起使用,使用方法一样。
2、break
break主要用于跳出本层循环,即break语句只能用于终止多层嵌套循环中在break语句上面离它最近的一层循环或者单层循环。
3、continue
continue主要用于跳出本次循环,即continue只能跳出一层循环中某一次循环过程,不执行continue语句后面的循环代码直接进入下一次的循环,一般与if判断一起用。