Python3中循环语句while,for相关操作,代码以及用法简要分析(附简单练习题)

一:循环语句: 

什么是循环:重复做某一件事情。
生活中的循环:表,地球公自转
代码中什么情况下会使用循环:
当一段代码需要重复并且连续的时候需要用的循环。
循环三大条件: 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-=1
5.输入一个数,求它的阶乘
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+=1
7.循环录入学生的成绩并求出平均分,当录入负数时提示录入错误,当输入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)

       关于星星问题和for循环问题,由于这是我上课第三天,老师说先并不深入讲for循环,重点在while循环上,因为班上有的学生底子比较差,照顾群体,所以,下边  我重点用while循环讲下星星问题,以及while多层循环的使用方法
       (1)
                

            首先分析出总共有5行星星,第一行有1个星星,4个空格,每行的星星数随着行数+1 星星数+1 空格-1

            因此我们应该要写三个循环,一个循环控制星星数,一个循环控制空格数,一个控制输出的行数。
            首先我们写控制星星的循环:
            
            这时候我们就发现5行所有的星星都在一行输出了,但是这并不我们要的结果,所以我们要在每行星星循环完后把空格的循环加上,如下:
           
           这时候我们发现空格循环已经加在了里边但是所有结果还是在一行,所以我们还要在每一行的星星和空格循环结束后,加入一个print(),如下:

           
           

           至此,我们已经打印出了我们想要的图形,但是我们会发现代码很长,但是,最总要的一点来了,认真观察的同学已经发现规律了,本章开头已经说了,循环是什么,循环是我们一直重复的做一件事,而上边的代码我们就在重复的做两件事,输出第一行的星与空格,然后输出第二行的星与空格,,,,,直到第五行,每一行的星与空格的输出也各自是一个循环,星星数i每次循环+1,空格数j每次-1,所以我们先把输出一行星与空格的代码块Ctrl+X,放到剪切板。分析出这一点,我们来写第三层循环:
          

          根据上边图片提示我们把控制星与空格的代码块粘贴在此处:

         
         所以,嵌套循环就这样完成了,先把内层循环写完,最后写外层循环,然后在外层循环体内粘贴我们写好的内层循环,这里还有一个注意点,便是z,i和j的变化,其实,留心的话就会发现通过i的变化,j的变化和z的变化就可以输出不同的图形,所以这一块也是我们控制星星图案的重点。
        

        












猜你喜欢

转载自blog.csdn.net/weixin_42533541/article/details/81022720