流程控制语句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语句不能同时使用!
原文地址:https://www.cnblogs.com/kindnull/p/6711322.html