Pyhton--第二课(循环结构)

循环结构

判断条件 boolean类型的表达式

while  判断条件:

        循环体

(需要注意冒号和缩进)

避免死循环-->正规代码

 (while True为死循环)

例:1.求1-100偶数之和

n=1
a=0
while n<=100:
    if n%2==0:
       a+=n
    n=n+1
print(a)

    2.请用户输入数字 求和 输入0结束退出

sum=0
while True:
    n=int(input('请输入数字:'))
    if n==0:
        break
    sum+=n
print(sum)

while...else 循环不正常结束

例:3.输入数字 遇到3和5的倍数输出当前值是3和5的倍数

                      遇到5的倍数输出当前值是5的倍数

                       遇到3的倍数输出当前值是3的倍速

n=1
while n<=100:
    n=int(input('请输入数字:'))
    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('循环结束')

for循环     range()函数

如果你需要遍历函数序列,可以使用内置range()函数,它会生成数列,不包含结尾参数

range(5):一个参数 从0-5 不包含自己

range(5,9):二个参数 从5开始到9不包含自己

range(5,55,5):三个参数 从5开始到55不包含自己增量是5也可以是复数

for 迭代变量 in 数列/字典/元组

逐个从列表/字典/元组取值

for x in range(1,x):

    循环体

例:

nums=range(5)
for i in range(5):
    print(i)

 执行以上程序输出结果如下

   
0
1
2
3
4

    4.输出一行9个*

for i in range(9):
    print('*',end='')

     5.输出9行9个*

for i in range(9):#几行
    for i in range(9):#一行几个
        print('*', end='')
    print()

     6.用*输出直角三角形

for i in range(1,6):
    for j in range(6,i,-1):
            print('*',end='')
    print()
 执行以上程序输出结果如下

    
*****
****
***
**
*

     7.99乘法表

for i in range(1,10):
    for j in range(1,i+1):
        print(j,'*',i,'=',j*i,end='\t')
    print()
 执行以上程序输出结果如下

     
1 * 1 = 1	
1 * 2 = 2	2 * 2 = 4	
1 * 3 = 3	2 * 3 = 6	3 * 3 = 9	
1 * 4 = 4	2 * 4 = 8	3 * 4 = 12	4 * 4 = 16	
1 * 5 = 5	2 * 5 = 10	3 * 5 = 15	4 * 5 = 20	5 * 5 = 25	
1 * 6 = 6	2 * 6 = 12	3 * 6 = 18	4 * 6 = 24	5 * 6 = 30	6 * 6 = 36	
1 * 7 = 7	2 * 7 = 14	3 * 7 = 21	4 * 7 = 28	5 * 7 = 35	6 * 7 = 42	7 * 7 = 49	
1 * 8 = 8	2 * 8 = 16	3 * 8 = 24	4 * 8 = 32	5 * 8 = 40	6 * 8 = 48	7 * 8 = 56	8 * 8 = 64	
1 * 9 = 9	2 * 9 = 18	3 * 9 = 27	4 * 9 = 36	5 * 9 = 45	6 * 9 = 54	7 * 9 = 63	8 * 9 = 72	9 * 9 = 81

     8.菱形

rows=7
for i in range(rows):#第一个等腰三角形7行
    for j in range(rows-1,i,-1):#rows-1 第一个直角三角形少一行让等腰三角形左移  -1递减
        print(' ',end='')
    for k in range(i*2+1):#i*2 两个直角三角形 +1为等腰三角形每行+1
        print('*',end='')
    print()
for i in range(1,rows-1+1):
    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 in in range(s):
    for j in range(s-1,i,-1):
        print(' ',end='')
    for k in range(i*2+1):
        print('*',end='')
    print()
for in in range(1,x+1):
    for j in range(i):
        print(' ',end='')
    for k in range((s-i)*2-1):
        print('*',end='')
    print()

  9.统计3个班级 中每个班级3个学生的成绩: 大于80的人数几个

 
 
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
    str=input('是否重新输入? y/n')
    if str.__eq__('n'):
        break
print('>=90',a)
print('>=80',b)
print('>=60',c)
print('>=0',d)

双重循环中break,continue的作用

<1>.continue结束本次循环 继续下一次循环continue下面的代码不执行

<2>.break 结束所在的循环层 执行外层代码-->外侧大循环

     10.统计三个班级中每个班级三个学生的成绩:大于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/vanchaoi/article/details/80148883