python 的控制流程

一、Python之for循环

for循环在Python语言的流程控制中是非常重要的,在编程中有很多场景需要使用到for循环。举个例子,当我们需要把字符串中的每一个字符打印出来的时候,我们怎么实现呢?
我们当然可以使用之前学习的指定位置的方式让每个字符打印出来。

s = 'ABCD'
print(s[0])
print(s[1])
print(s[2])
print(s[3])

但是,这是字符串s比较短的情况下可以实现的,当s拥有成千上万个字符的时候,难道我们要为此书写上万行代码吗?这个时候for循环就可以派上用场了。

s = 'ABCD'
for ch in s:
    print(ch) # 注意缩进

在上述代码中,ch是在for循环中定义的,意思是把字符串s中的每一个元素依次赋值给ch,然后再把ch打印出来,直到打印出字符串s的最后一个字符为止。

二、Python之while循环

和 for 循环不同的另一种循环是 while 循环,while循环可以继续进行下去的条件更加简单,只需要判断while循环的条件是否为True即可,当条件为True时,即继续运行下去。
比如:

while True:
    print(1)

  

在上述代码中,由于while的条件一直为True,所以这个代码将会无限的输出1,同学们不要轻易尝试。
我们可以把while循环的条件设置得复杂一些,在运行一定次数后,条件可以自动变为False从而跳出while循环。
比如计算1~100的和。

num = 1
sum = 0
while num <= 100:
    sum = sum + num # 注意缩进
    num = num + 1 # 注意缩进
print(sum) # ==> 5050

  

在上述代码中,while的判断条件是num <= 100,当num小于或者等于100时,循环会继续下去,但当num > 100时,将跳出循环;因为在while循环里面num不断加1,所以num最终会大于100,因此while循环不会无限进行下去。

三、Python之continue继续循环

使用continue,我们可以控制循环继续下去,并跳过continue后面的逻辑,比如,对于字符串s = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ',假如希望输出字符串s中第10个以后的字符,而不是所有字符,这个时候, 我们可以使用continue跳过前面的9个字符。

s = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
num = 1
for ch in s:
    if num < 10:
        num = num + 1
        continue # 当num < 10时,跳过后续循环代码,继续下一次循环
    print(ch)
    num = num + 1

请综合使用while和continue,计算0~1000以内,所有偶数的和。

i = 1
a = []
while True:
    if i > 1000:
        break
    i = i + 1
    if (i % 2) != 0:
        continue
    a.append(i)
print (a)

  

四、Python之break跳出循环

用 for 循环或者 while 循环时,如果要在循环体内直接退出循环,可以使用 break 语句。
比如在前面的无限循环里面,只要在恰当的时机,我们使用break跳出循环,也可以求出1~100的和。

num = 1
sum = 0
while True:
    if num > 100:
        break
    sum = sum + num
    num = num + 1
print(sum)

同样的,对于字符串s = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ',假如希望输出s的前20个字符,而不是所有字符,我们也可以使用break。

s = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
num = 1
for ch in s:
    if num > 20:
        break
    print(ch)
    num = num + 1

请综合使用while True和break,计算0~1000以内,所有偶数的和。

i = 1
a = []
sum = 0
while True:
    if i > 1000:
        break
    if i % 2 == 0:
        a.append(i)
    i = i + 1
for num in a:
    sum = sum +num
print (sum)

五、Python之嵌套循环

就像多层if-else嵌套一样,python的循环也支持嵌套。
我们使用两层嵌套循环输出字符串'ABC'中每个字符和字符串'123'每个字符的排列。

s1 = 'ABC'
s2 = '123'
for x in s1:
    for y in s2:
        print(x + y)

  

在上述代码中,对于外层循环,外层每循环1次,内层就会循环3次,因此,我们将会得到如下结果:

A1
A2
A3
B1
B2
B3
C1
C2
C3

字符串s1='ABC',字符串s2='123',字符串s3='xyz',请输出s1、s2、s3中所有字符的排列。

s1 = 'ABC'

s2 = '12345'

for x in s1:
    for y in s2:
        print(x+y)

  

原文:https://www.imooc.com/code/21967

原文地址:https://www.cnblogs.com/sucretan2010/p/14779240.html