• 流程控制之while循环,for循环


    # 循环结构

    概念:循环结构就是重复执行某段代码块

    为何要用循环:人类某些时候需要重复做某件事情,所以程序中必须有相应的机制来控制计算机具备人的这种循环做事的能力

    循环结构的使用:while循环语法 和 for 循环

    一.流程控制之while循环

    while循环称之为条件循环,基本语法如下:

    while 条件:
         代码1
         代码2
         代码3
    while运行步骤:
    1.如果条件为真,那么依次执行:代码1、代码2、代码3......
    2.执行完毕后再次判断条件,如果条件为True则再次执行:代码1,代码2,代码3,...如果条件为False,则循环终止
    
    1. while循环的基本使用

    用户认证程序, 案例一

    username='dandan'
    password='222'
    count=0
    while count<3:
        inp_name=input('请输入用户名: ')
        inp_pwd=input('请输入密码: ')
        if inp_name==username and inp_pwd==password:
            print('登入成功')
        else:
            print('输入用户名或密码错误')
            count +=1
    # 使用while循环实现3次登录
    
    2.死循环:条件永远为True
    while True:
        x=input('>>> ')
        y=input('>>> ')
        x+y
        1+1    #如果死循环中没有io,纯计算的死循环消耗cpu
    
    3. 结束while循环的两种方式

    方式一:把条件改为false

    特点:等到本次循环体代码运行完毕后,下一次循环判断条件时才会生效

    方式二:break代表结束本层循环

    特点:立即干掉while循环

    4. 案例二. while+break的使用

    使用了while循环后,代码确实精简多了,但问题是用户输入正确的用户名密码以后无法结束循环,那如何结束掉一个循环呢?这就需要用到break了!

    username='dandan'
    password='222'
    count=0
    while count<3:
        inp_name=input('请输入用户名: ')
        inp_pwd=input('请输入密码: ')
        if inp_name==username and inp_pwd==password:
            print('登入成功')
            break #用于结束本层循环
        else:
            print('输入用户名或密码错误')
            count +=1
    
    案列三:while循环嵌套+break

    如果while循环嵌套了很多层,要想退出每一层循环则需要在每一层循环都有一个break

    方式一:
    tag=True
    while tag:
        while tag:
            while tag:
              tag=False
    #  想要一次性结束所有while循环, 只需改一个地方     
    
    方式二:
    while True:
        while True:
            while True:
                while True:
                    break  #每一层只结束本层
                break
            break
    
    案例四:
    tag=True
    while tag:
        inp_name=input('请输入用户名: ')
        inp_pwd=input('请输入密码: ')
        if inp_name=='dandan' and inp_pwd== '222':
            print('登入成功')
            tag = False
        else:
            print('输入用户名或密码错误')
        print('*************')
    
    嵌套多层的while循环案例五:
    count=0
    while count<3:
        inp_user=input('请输入用户名: ')
        inp_pwd=input('请输入密码: ')
        if inp_user=='dandan' and inp_pwd== '222':
            print('登入成功')
            while True:
                print("""
                0.退出
                1.取款
                2.存款
                3.转账
                """)
                choice=input('请输入命令编号: ')
                if choice=='0':
                    break
                if choice == '1':
                    print('正在取款...')
                elif choice =='2':
                    print('正在存款...')
                elif choice == '3':
                    print('正在转账...')
                else:
                    print('输入指令不存在')
            break
        else:
            print('输入密码或账户有误')
            count +=1    # 用户如输错,限登录3次
    
    5 .while循环+continue:

    break代表结束本层循环,而continue则用于结束本次循环,直接进入下一次循环

    count=0
    while count<10:
        if count == 6  or count ==8:
            count +=1
            continue  #结束本次,直接进入下一次循环  与cuntinue同一级别的后面千万不要写代码,contine也不应该加在最后一步,最后一步不代表是最后一行
        print(count)
        count +=1
    
    
    6. while循环+else

    else 的子代码块会在while循环正常循环死亡时运行,没有被break干掉就叫正常死亡(在while循环的后面,我们可以跟else语句,当while 循环正常执行完并且中间没有被break 中止的话,就会执行else后面的语句,所以我们可以用else来验证,循环是否正常结束)

    二,流程控制之for循环

    1,基本用法

    for循环可以做的事情while循环都可以实现,之所以用for循环是因为在循环取值(即遍历值)时for循环比while循环的使用更为简洁

    案例:
    names=['egon','jake','tony','lisa']
    # i=0
    # while i<len(names):
    #     print(names[i])
    #     i+=1
    for x in(names):     #  for 取值循环
        print(x)
    &&   2行搞定
    
    字典案例:
    dic={'k1':111,'k2':222,'k3':333}
    for x in dic:
        print(x,dic[x])
    
    字符串案例:
    for x in "hello":
        print(x)
    
    列表案例:
    for x,y in [['name','egon'],['age',18],['gender','male']]:
        print(x,y)
    
    2,for+break结束

    结束本层循环

    for i in[11,22,33,44]:
        if i == 33:
            break
        print(i)      #案例 break
    
    3,for+continue

    结束本次循环,直接进入下一次循环

    for i in[11,22,33,44]:
        if i == 33:
            continue
        print(i)     # 案例 continue
    
    4,for+else
    for i in[11,22,33,44]:   
    if i == 33:        
    continue   
    print(i)else:  
    print('************')   #案例 else
    
    5,range()
    案例:
    for x in range(3):
        print(111)
        print(222)
        print(333)
    
  • 相关阅读:
    MySQL之权限管理
    CentOS7使用firewalld打开关闭防火墙与端口
    CentOS 7.2 基于Docker实现MySQL主从架构
    Centos7下安装Docker
    nginx php-fpm安装配置 CentOS编译安装php7.2
    php7的扩展库安装方法
    Android 程序打包及签名
    Message和handler传递对象
    Android AlertDialog去除黑边白边自定义布局(转)
    用MVC做支付宝手机网页支付问题
  • 原文地址:https://www.cnblogs.com/caodan01/p/14169093.html
Copyright © 2020-2023  润新知