• Python学习系列之循环(十)


    一、循环概念

    循环:
      反复做同一件事情的情况,成为循环
    循环结构流程图:

     二、循环的分类:

    • while
    • for-in

    三、while循环

    while循环语法结构:
     while 条件表达式:
      条件执行体(循环体)


    选择结构的if与循环结构的while的区别:
    if是判断一次,条件为True执行一次
    while是判断N+1次,条件为True执行N次

    举例:

    #while循环,输出1-10之间的正整数
    a=1
    while a<=10:
        print(a)
        a+=1
    

      执行结果如下:

     练习1:输出0-4志坚正整数的累加和

    #0-4的累加和
    a=0
    sum=0
    while a<=4:
        sum+=a
        a+=1
    print('和为:',sum)
    

      执行结果为:

    练习2:计算1-100之间偶数的和

    #计算1-100之间偶数的和
    a=1
    sum=0
    while a<=100:
    if a%2==0: #可以写成if not bool(a%2):
    sum+=a
    a+=1

    print('和为:',sum)

      执行结果如下:

     练习3:计算1-100之间奇数的和

    #计算1-100之间奇数的和
    a=1
    sum=0
    while a<=100:
    if bool(a%2):
    sum+=a
    a+=1
    print('和为:',sum)

      执行结果如下:

    四、for-in循环

    for-in循环

    • in表达从(字符串、序列等)中依次取值,又称为遍历
    • for-in遍历的对象必须是可迭代对象

    for-in的语法结构:
    for自定义的变量 in 可迭代对象:
      循环体


    for-in的执行图:

      *循环体内不需要访问自定义变量,可以将自定义变量替代为下划线

    举例:

    举例1:输出“Pyhton”中的每个字符

    #for-in循环
    for item in 'Python':
        print(item)
    

      执行结果如下:

     举例2:输出range函数中的所有值

    for i in range(10):
        print(i)
    

      执行结果如下:

    举例3:用'_'代替自定义变量

    #如果在循环体中,不需要自定义变量,可以将自定义变量可以用'_'代替
    for _ in range(3):
        print('ABC')
    

      执行结果如下:

      解析:执行了3次print方法

    举例4:计算1-100之间偶数的和

    #计算1-100之间偶数的和
    sum=0
    for i in range(1,101):
    if i%2==0:
    sum+=i
    print(sum)

      执行结果如下:

     练习:要求输出100-999之间的水仙花数 举例:153=3*3*3+5*5*5+1*1*1

    for item in range(100,1000):
        ge=item%10  #个位数
        shi=item//10%10 #十位
        bai=item//100
        #print(bai,shi,ge)
        #判断
        if ge**3+shi**3+bai**3==item:
            print(item)
    

      执行结果如下:

    五、break语句

    break语句:

    • 用于结束循环结构,通常与分支结构if一起使用

    举例:验证密码输入3次,当密码输入正确时使用break停止循环

    #break退出循环
    for item in range(3):
        pwd=input('请输入密码:')
        if pwd=='8888':
            print('密码正确')
            break
        else:
            print('密码错误,请重新输入')
    

      执行结果如下:

     解析:当密码输入不正确时,会进入下一轮循环,当密码正确时break跳出循环

     本例还可以用while来写:

    a=0
    while a<3:
        pwd=input('请输入密码:')
        if pwd=='8888':
            print('密码正确')
            break
        else:
            print('密码错误,请重新输入')
        a+=1
    

      结果同上

    六、流程控制语句continue

    continue语句

    • 用于结束当前循环,进入下一次循环,通常与分支结构中的if一起使用

    举例:要求输出1到50之间所有5的倍数,即和5的余数为0的都是5的倍数,与5的余数不为0的数不是5的倍数

    #要求输出1到50之间所有5的倍数,即和5的余数为0的都是5的倍数,与5的余数不为0的数不是5的倍数
    for item in range(1,51):
        if item%5==0:
            print(item)
    

      执行结果如下:

      

    下面,我们使用continue语句来重写上面的例子:

    #使用conitnue语句
    for item in range(1,51):
        if item%5!=0:
            continue
        print(item)
    

      执行结果如下:

    七、else语句

    else语句:
    与else语句配合使用有三种情况
    分别是:
    if .....:
      ...
    else:
      ...
    if表达式不成立时,执行else

    while ......:
      ...
    else:
      ...

    for ......:
      ...
    else:
      ...
    没有碰到break时执行else

    举例:模拟ATM机取款输入密码,密码最多输入3次,输入错误提示密码错误,请重新输入,超过3次则提示3次密码均输入错误。

    使用if-else:

    for item in range(3):
        pwd=input('请输入密码:')
        if pwd=='8888':
            print('密码正确')
            break
        else:
            print('密码不正确')
    
    else:
        print('对不起,三次密码均输入错误')
    

      执行结果如下:

     使用while-else编写:

    a=0
    while a<3:
        pwd=input('请输入密码:')
        if pwd=='8888':
            print('密码正确')
            break
        else:
            print('密码不正确')
        a+=1
    else:
        print('对不起,三次密码均输入错误')
    

      执行结果如下:

    八、嵌套循环

    嵌套循环:
    循环结构中又嵌套了另外的完整的循环结构,其中内存循环作为外层循环的循环体执行

    举例:

    输出一个三行四列的矩形
    #输出一个三行四列的矩形
    for i in range(1,4):
        for j in range(1,5):
            print('*',end='	') #不换行输出
        print() #打行
    

      执行结果如下:

    练习:输出99乘法表

    #输出99乘法表
    for i in range(1,10):
        for j in range(1,i+1):
            print(i,'*',j,'=',i*j,end='	')
        print()
    

      执行结果如下:

    九、二重循环中的break和continue

    二重循环中的break和continue用于控制本层循环

    break举例:当数据与2取余时,跳出循环

    '''流程控制语句break和continue在二重循环中的使用'''
    for i in range(5):
        for j in range(1,11):
            if j%2==0:
                break
            print(j)
    

      执行结果如下:

     解析:外层循环共执行了5次,内存循环中当j为1时,跳出循环会到外层循环,外层循环第二次执行时,内存循环执行二次,j取第一个即1,又会跳出循环,所以结果为5个1,即内层循环每次执行1次就会跳出循环,所以j的值一直是1

    continue举例:当数据与2取余时,继续循环

    for i in range(5):
        for j in range(1,11):
            if j%2==0:
                continue
            print(j,end='	')
        print()
    

      执行结果如下:

     解析:共执行5*10=50次,当条件j%2==0不满足时,打印j,当条件j%2==0满足时,则不打印j,继续内层循环,在1-10这10个整数中,不满足%2==0的数据是1,3,5,7,9,外层循环5次,所以输出5行1,3,5,7,9

  • 相关阅读:
    IOS、java支持DES加密
    多线程——@synchronized(object)
    LSM树存储模型
    System.setProperty()
    Filter及FilterChain的使用具体解释
    Java有用经验总结--Swing篇
    POJ3342——Party at Hali-Bula
    Hadoop-2.4.1学习之Writable及事实上现
    OpenCV 编程简单介绍(矩阵/图像/视频的基本读写操作)
    Android中Context具体解释 ---- 你所不知道的Context
  • 原文地址:https://www.cnblogs.com/wx170119/p/14030405.html
走看看 - 开发者的网上家园