zoukankan      html  css  js  c++  java
  • 【0801 | Day 6】Python基础(四)

    Part 13 流程控制之while循环

    一、语法

    while 条件
        code 1
        code 2
        code 3
        ...
    ​
    while True:
        print('*1'*100)
        print('*2'*100)
    # 实现ATM的输入密码重新输入的功能
    while True:
        user_db = 'nick'
        pwd_db = '123'
    ​
        inp_user = input('username: ')
        inp_pwd = input('password: ')
        if inp_user == user_db and pwd_db == inp_pwd:
            print('login successful')
        else:
            print('username or password error')

    二、while+break

    break 命令终止,结束本层循环,执行下面的代码

    while True:
        user_db = 'nick'
        pwd_db = '123'
    ​
        inp_user = input('username: ')
        inp_pwd = input('password: ')
        if inp_user == user_db and pwd_db == inp_pwd:
            print('login successful')
            break
        else:
            print('username or password error')
    ​
    print('退出了while循环')
    username: nick
    username: nick
    password: 123
    login successful
    退出了while循环    

    三、while+continue

    continue命令结束本次循环,继续下一次循环

    #第一种
    n = 1
    while n < 4:
        print(n)
        n += 1
        
    #第二种
    n = 1
    while n < 10:
        if n == 8:
            # n += 1  # 如果注释这一行,则会进入死循环(比如n=8,此时执行n+=1命令,n=9不符合if条件,n值不变化依旧为9一直小于10,也不等于8,导致进入死循环)
            continue
        print(n)
        n += 1

    注意:continue不能加在循环体的最后一步执行的代码,因为代码加上去毫无意义

    while True:
        if 条件1:
            code1
            code2
            code3
            ...
        else:
            code1
            code2
            code3
            ...
    ​
        continue

    四、while循环的嵌套

    与用户进行更复杂的信息交互

    # 退出内层循环的while循环嵌套
    while True:
        user_db = 'nick'
        pwd_db = '123'
    ​
        inp_user = input('username: ')
        inp_pwd = input('password: ')
    ​
        if inp_user == user_db and pwd_db == inp_pwd:
            print('login successful')
    ​
            while True:
                cmd = input('请输入你需要的命令:')
                if cmd == 'q':
                    break
                print(f'{cmd} 功能执行')
        else:
            print('username or password error')
    ​
    print('退出了while循环')
    ​
    ​
    # 退出双层循环的while循环嵌套
    while True:
        user_db = 'nick'
        pwd_db = '123'
    ​
        inp_user = input('username: ')
        inp_pwd = input('password: ')
    ​
        if inp_user == user_db and pwd_db == inp_pwd:
            print('login successful')
    ​
            while True:
                cmd = input('请输入你需要的命令:')
                if cmd == 'q':
                    break
                print(f'{cmd} 功能执行')
            break
        else:
            print('username or password error')
    ​
    print('退出了while循环')
    ​
    username: nick
    password: 123
    login successful
    请输入你需要的命令:q
    退出了while循环

    五、tag控制循环推出

    # tag控制循环退出
    tag = True
    while tag:
        user_db = 'nick'
        pwd_db = '123'
    ​
        inp_user = input('username: ')
        inp_pwd = input('password: ')
    ​
        if inp_user == user_db and pwd_db == inp_pwd:
            print('login successful')
    ​
            while tag:
                cmd = input('请输入你需要的命令:')
                if cmd == 'q':
                    tag = False
                print(f'{cmd} 功能执行')
        else:
            print('username or password error')
    ​
    print('退出了while循环')
    username: nick
    password: 123
    login successful
    请输入你需要的命令:q
    q 功能执行
    退出了while循环

    六、while+else

    while+else:else会在while没有被break时才会执行else中的代码

    # while+else
    n = 1
    while n < 3:
        print(n)
        n += 1
    else:
        print('else会在while没有被break时才会执行else中的代码')   
    1
    2
    else会在while没有被break时才会执行else中的代码    

    Part 14 流程控制之for循环

    一、语法

    while:

    1. 会进入死循环(不可控),尽量少用while循环

    2. 世间万物都可以作为循环的对象

    for:

    1. 不会进入死循环(可控),尽量使用for循环

    2. 只对容器类数据类型进行循环(可迭代对象)

    二、for+break

    # for+break
    name_list = ['nick', 'jason', 'tank', 'sean']
    for name in name_list:
        if name == 'jason':
            break
        print(name)
    nick

    三、for+continue

    # for+continue
    name_list = ['nick', 'jason', 'tank', 'sean']
    for name in name_list:
        if name == 'jason':
            continue
        print(name)   
    nick
    tank
    sean

    continue和break区别:前者跳过后面循环前面(本次),后者跳过前面执行后面(本层)

    四、for循环嵌套

    外层循环循环一次,内层循环循环所有的

    # for循环嵌套
    for i in range(3):
        print(f'-----:{i}')
        for j in range(2):
            print(f'*****:{j}')      
    -----:0
    *****:0
    *****:1
    -----:1
    *****:0
    *****:1
    -----:2
    *****:0
    *****:1        

     

    五、for+else

    for循环没有break的时候触发else内部代码块

    # for+else
    name_list = ['nick', 'jason', 'tank', 'sean']
    for name in name_list:
        print(name)
    else:
        print('for循环没有被break中断掉')   
    nick
    jason
    tank
    sean
    for循环没有break中断掉    

    六、for循环实现loading

    import time
    ​
    print('Loading', end='')
    for i in range(6):
        print(".", end='')
        time.sleep(0.2)   
    Loading......    

     

     

  • 相关阅读:
    简述location规则优先级-实现域名跳转-不同语言-终端跳转-错误页面返回首页-腾讯公益首页
    配置nginx访问控制-设置防盗链
    nginx虚拟机及热部署(在线升级)
    阿里云 OSS 网页端直传
    阿里云OSS Java 生成STS
    阿里ECS访问七牛及阿里OSS速度测试
    Maven学习总结(八)——使用Maven构建多模块项目
    关于部分手机无法搜索到5G wifi信号的解决方法
    Spring Boot 2.x
    利用 qshell qupload 批量迁移服务器上的网站图片到七牛云
  • 原文地址:https://www.cnblogs.com/fxyadela/p/11285151.html
Copyright © 2011-2022 走看看