zoukankan      html  css  js  c++  java
  • 流程控制语句if、else、elif、break、continue

     1、控制流程

    # if 判断语句
    
    a = 12
    if a>0:
        print('a大于0')
    if a<5:
        print('a大于5')
    else:
        print('哈哈哈')
    

    2、基本形式:

    if <条件判断1>:
        <执行1>
    elif <条件判断2>:
        <执行2>
    elif <条件判断3>:
        <执行3>
    else:
        <执行4>

    3、if语句注意事项:

    1、判断条件的表达式的值一般为布尔型的值,当值为True就执行里面的语句块。
    一般是使用比较运算符或者成员运算符。
    2、条件表达式后面接的“:”是语法的一部分不能少。
    有了“:”号后,满足条件时要的执行语句以缩进后的形式写在下面。
    3、if,elif是写分支条件,当前面的if和elif不满足时就执行else里面的语句。
    可以有零到多个elif,else是可选的。
    4、语句是从上往下执行的,当前面有条件已经满足了,那么直接执行里面的语句。
    后面的条件判断不再执行。

    4、常见例子:

    a=12
    if a>0:
        print(a -1)
    elif a>5:
        print(a-2)
    else:
        print('哈哈哈')
    #if .....else....
    b='python'
    
    if 'o' in b:
        print('is true')
    else:
        print('is not true')
    
    #if ...else...
    if b.isupper():
        print('hahaha')
    else:
        print('it is not all upper')
    #猜字游戏
    import random
    a=random.randint(1,10)
    n = 0
    while n<3:
        num=input("请输入一个数字:")
        if num.isdigit():
            num=int(num)
            if num == a:
                print('猜对了')
                break
            elif num>a:
                print('大了')
            else:
                print('小了')
    else:
        print('输入有误')
    n +=1
    
    print('还有%s次机会'% (3-n))
    print('这个数是%s' % a)

    5、循环

    5.1 while循环
    break跳出整个循环,并且不会执行else里面的语句
    continue 跳出本次循环
    else
    pass
    
    #---------break例子--------
    
    a=2
    
    while True:
    
        a = a+1
        if a>5:
            break
        else:
            print(a)
    
    输出结果为:
    
    3
    
    4
    
    5

    分析:当a=a+1,a=2,a+1=3,不满足a>5,执行else,输出a;继续下一次循环,a=3+1=4,a不满足a>5,输出a,此时a=4,;继续下一次循环,
    a=a+1=4+1=5,a不满足a>5,仍然执行else下的语句,输出a,也就是5;再进入下一次循环,a=a+1=5+1此时a=6,满足a>5,执行bread,
    跳出while循环,终止程序继续执行。

    
    
    #-------------continue列子--------------------
    
    a = 2
    while True:
        a = a+1
        if a<10:
            print(a)
            print('continue终止本次循环输出')
            continue
        elif a>20:
            print(a)
            print('break终端程序输出')
            break
    
    输出结果为:
    
    3
    continue终止本次循环输出
    4
    continue终止本次循环输出
    5
    continue终止本次循环输出
    6
    continue终止本次循环输出
    7
    continue终止本次循环输出
    8
    continue终止本次循环输出
    9
    continue终止本次循环输出
    21
    break终端程序输出
    >>>
    
    由上面输出可以发现continue是终止本次循环,而break直接终止整个程序运行
    5.2 for 循环,for迭代
    range() range(0,100,2)
    
    for i in range(10):
        print(i)
    
     输出结果:
    
    0
    1
    2
    3
    4
    5
    6
    7
    8
    9
    >>>
    
    for i in range(1,10,2):
    print(i)
    
    输出结果:
    
    1
    3
    5
    7
    9
    >>>
    
     小结:对于for循环对一个列表或者字符串中的元素进行一一取值,然后再赋值,最后处理(这里是输出);range内置方法用两个数字时(range(x,y)),表示从第一个数字
    (包含第一个数字)开始,到第二个数字(不包含)结束;如果有三这个数字(range(x,y,n)),则第三个数字是间隔数,即本次取值与上次之间隔n个数字.

    6、关于if....if与if...elif之间的区别

    a =12
    
    if a>5:
    
        print('a大于5')
    elif a>10:
        print('a大于10')
    
    elif a>11:
        print('a大于11')
    
    输出结果如下:
    
    a大于5
    >>>
    
     
    
    a =12
    
    if a>5:
        print('a大于5')
    
    if a>10:
        print('a大于10')
    
    if a>11:
        print('a大于11')
    
    输出结果如下:
    
    a大于5
    a大于10
    a大于11
    >>>
    
    总结:经过上述对比可以发现if....if语句运行时,会将匹配条件一条一条的去匹配,他们之间没有必然的关联,换句话说少了前面的if后面的if可以独立运行;而if...elif语句结果中,
    elif和if是有关联的,少了前面的if后面的elif是无法独立运行的,所以if
    ---elif条件下的elif是if的进一步判断,当if和elif两者同时满足只会执行最前面满足的条件。一个if语句
    中可以包含多个elif语句,但结尾只能有一个else语句.

    分数查询例子:

    while True:
        score = input("请输入你的分数(q退出):")
        if score == 'q':
            break
        _score =score.replace('.','',1) ---->解决用户输入小数时的问题
        if _score.isdigit():
            score = float(score)  ----------->将输入字符串转换成浮点型
            if 90 <= score <=100:
                print('成绩为:A')
            elif 80<=score<90:
                print('成绩为:B')
            elif 60<=score<80:
                print('成绩为:C')
            elif 0<=score<60:
                print('成绩为:D')
            else:
                print('输入有误!')
        else:
            print('输入有误,请重新输入')
    通过该例子得出:
    
    多个if和if...elfi的区别是:
    
    多个条件的判断就写多个if,一个条件的多个分支(或者一个条件的多种情况)用elif.
    
    关于循环中的else和break的关系:
    
    break在循环中的作用是:当循环中某个条件满足时执行break动作从而结束程序运行(即终止循环);else用在循环中的作用是:在循环中的条件不满足,退出循环时执行else里面的语句。
    python中,可以在while和for循环中使用else子句,它只是在循环结束之后才会被执行,如果同时使用了break语句那么else子句块会被跳过。所以注意else子句和break语句不能同时使用!
  • 相关阅读:
    协方差与协方差矩阵
    boost.python笔记
    2014年8月3日
    工作记录
    工作记录
    工作记录
    sed教程
    Visual studio C++ 之空控制台工程添加文件并解决头文件包含问题
    Visual studio C++ MFC之列表控件CListCtrl Control
    Visual studio C++ MFC之点击按钮(菜单栏)生成新窗口
  • 原文地址:https://www.cnblogs.com/kindnull/p/6711322.html
Copyright © 2011-2022 走看看