for与for-else循环

# 主要用来遍历/循环 序列或集合、字典
for target_list in expression_list:
    pass
a  = ['apple','pear','orange']

for x in a:
    print(x)
apple
pear
orange

代码块可以嵌套代码块

a  = [['apple','pear','orange'],(1,2,3)]

for x in a:
    for y in x:
        print(y)
apple
pear
orange
1
2
3

如何打印到一行呢

a  = [['apple','pear','orange'],(1,2,3)]

for x in a:
    for y in x:
        print(y,end=' ')
    print()
apple pear orange 
1 2 3

for ... else 好像实际生活中也没什么用

a  = [['apple','pear','orange'],(1,2,3)]

for x in a:
    for y in x:
        print(y,end=' ') # 如果不显示指出end,默认是 \n
    print()    
else:
    print("list a is gone")
apple pear orange 
1 2 3 
list a is gone

break vs continue

break 强制跳出当前for循环,continue跳过本次循环

break

a = [1,2,3]

for x in a:
    if x == 2:
        break
    print(x)
else:
    print('EOF')

必须理解,易出bug:for循环中如果强制break是不会执行else语句的

1

continue

a = [1,2,3]

for x in a:
    if x == 2:
        continue
    print(x)
else:
    print('EOF')
1
3
EOF

多维度循环跳出

a  = [['apple','pear','orange'],(1,2,3)]

for x in a:
    for y in x:
        if y == 'pear':
            break # 只是退出了内循环,外循环还是在执行
        print(y)    
else:
    print("list a is gone")

外层的else会执行,原因是这里的else是和外层配套的

apple
1
2
3
list a is gone

results matching ""

    No results matching ""