Python 入门 08 —— 分支与循环:if else 、while 、for in

Python中没有 switch case 多分支选择语句。

一、if else 选择语句
1、单分支,条件为True,则执行下面的语句,否则不执行下面的语句。

if 条件 :
    语句

2、多分支,增加了else语句,过程还是一样:条件为True,则执行下面的语句,否则不执行下面的语句。

if 条件1 :
    语句1
esle :
    语句2

或:

if 条件1 :
    语句1
esle 条件2 :
    语句2

或:

if 条件1 :
    语句1
esle 条件2 :
    语句2
esle 条件3 :
    语句3
esle 条件4 :
    语句4
esle :
    语句5

3、分支嵌套

if 条件1 :
    语句1
    if 条件2 :
        语句2
            if 条件3 :
                语句3

二、while 循环语句
当条件满足时,执行循环体中的语句。

while 条件 :
    循环体

三、for in 语句

for x in 可迭代对象 :
    循环体

这个语句中在 in 后面直接用可迭代对象,不需要象数列一样列出所有的元素,是因为 for in 语句的实际执行过程是:
1、用iter(可迭代对象),将可迭代对象转换成一个迭代器对象;
2、用next(迭代器对象)来逐个取出可迭代对象中的元素;
3、将元素代入循环体执行。

即上面的语句等价于以下语句:

x = iter(可迭代对象)
while True:
    try:
        xx = next(it)
        循环体(xx)
    except StopIteration:
        break

例如:

for x in dict({1:36,2:37,3:38}).values(): print(x,end=' ')  # 显示:36 37 38

it = iter(dict({1:36,2:37,3:38}).values())
while True:
    try: print(next(it),end=' ')
    except StopIteration: break
# 显示:36 37 38

由上可见,在Python中,for in 语句实际是 while 语句的一个包装。

四、continue、break
continue、break 通常出现在循环体语句。

在执行循环体时,遇见 continue ,则忽略其后的语句,直接跳转到循环的第一名去执行,例如:

for i in range(5): print(i,end=' '); print(10*i,end=' ')    # 0 0 1 10 2 20 3 30 4 40
for i in range(5): print(i,end=' ');continue; print(10*i,end=' ')    # 0 1 2 3 4

在执行循环体时,遇见 break ,不仅之后的语句不执行,而且立即跳出当前循环,使循环提前结束,例如:

for i in range(5): print(i); break; print(10*i) # 0

五、在循环语句最后添加 else 语句
在 while 和 for in 循环语句中都可以最后加上一个 else 语句。当循环结束后,执行一次 else 语句。例如:

while 条件:
    循环体
else:
    语句
for x in 可迭代对象 :
    循环体
else:
    语句

else 语句是在循环结束后再执行,那这一句是否可以不用 else 关键词引导,而直接放在循环语句的下面呢?循环体中如果没有 break 关键词,else 是显得有点多余,但在有 break 时,情况就不一样了:在执行循环体时,遇见 break,不仅跳出循环体,而且 else 后面的语句也不会执行了。例如:

for i in range(10): print(i,end=' ')
else:print(i+1000,end=' ')
print(i+2000)
  # 显示:0 1 2 3 4 5 6 7 8 9 1009 2009


for i in range(10): 
    print(i,end=' ');
    if(i>=6): break
else:print(i+1000,end=' ')
print(i+2000)
  # 显示:0 1 2 3 4 5 6 2006

六、循环作用域
Python 语言中没有循环作用域这个说法,也就是说,变量在循环语句内不形成特定的作用域:循环语句内定义的所有新变量,在循环语句外都可以访问。例如:

i = 1
while i<=8: j = i+10; i += 1

for n in range(20): m = n + 1000

print(i,j,n,m)  # 9 18 19 1019

———————————————— 本篇完 ————————————————

看完之后,麻烦您顺手点击下方 “点赞” 两个字给我点个赞吧 ^-^ , 谢谢您了。

如果您还能像我小学一年级班主任好老师那样,给我随心写上几句表扬或批评的话语,那真是感激不尽!

在我人生的道路上,有了您的鼓励和指导,我一定成长快快。

发布了28 篇原创文章 · 获赞 6 · 访问量 2281

猜你喜欢

转载自blog.csdn.net/Jeff888999/article/details/103935636