4. Python语言的控制流程二
4.4 Python之for循环
for循环在Python语言的流程控制中是非常重要的,在编程中有很多场景需要使用到for循环
s = 'ABCD'
for ch in s:
print(ch) # 注意缩进
在上述代码中,ch是在for循环中定义的,意思是把字符串s中的每一个元素依次赋值给ch,然后再把ch打印出来,直到打印出字符串s的最后一个字符为止
示例
班里考试后,老师要统计几位同学的平均成绩,已知5位同学的成绩用list表示如下:
L = [75, 92, 59, 68, 99]
请利用for循环计算出平均成绩
# Enter a code
L = [75, 92, 59, 68, 99]
sum = 0.0
for score in L:
sum+=score
print(sum/len(L))
4.5 Python之while循环
和 for 循环不同的另一种循环是 while 循环,while循环可以继续进行下去的条件更加简单,只需要判断while循环的条件是否为True即可,当条件为True时,即继续运行下去。
比如:
在运行一定次数后,条件可以自动变为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循环不会无限进行下去
示例
请求出1~10的乘积
# Enter a code
sum = 1
x = 1
while x<=10:
sum*=x
x=x+1
print(sum)

4.6 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以内,所有偶数的和
# Enter a code
sum = 0
point = 0
while True:
if point>1000:
break
if point%2==0:
sum+=point
point=point+1
print(sum)
4.7 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以内,所有偶数的和
# Enter a code
sum = 0
point = 0
while True:
if point>1000:
break
if point%2!=0:
point=point+1
continue
sum+=point
point=point+1
print(sum)
4.8 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中所有字符的排列
# Enter a code
s1 = 'ABC'
s2 = '123'
s3 = 'xyz'
for x in s1:
for y in s2:
for z in s3:
print(x + y+z)