• python-day6(正式学习)


    流程控制之while循环

    语法

    循环就是一个重复的过程,人需要重复做某项工作,那么计算机也一样。当ATM验证失败,那么计算机就会让我们再输入一次密码。这时候我们说的循环就是while循环,while循环即条件循环。

    while 条件:
    	代码...
        
    while True:
        print("hello world")
    
    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')
    

    上述代码就是模拟一个用户登录,但无论用户有没有登录成功,都会继续循环。因为条件是True

    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
    password:123
    login successful
    退出了while循环
    

    while+continue

    continue的意思是终止本次循环,直接进入下一次循环

    n = 1
    while n < 10:
        if n == 8:
            # n += 1  # 如果注释这一行,则会进入死循环
            continue
        print(n)
        n += 1
    

    continue不能加载循环体的最后一部执行的代码,因为这样做毫无意义

    while循环的嵌套

    ATM密码输入成功需要一系列的命令操作,比如取款转账,并在执行功能结束后会退出操作的功能,即在功能执行输入q会退出输出功能的while循环并且推出ATM程序。

    # 退出内层循环的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循环
    

    while循环的控制条件

    # 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时才会执行代码

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

    流程控制之for循环

    语法

    当我们给出一个列表,把其中的元素取出来用while就能实现,但如果是字典呢,这是我们就要用到for循环可以把key和value同时都取出来,for循环作用于容器型数据。

    person={'name':'nick','gender':'nan'}
    for key,value in person.items():
        print(key,value)
    
    name nick
    gender nan
    

    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
    

    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循环中loding......

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

    pycharm中无法实现,jupyter中可以

    loding......

  • 相关阅读:
    Codeforces 1265A Beautiful String
    1039 Course List for Student (25)
    1038 Recover the Smallest Number (30)
    1037 Magic Coupon (25)
    1024 Palindromic Number (25)
    1051 Pop Sequence (25)
    1019 General Palindromic Number (20)
    1031 Hello World for U (20)
    1012 The Best Rank (25)
    1011 World Cup Betting (20)
  • 原文地址:https://www.cnblogs.com/leaf-wind/p/11282765.html
Copyright © 2020-2023  润新知