zoukankan      html  css  js  c++  java
  • 程序流程控制

     

    1、流程控制if

      1、当程序执行会产生多种情况但只需要一种情况时,需要进行判断程序的执行方向来得到想要的结果以及逻辑。

      2、if常用的组合

        1、if

    if "条件语句":    # 条件语句返回的值为布尔值的True或False    
        "需要运行的代码"    # 满足条件语句时执行

          满足条件语句并返回一个True时,执行需要运行的代码,当整个if流程执行完成后,若整个流程下面还有代码,继续执行下面的代码

    a = 10
    b = 100
    if b > a:
        print(a)  # 10
    
    c = a + b  # if执行完成后执行
    print(c)  # 110

        2、if...else...

    if "条件语句":    # 条件语句返回的值为布尔值的True或False    
        "需要运行的代码1"    # 满足条件语句时执行
    else:
        "需要运行的代码2"    # 不满足条件语句时执行

      满足条件语句并返回一个True时,执行需要运行的代码1,不满足条件语句并返回一个False时,执行需要运行的代码2。当整个if流程执行完成后,若整个流程下面还有代码,继续执行下面的代码。

    a = 10
    b = 100
    if b > a:
        print(a)  # 满足b>a时执行  10
    else:
        c = a + b  # 当b>a不成立时执行
        print(c)  # 110

        3、if...elif...elif...else...

    if "条件语句1":    # 条件语句返回的值为布尔值的True或False    
        "需要运行的代码1"    # 满足条件语句时1执行
    elif "条件语句2":   
        "需要运行的代码2"    # 满足条件语句2时执行
    elif "条件语句3": 
        "需要运行的代码3"    # 满足条件语句3时执行
    else:
        "需要运行的代码4"    # 不满足条件语句1、2、3时执行
    score = input("your score: ")
    score = int(score)  # 将得到的字符串类型的数据转为整形
    
    
    if score >= 90:
        print('优秀')
    elif score >= 80:
        print('良好')
    elif score >= 70:
        print('普通')
    else:
        print('')

      当输入的分数大于等于90时,满足条件1,输出优秀;当输入的分数小于90且大于等于80时,不满足条件1,满足条件2,输出良好;当输入的分数小于80且大于等于70时,条件1和2都不满足,此时满足条件3,输出普通;当输入的分数小于70时,不满足条件1、2、3,输出为差。

        4、if嵌套

          

    if "条件语句1":
        "需要运行的代码1"    # 满足条件语句1时执行
        if "条件语句2":
        "需要运行的代码2"    # 满足条件语句2时执行
        else:
            "需要运行的代码22"    # 不满足条件语句2时执行
    else:
        "需要运行的代码11"    # 不满足条件语句1时执行
        if "条件语句3": 
        "需要运行的代码3"    # 满足条件语句3时执行
        else:
            "需要运行的代码33"    # 不满足条件语句3时执行

          当判断条件有多个时,可以使用if嵌套使用,执行原理和if...else...执行原理相同

    # if的嵌套
    cls = 'human'
    gender = 'female'
    age = 18
    is_success = False
    
    if cls == 'human' and gender == 'female' and age > 16 and age < 22:
        print('开始表白')
        if is_success:
            print('那我们一起走吧...')
        else:
            print('我逗你玩呢')
    else:
        print('阿姨好')

    2、流程控制while

      1、对一段代码重复执行时,需要进行循环执行,此时就要用到while,再满足条件的情况下对一段代码循环执行。

      2、while常用组合

        1、while

    while "条件语句""需要执行的代码"

      只要满足条件语句,则一直执行内部的代码。当不满足条件时或者内部执行的代码中有break时,退出此时所在的while循环;当执行内部代码过程中遇到continue时,跳出当前循环,执行下一次循环。

    # continue
    i = 0
    
    while i < 5:
        i += 1
        if i == 3:
            continue  # 跳出当前循环
        else:
            print(i)  # 输出结果为1、2、4、5
    
    
    # break
    i = 0
    
    while i < 5:
        i += 1
        if i == 3:
            break  # 跳出while循环,结束循环
        else:
            print(i)  # 输出结果为1、2

        2、while...else...

    while "条件语句""需要执行的代码1"
    else:
        "需要执行的代码2"

      只要满足条件语句,则一直执行内部的代码1。当不满足条件时,跳出while循环,执行else中要执行的代码2;当内部执行的代码中有break时,退出此时所在的while循环,不执行else中的代码2;当执行内部代码过程中遇到continue时,跳出当前循环,执行下一次循环。

    # continue
    # 输出结果为1、2、4、5  跳出循环了
    i = 0
    
    while i < 5:
        i += 1
        if i == 3:
            continue  # 跳出当前循环
        else:
            print(i)  # 输出结果为1、2、4、5
    else:
        print("跳出循环了"# break
    # 输出结果为1、2
    i = 0
    
    while i < 5:
        i += 1
        if i == 3:
            break  # 跳出while循环,结束循环
        else:
            print(i)  # 输出结果为1、2
    else:
        print("跳出循环了吗?"

        3、while嵌套

    while "条件语句1""需要执行的代码1"
        while "条件语句2""需要执行的代码2"
            while "条件语句3""需要执行的代码3"    

          while的执行和单个的while执行原理相同,但在执行退出循环的操作上略有不同。退出循环分为退出当前所在层次的循环和退出整个嵌套循环(以两层循环嵌套为例)

          1、退出当前所在层次的循环

            利用break完成。

    # 退出内层循环的while循环嵌套
    user_db = 'jason'
    pwd_db = '123'
    while True:
        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('%s功能执行'%cmd)
        else:
            print('username or password error')
    print('退出了while循环')

          2、退出整个嵌套循环

            方法一:

    user_db = 'jason'
    pwd_db = '123'
    while True:
        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('%s功能执行'%cmd)
            break
        else:
            print('username or password error')
    print('退出了while循环')

      当嵌套层数过多时,方法一的太过麻烦,需要在每个循环后添加break,不太现实。由此引出了方法二。考虑到不满足条件时会退出循环,则定义一个标志位,需要时批更改标志位的布尔值,达到退出多层循环的目的。

            方法二:

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

      3、利用while循环取值

        

    l = [1, 2, 3, 4, 5]
    i = 0
    
    while i < len(l):
        print(l[i])  # 利用素引查询
        i += 1

        当被查数据不能利用索引查询时,以上方法不适合查询。

    3、流程控制for

      1、当取出的数据的内部元素时无序的时候,就不能利用while循环查询数据了,此时可以利用for循环

      2、for常用组合

        1、for

    # for循环字典
    info = {'name': 'jason', 'age': 19}
    for item in info:
        print(item)  # 拿到字典所有的key
        print(info[item])  # 拿到字典所有的value

          for可以不依赖于索引取指,是一种通用的循环取指方式
          for的循环次数是由被循环对象包含值的个数决定的,而while的循环次数是由条件决定的

    #for循环也可以按照索引取值
    
    name_list =  ['jason', 'nick', 'tank', 'sean']
    # for i in range(0,5):  # 5是数的
    for i in range(len(name_list)):
        print(i, name_list[i])

        

    for i in range(1, 10):  # range顾头不顾尾
        print(i)
    
    # python2与python3中range的区别
    # 在python2中
    >>> range(1,100)
    [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99]
    
    >>> xrange(1,100)
    xrange(1, 100)
    
    # 在python3中
    >>> range(1,100)
    range(1, 100)

        

        2、for...break...

    #跳出本层循环
    # for+break
    
    name_list = ['nick', 'jason', 'tank', 'sean']
    for name in name_list:
        if name == 'jason':
            break
        print(name)

        3、for...continue...

    # for+continue
    
    # 跳出本次循环,进入下一次循环
    
    # for+continue
    name_list = ['nick', 'jason', 'tank', 'sean']
    for name in name_list:
        if name == 'jason':
            continue
        print(name)

        4、for...else...

    # for + else
    
    
    name_list = ['nick', 'jason', 'tank', 'sean']
    for name in name_list:
        if name == 'jason':
            continue
        print(name)
    elseprint("执行完了")

        5、for嵌套

          先执行外层的for循环,每执行一次外层的for循环在执行内部的for循环,若内部还存在for循环嵌套,则继续执行内部for循环,直到内部没有for循环为止,将最内层的for循环执行完后,再一层一层的执行外层循环。

    # 打印99乘法口诀表
    '''
    1*1=1
    2*1=2 2*2=4
    3*1=3 3*2=6 3*3=9
    ...
    9*1=9.................9*9=81
    '''
    for i in range(1,10): #i=3
         for j in range(1,i+1):
             print('%s*%s=%s ' %(i,j,i*j),end='') #i=2 j=2
         print()
  • 相关阅读:
    更新我电脑的编译器之Java语言
    HTML/CSS基础
    查找元素的杀手锏xpath
    错误日志的实时抓取保证代码质量
    Splinter常用api
    从底层向上理解Git
    infer运用实践
    流程图在测试用例编写中的运用
    2016小结
    Splinter 查找元素
  • 原文地址:https://www.cnblogs.com/le-le666/p/11120459.html
Copyright © 2011-2022 走看看