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)

image

for + break
for + continue
for + else
这三种关键字与for连用产生的效果与 while+break,while+continue,while+else效果一致

range 关键字

第一种:range(10)

从头开始,顾头不顾尾

第二种:range(3, 10)

自定义起始位置,顾头不顾尾

第三种:range(1, 10, 3)

第三个数用来控制步长(隔多少距离取值)

image

image

在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()

image

打印 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()

# 结束

image

posted @ 2021-11-05 15:57  elijah_li  阅读(24)  评论(0编辑  收藏  举报
//一下两个链接最好自己保存下来,再上传到自己的博客园的“文件”选项中