Python的学习总结(二)——流程控制
条件分支
if-else结构
语法:
-
if 布尔表达式:
代码 -
if 布尔表达式:
代码else:
代码 -
if 布尔表达式:
代码elif 布尔表达式:
代码... ... else:
代码
注意:
-
if语句不会影响和自己平级的其他结构
-
if和else中的代码不可能同时发生
代码块:
-
书写代码的块级结构
-
python中用冒号和缩进来表示代码块
-
其他语言中:{}来表示代码块
嵌套使用
if-elif-else结构中中,可以在任意一个代码块中嵌套if结构(三种中任意一种都可以)
score = int(input('请输入你的分数:'))
if score >=0 and score <= 100:
if score < 60:
print('不及格')
elif score < 70:
print('及格')
elif score < 80:
print('普通')
elif score < 90:
print('良好')
else:
print('优秀')
else:
print('超出范围')
else悬挂问题
tips: if或者else里面定义的内容,会泄露到上一级结构中
-
C语言中if语句会和最近的else组成一个整体
有可能当前结构并不属于该if结构---称之为else悬挂问题
-
python可以很好地规避else悬挂问题
** 依靠严格的缩进**
断言
assert:是一个关键字
含义:判断assert之后的布尔表达式是否为真,如果为真则正常执行程序,如果为假,立刻终止程序并且抛出异常(AssertionError)
语法:
a = 1
b = 2
assert a < b
print('......')
循环流程
while循环
循环:重复执行代码
语法:
while 布尔表达式:
代码(循环体)
注意: 控制while后面的布尔表达式,可能会出现死循环,也可能出现正常终止
死循环:无限循环
合理的控制循环条件:
while True
while 1
python2:
-
True是一个保留字,可以被修改
-
每次执行while True的时候会对True的值进行校验
-
while 1的执行效率更高
python3:
-
True是一个关键字,是不可变的
-
执行while True的时候不需要进行校验
-
while True 与 while 1的效率是一致的
for循环
也称为计数循环
**可迭代对象:是指拥有迭代器的对象 **
**迭代器:是一个特殊的可迭代对象 **
可迭代对象:str、list、tuple 类似于这样的数据,我们称为可迭代对象
语法:
for 变量 in 可迭代对象:
代码(循环体)
range
是一个对象
**range的参数必须是整型 **
-
range(stop)
返回一个range对象
start:默认为从0开始
stop:结束的值(不包括该值本身)
-
range(start, stop[, step])
返回一个range对象
start:开始的值(包括该值本身)
stop:结束的值(不包括该值本身)
step:步长(可以是正数也可以是负数)
-
range对象是一个可迭代对象
补充
知道循环次数:for循环
不知道循环次数但是知道循环条件:while循环
break
跳出本层循环,之后的循环不再执行
continue
跳出本次循环,之后的循环不影响
循环嵌套
多个循环之间,可以任意嵌套使用
-
while里面套while
-
while里面套for
-
for里面套while
-
for里面套for
九九乘法表
for a in range(1,10):
for b in range(1,a+1):
print('{0}*{1}={2}'.format(b,a,a*b),end=' ')
print()