这次主要把循环结构的控制语句补上,主要包含while、for、continue、break、循环嵌套。主要写一些基本的认识以及包含的一些实例。当只有唯一路径且只跑一次的时候选择上一节中的选择结构语句就可以了,但是当执行一次或者重复循环执行时就需要另辟蹊径了,那就来认识一下这个蹊径吧。
一、while 语句
1、干啥用?
答:主要用于循环执行程序,既在某种条件下,循环执行某段程序,进而完成对需要重复处理的相同任务处理工作。
2、语法形式长啥样?
答:while 判断条件:
执行语句
其中,执行语句可以是单个语句或语句块。判断条件可以是任何符合要求的表达式,任何非空、非零的值均为True,当判断条件为false时,循环结束。
实例一如下:
1 count = 0 # 给count一个起始值。
2 while count < 5: # 判断条件,判断当前正在参与循环的count值是否大于5,通过是否满足此条件来决定要不要继续执行后边的执行语句
3 print ("The count is :",count) # 打印当前正在循环的count值
4 count = count + 1 # 将原有count值加1后继续循环
5 print("Good bye!!")
运行以上代码可以得到以下结果:
1 The count is :0 2 The count is :1
3 The count is :2
4 The count is :3
5 The count is :4
6 Good bye!! # 当count的值不满足小于5时结束了循环。
在上实例中“count<5”也可以是一个常量 ,用的不多。
实例二、
需求描述:输入两个正整数,求他们的最大公约数。
分析思路:1、比较两个数,并使m>n
2、将m做为被除数,n作为除数,相除后的余数为q.
3、循环判断q.如果q=0,则n即为最大公约数,否则就将n的值给m,r的值给n ,n作为被除数、m作为除数。取余q.继续判断。
代码实例:
1 num1 = int(impurt("请输入第一个正整数: ")) # 用户输入两个正整数。
2 num2 = int(impurt("请输入第二个正整数: ")) 3 m = num1 4 n = num2 5 if m < n: # 判断两个值得大小
6 t = m # 将两个值进行互换
7 m = n 8 n = t 9 r = m % n; # 取余
10 while r! = 0: # 判断余数是不是为0
11 m = n; # 将n的值重新给m
12 n = r # 将除后的余数r重新给n
13 r = m % n # 实际上相当于n与r相除后取余
14 print(num1 "和"num2 "的最大公约数为: "n)
二 、for 语句
1、具有啥特点?
答 :可以遍历任何一个序列的项目,比如一个列表、元祖、或者一个字符串
2、语法形式长啥样?
答:for 循环索引值 in 序列:
循环体
其大致的执行逻辑是:每次循环、判断循环索引值是否还在序列中,如果在,那就取出该值,提供给循环体内的语句使用,如果不在,则结束循环。
实例一、循环吧一个字符串给遍历并打印出来
1 for letter in "python": 2 print("当前正被遍历的字母是: "letter)
打印结果:
1 当前正被遍历的字母是: p 2 当前正被遍历的字母是: y 3 当前正被遍历的字母是: t 4 当前正被遍历的字母是: h 5 当前正被遍历的字母是: o 6 当前正被遍历的字母是: n
实例二、循环吧一个列表中的元素打印出来
1 fruits = ["banana","apple","mango"] # 有一个列表fruits并其中含有三个值
2 for fruit in fruits: # 将列表fruits中的元素遍历取出并给fruit
3 print("当前正被遍历的元素是: "fruit) # fruit拥有的值打印出来
4 print("Good bye!!!")
拓展:
1、生成整数序列的内置函数range()
1 sum = 0 2 for x in range(0,101): #通过内置函数,可以去到从0到100的整数
3 sum = sum + x #将从0到100中取出来的值相加。
4 print(sum)
2、通过索引来执行循环,建立索引的内置函数len()
1 fruits = ["banana","apple","mango"] 2 for i in range(len(fruits)): # 使用len()函数和range()函数将列表fruits中的元素都对应的按整数所需建立下标索引,并将循环下边索引
3 print("当前正被遍历的水果是:"fruits[i]) # 将循环到的下标索引在fruits中对应位置的元素打印出来
4 print("Good bye!!")
三、continue 和 break 语句
break语句在while和for语句中均可以使用,一般放在if选择结构中,一旦break语句被执行,则会导致整个语句体直接结束。用的较少
两个语句的语法实例:
1 i = 1
2 while i < 5: 3 i +=1
4 if i % 2>0 #当一个数除以2大于0时跳过输入当前值
5 continue
6 print(i) #输出双数2、4
7 i=1
8 while 1: #当循环条件成立是就打印i
9 print(i) #打印出1、2、3、4、5
10 i +=1
11 if i>10 #当i的值大于10时结束全部循环
12 break
拓展内容
四、循环嵌套
在python中允许一个循环体里面嵌入另一个循环。可以在一个循环体内嵌入另一个循环体。如while循环中可以嵌入for循环。同样,可以在for循环中嵌入while循环。一般嵌套层不超过3层。当然也有一些注意事项,如下:
1、循环嵌套时,外层循环和内层循环间是包含关系,即内层循环必须被完全包含在外层循环中。
2、当程序中出现循环嵌套时,程序每执行一次外层循环,则其内层循环必须循环所有次数后,才能进入到外层循环中的下一次循环。
实例1:
1 for i in range(1,10): 2 for j in range(1,i+1) 3 print(i,"*",J,"=",i*j,"\t",end="") #end=""作用是不换行
4 print("") #仅换行作用
以上代码就是答应九九乘法表的代码。
实例2:
思路:判断一个数m是否为素数,只要依次用2、3、4、、、m-1做除数去除m,只要有一个能被整除,m就不是素数。
1 m = int(input("请输入一个整数:")) 2 j = 2
3 while j <= m-1: 4 if m%j==0: 5 j = j+1
6 if (j>m-1): 7 print(m,"是素数") 8 else: 9 print(m,"不是素数" )