一:循环语句:
什么是循环:重复做某一件事情。
生活中的循环:表,地球公自转
代码中什么情况下会使用循环:
当一段代码需要重复并且连续的时候需要用的循环。
循环三大条件: 1.定义循环的起始值
2.循环结束的条件
3.起始值递增
无限循环:死循环造成死循环的条件:1.当循环条件一直满足的情况(大于小于写错了,)递增条件没有写。
(1)while循环
while True
什么情况下写死循环:当不知道循环结束条件的时候。
注意:在程序中0代表False其他数字代表True
break 结束全部循环
continue 结束本次循环,进行下次循环
while…else…当循环正常结束时就执行else当循环通过braek结束的时候不执行else。
while...else练习题:
1.1-10之和num=1 sum=0 while num<=10: print(num) sum=sum+num num=num+1 print('1到10的和为:%d'%sum)2.1-100中奇数和偶数之和
num=1 osum=0 jsum=0 while num<=100: if num%2==0: osum+=num else: num%2!=0 jsum+=num num=num+1 print('1-100的偶数和为:%d'%osum) print('1-100的奇数和为:%d'%jsum)3.1-100被3整除的数之和
num=1 sum=0 while num<=100: if num%3==0: sum+=num num=num+1 print('1-100能被3整除的数的和为:%d'%sum)4.倒叙输出1-10
num=10 while 0<num<=10: print(num) num-=15.输入一个数,求它的阶乘
sum=1 a=0 while a<n: sum*=a+1 a+=1 print('%d的阶乘为:%d'%(n,sum))6.输出所有的三位水仙花数(例子:153=1*1*1+5*5*5+3*3*3)
n=100 while n<=1000: ge=n%10 shi=n//10%10 bai=n//10//10%10 if ge*ge*ge+shi*shi*shi+bai*bai*bai==n: print(n) n+=17.循环录入学生的成绩并求出平均分,当录入负数时提示录入错误,当输入over时提示结束,最后输出总成绩,平均分以及录入了多少个成绩
zcj=0 n=0 while True: grade = input('请输入第%d个学生的成绩:'%(n+1)) if grade=='over': print('录入结束!') break elif int(grade)<0: print('录入错误!') continue zcj+=int(grade) n += 1 print('总成绩为:%.1f,平均成绩为:%.1f,总共录入%d个学生成绩'%(zcj,zcj / n,n))8.while...else
num=1 while num<=10: print(num) num+=1 if num==7: break else: print('循环结束了!')
(2)for循环
for循环(一般结合数据结构使用)
格式:for 变量名称 in 列表
for会结合range()函数一起使用
range():生成一堆的数据,将数据存储在列表(容器)中 range范围的意思,
range(1,100) 1<=x<100 1为起始值
100为最大值,取不到最大值
Range(1,100,3) 3为步长 即每次增加的值列表list[]
(3)for while双层嵌套循环
内层循环先结束,外层循环才结束。先写内循环,再写外循环。
练习题:星星
(1)
(2)
(3)
(4)
(5)
(1)
首先分析出总共有5行星星,第一行有1个星星,4个空格,每行的星星数随着行数+1 星星数+1 空格-1
因此我们应该要写三个循环,一个循环控制星星数,一个循环控制空格数,一个控制输出的行数。
首先我们写控制星星的循环:
这时候我们就发现5行所有的星星都在一行输出了,但是这并不我们要的结果,所以我们要在每行星星循环完后把空格的循环加上,如下:
这时候我们发现空格循环已经加在了里边但是所有结果还是在一行,所以我们还要在每一行的星星和空格循环结束后,加入一个print(),如下:
至此,我们已经打印出了我们想要的图形,但是我们会发现代码很长,但是,最总要的一点来了,认真观察的同学已经发现规律了,本章开头已经说了,循环是什么,循环是我们一直重复的做一件事,而上边的代码我们就在重复的做两件事,输出第一行的星与空格,然后输出第二行的星与空格,,,,,直到第五行,每一行的星与空格的输出也各自是一个循环,星星数i每次循环+1,空格数j每次-1,所以我们先把输出一行星与空格的代码块Ctrl+X,放到剪切板。分析出这一点,我们来写第三层循环:
根据上边图片提示我们把控制星与空格的代码块粘贴在此处:
所以,嵌套循环就这样完成了,先把内层循环写完,最后写外层循环,然后在外层循环体内粘贴我们写好的内层循环,这里还有一个注意点,便是z,i和j的变化,其实,留心的话就会发现通过i的变化,j的变化和z的变化就可以输出不同的图形,所以这一块也是我们控制星星图案的重点。