• 流程控制基础


    流程控制

    流程控制之if判断

    语法

    if判断是干什么的? if判断简单来说其实是计算机在判断人在做判断.就是说,如果这样干什么,如果那样干什么.

    1.1 (if)

    记住我们学习计算机编程,不管如何变,都是为了让计算机像人一样工作.比如你判断一个女生,是不是你喜欢的,我们首先会判断她年龄多大,年龄在18到20长得漂亮,很好表白,我们的if就是让计算机去判断这么一个过程.if表示if成立代码会干什么.

    if 条件:
        代码1
        代码2
        代码3
        ...
     # 代码块(同一缩进级别的代码,例如代码1、代码2和代码3是相同缩进的代码,这三个代码组合在一起就是一个代码块,相同缩进的代码会自上而下的运行)
    
    girl_of_age = 18
    
    if girl_of_age == 18 and girl_of_age < 20:
        print("喜欢表白")
    
    print('结束')
          
    

    喜欢表白

    结束

    1.2 if...else

    if 条件
       代码1
       代码2
       代码3
       ...
    else:
        代码1
        代码2
        代码3
        ...
    

    if...else 表示if成立代码会干什么,else不成立会干什么.

    girl_of_age = 25
    
    if girl_of_age == 18 and girl_of_age < 20:
        print("喜欢表白")
    else:
        print('阿姨好')
    

    阿姨好

    1.3if...elif...else

    if 条件1:
        代码1
        代码2
        代码3
        ...
    elif 条件2:
        代码1
        代码2
        ...
    else:
        代码1
        代码2
        ...
    

    if...elif...else表示if条件1成立干什么,elif条件2成立干什么,elif条件3成立干什么,elif...否则干什么.

    girl_of_age = 25
    
    if girl_of_age > 18 and girl_of_age < 20:
        print("喜欢表白")
    elif girl_of_age < 30 and girl_of_age >20:
        print("考虑下")
    else:
        print('阿姨好')
    

    考虑下

    if的嵌套

    简单理解就是我们表白成功了,那我们又要干啥,不成功又要干啥.

    girl_of_age = 18
    is_success = False
    
    if  girl_of_age > 16 and girl_of_age < 22:
        print('开始表白')
        if is_success:
            print('那我们一起走吧...')
        else:
            print('我逗你玩呢')
    else:
        print('阿姨好')
        
    

    开始表白
    我逗你玩呢

    流程控制之while循环

    语法

    简单理解为循环就是一个重复的过程,我们人需要需要重复的干一件事,那么计算机就是在模仿人做事.比如你游戏账号验证失败,那么就需要从新验证.这时候就用到了while循环,while循环又称为条件循环.

    while 条件
       code1
       code2
       code3
        ...
    while True:
        print(10)
    
    age = 16
    
     while True:
         inp_age = input('age:')
         inp_age = int(inp_age)
    
         if inp_age > age:
             print('猜大了')
         elif inp_age < age:
             print('猜小了')
         else:
             print('猜对了')
    

    这样就实现了一个猜年龄的循环,虽然实现了功能但你输对了他也会继续.

    while + break

    break的意思为终止掉当前层的循环,执行其他代码.

    while True:
        print("1")
        print('2')
        break
        print('3')
    

    1
    2

    上面的代码没啥意义,要记住循环的目的就是让计算机像人一样工作,去循环的处理事情,下面我们来通过while+break展示一下有意义的代码.

    age = 16
    
    while True:
        inp_age = input('age:')
        inp_age = int(inp_age)
    
        if inp_age == age:
            print('猜对了')
            break
        elif inp_age < age:
            print('猜小了')
        else:
            print('猜大了')
    print('猜对了,结束')
    

    age:16

    猜对了

    猜对了,结束

    while + continue

    continue的意思是终止掉当前层的循环,直接进入下次循环.

    n = 1
    while n < 4:
        print(n)
        n += 1
    

    1

    2

    3

    n = 1
    while n < 4:
        if n == 2:
            n += 1
            continue
        print(n)
        n += 1
    

    1

    3

    continue不能加在循环体的最后一步执行的代码,因为代码加上去毫无意义,如下所示的continue所在的位置就是毫无意义的。ps:注意是最后一步执行的代码,而不是最后一行。

    while True:
        if 条件1:
            code1
            code2
            code3
            ...
        else:
            code1
            code2
            code3
            ...
    
        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 + else

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

    我来简单介绍下这几个语句的区别

    假设,让你每天8点起来25点睡觉,连续30天,如果中途没有被干掉,奖励你一本书<修仙大法>

    break: 跳出本层循环,跳出循环.当你第十天的时候break了,剩下的20天全部减免了

    continue:跳出本次循环.当你第十天的时候continue,第十天减免了,但是剩下的天数还得继续

    else:当你中途没有被break干掉,一直在修仙,就会得到<修仙大法>

    流程控制之for循环

    语法

    为什么有了while循环,还需要有for循环呢?不都是循环吗?我给大家出个问题,我给出一个列表,我们把这个列表里面的所有名字取出来

    name_list = ['nick', 'jason', 'tank', 'sean']
    
    n = 0
    while n < 4:
        # while n < len(name_list):
        print(name_list[n])
        n += 1
    

    nick

    jason

    tack

    sena

    字典也有取多个值的需求,字典可能有while循环无法使用了,这个时候可以使用我们的for循环。

    name_list = ['nick', 'jason', 'tank', 'sean']
    for item in name_list:
        print(item)
    

    nick

    jason

    tack

    sena

    for循环的循环次数受限于容器类型的长度,而while循环的循环次数需要自己控制。for循环也可以按照索引取值

    print(list(range(1, 10)))
    

    [1, 2, 3, 4, 5, 6, 7, 8, 9]

    for i in range(1, 10):  # range顾头不顾尾
        print(i)
    

    1

    2

    3

    4

    5

    6

    7

    8

    9

    for +break

    for循环调出本层循环。

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

    三、for + continue

    for循环调出本次循环,进入下一次循环

    # 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循环实现loading

    import time
    
    print('Loading', end='')
    for i in range(6):
        print(".", end='')
        time.sleep(0.2)
    
  • 相关阅读:
    软件工程师的属性与发展
    欢迎使用CSDN-markdown编辑器
    hdu 5446 lucas+crt+按位乘
    poj 2891 模数不互质的中国剩余定理
    3037 插板法+lucas
    poj 1006中国剩余定理模板
    codeforce E
    UVA10820 send a table
    UVA1635 Irrelevant Elements
    uva 10375 Choose and Divide
  • 原文地址:https://www.cnblogs.com/kangwy/p/11284632.html
Copyright © 2020-2023  润新知