python中while循环和延伸

判断条件 boolean
whie 判断条件:循环体
案例1:
 n=1
 while True:
     print(n)
     n=n+1
     if n>10:
         break;#停止当前的循环
简单法:
 n=1
 while n<=10:
     print(n)
     n=n+1#如果把这一行给注销掉 即:为死循环
案例2:100偶数和
  a=1
 num=0
 while a<=100:
     if a%2==0:
       num+=a
     a=a+1
 print(num)
知识延伸:1.输入几个数  0结尾 即:几个数的和就会出现
 sum=0
 while True:
     n= int(input("请输入一个数字:"))
     if n==0:
         break
     sum+=n
 print(sum)
2.100之内3和5 的倍数:
 n=0
 while n<=100:
     if n%3==0 and n%5==0:
         print(n,'是3 和 5的倍数')
     elif n%5==0:
         print(n,'是5的倍数')
     elif n%3==0:
         print(n,'是3的倍数')
     n = n+1
 else:
     print('结束')
 
二.  range()函数:生成数列 从零开始不包含结尾参数
 1.9行小星星怎么快速创建:
   for i in  range(9):#几行
       for i in range(9):#一行几颗星
            print('*',end='')
       print()
 2.用*拼成直角三角形:
   n = 0
   for i in range(9):
       n=n+1
       for i in range(n):
           print('*', end='')
       print()
  延伸一下:倒过来的直角三角形!
   nums=range(5)
   for i in range(1,6):两个参数:从1-6不包含6
       for i in range(6,i,-1):
           print("*",end='')
       print()
  3.99乘法表:
   for i in range(1,10):
       for j in range(1,i+1):
           print(j,'*',i,'=',(j*i),end="\t")
       print()
  4.等腰三角形变成菱形
   rows=7
   for i in range(7):
       for j in range(rows-1,i,-1):
           print(' ',end='')#记住空格不能忘了
       for k in range(i*2+1):
           print('*',end='')
       print()
    # 第二步
   for i in range(1,rows-1+1):#rows-1:第8行:13个星变为11个星。
       # +1:是为了给i赋一个值即:执行rows-i
       for j in range(i):
           print(' ',end='')
       for k in range((rows-i)*2-1):
           print('*',end='')
       print()
 更简单的方法
   rows=int(input('请输入菱形的行数:'))
   s=rows//2+1#上半部分
   x=rows-s   #下半部分
   for i in range(s):
       for j in range(s-1,i,-1):
           print(' ',end='')
       for k in range(i*2+1):
           print('*',end='')
       print()
   for i in range(1,x+1):
       for j in range(i):
           print(' ',end='')
       for k in range((s-i)*2-1):
           print('*',end='')
       print()
即:菱形的行数必须为奇数;
三:
 1.请用户输入成绩 统计各区间的人数超出0-100 重新输入 正确 询问是否继续
统计数据:
   a=b=c=d=0
   while True:
       num =int(input('请输入成绩:'))
       if num>=90 and num<100:
           a+=1
       elif num>=80 and num<90:
           b+=1
       elif num>=60 and num<80:
           c+=1
       elif num>=0 and num<60:
           d+=1
       else:
           print('超出范围 请重新输入:')
           continue#结束循,但是在continue下面的代码不在执行;放回到循环条件判断的位置 必须在循环体中
       str=input('是否继续? y/n')
       if str.__eq__('n'):
        break#结束所在循环层,执行外层代码
   print('成绩>=90:',a,'个')
   print('成绩>=80:',b,'个')
   print('成绩>=60:',c,'个')
   print('成绩>=0:',d,'个')
  2.统计3个班级 中每个班级3个学生的成绩: 大于80的人数几个
   count=0
   for i in range(1,4):
       print('请输入第',i,'班级学生成绩:')
       for j in range(1,4):
           score=int(input('请输入第'+str(j)+'个学生成绩:'))
           if score<0:
               print('输入负数 进入下一个班级')
               break
           if score<80:
               continue
           count+=1
   print('大于80的人数:',count)

猜你喜欢

转载自blog.csdn.net/doudou19930614/article/details/80194111