python3.6基础20180427_循环(while和for)小例子

1.循环----while语句

语法:

    while condition(循环条件):

            block(循环体)

说人话就是: while旁边是循环条件(布尔类型or表达式): 之后进入循环体执行什么, *避免死循环(break住)

举个小栗子练练:

# 1.输出1 - 100的偶数和

方法一:使用while循环

n=1
sum=0
while n<=100:
    if n%2==0:
        sum=sum+n
    n=n+1

print(sum)

方法二:当然也可以使用for循环

sum=0
for i in range(1,101):
    if i%2==0:
        sum+=i
print(sum)


# 2.请用户输入数字,求和,直到输出0退出

count=0
while True:
    num = int(input('请输入数字:'))
    if num==0:
        break
    else:
        count+=num
        print(count)

print()  

使用上面的方式print的时候,每次输入一个数字,就会在循环内计算一次,当输出0时结束,效果如下:

            请输入数字:30
            30
            请输入数字:20
            50
            请输入数字:70
            120
            请输入数字:26
            146
            请输入数字:0


count=0
while True:
    num = int(input('请输入数字:'))
    if num==0:
        break
    else:
        count+=num

print(count)

这种输出方式在最终一步,输入0时,才会最终计算完毕,效果如下:

            请输入数字:30
            请输入数字:62
            请输入数字:40
            请输入数字:0
            152


# 3.在1-100的数字中
#     遇到3和5的倍数,输出当前值是3和5的倍数
#     遇到5的倍数输出当前值是5的倍数
#     遇到3的倍数输出当前值是3的倍数

形式1: 外部输入,判断完终止:

n = int(input('请输入一个1-100的整数:'))
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的倍数')
    else:
        print(n,'不是3或5的倍数')

    break


形式2: 输出1-100内的所有3或5的倍数的数字

n=1
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


2.for循环:

语法:

for...(element)...in...(iteratable):

        block

当可迭代对象中有元素可以迭代,进入循环体,执行block

range()函数会生成数列

小练习:

1.输出一行9个*

2.输出9行9个*

for i in range(9):

    print('*',end=' ')


for i in range(9):
    print('*'*9 )


3.输出直角三角形

for i in range(1,9):

    print('*'*i)


4.输出九九乘法表

for i in range(1,10):
    for j in range(1,i+1):
        print(j,'*',i,'=',j*i,end=' ' '\t')
    print()

5.等腰三角形

row = 7
for i in range(row):
    for j in range(row,i,-1):
        print(' ',end=' ')
    for n in range(i*2+1):
        print('*',end=' ')
    print()

6.菱形

方法一:(拼凑)

row = 7
for i in range(row):
    for j in range(row,i,-1):
        print(' ',end=' ')
    for n in range(i*2+1):
        print('*',end=' ')
    print()
for i in range(1,row):
    for k in range(i+1):
        print(' ',end=' ')
    for m in range((row-i)*2-1):
        print('*',end=' ')
    print()

方法二:(对称)

for i in range(-3,4):
    if i<0:
        pre=-i
    else:
        pre=i

    print(' '*pre+'*'*(7-pre*2))

7.统计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)
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)



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值