python流程控制
内容概要
- while + continue
- while + else
- 死循环
- for循环
- range 关键字
- for 循环的嵌套使用
while + continue
while i < 10:
if i == 5:
# 关键词continue结束本次循环,重回到循环条件判断
i += 1
continue
print(i)
i += 1
continue会让循环体代码直接回到条件判断处重新判断
while + else
i = 0
while i < 7:
if i == 5:
i += 1
break
print(i)
i += 1
else:
print('嘿嘿嘿')
当while没有被人为中断的情况下(break)才会执行else下面的代码
死循环
i = 0
while True:
print(i)
死循环会让CPU极度繁忙甚至奔溃
for循环
注意注意:
在一些场景中,如果想要for循环不执行它的子代码,可以把可迭代对象(name_list)变为空列表,或者其它表示空的东西
for name in name_list:
pass
for循环能做到的事情while循环都能做到
但是for循环更加简洁,而且在循环取值问题上更加方便
name_list = ['elijah', 'jason', 'egon', 'jack']
for name in name_list:
print(name)
for + break
for + continue
for + else
这三种关键字与for连用产生的效果与 while+break,while+continue,while+else效果一致
range 关键字
第一种:range(10)
从头开始,顾头不顾尾
第二种:range(3, 10)
自定义起始位置,顾头不顾尾
第三种:range(1, 10, 3)
第三个数用来控制步长(隔多少距离取值)
在python2.x中,range会生成一个列表
在python2.x中,有一个xrange也是迭代器(老母猪)
在python3.x中,range是一个迭代器(老母猪)(会生成数据), 节省内存空间
for循环的嵌套使用
乘法口诀表的打印
for i in range(1, 10):
for j in range(1, i + 1):
print('%s * %s = %s' % (i, j, i*j), end=" ")
print()
打印 ASCII 表
# 1、一共16行,开一个循环16次
# 2、一共8列,每列数字之间相差16,再开一个循环
# 打印16行
for i in range(16):
# 打印 8 列
for j in range(8):
# 每行两数之间相差16
num = j * 16 + i
if (num == 8) or (num == 9) or (num == 10) or (num == 13):
# 打印数字
print('{:>5}:'.format(num), end=' ')
# 打印空格
print('{:<5}'.format(' '), end=' ')
else:
# 打印数字
print('{:>5}:'.format(num), end=' ')
# 打印数字对应的字符
print('{:<5}'.format(chr(num)), end=' ')
# 每打印完 8 列换行
print()
# 结束