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

    在程序里预设一些条件判断语句,满足哪个条件,就走哪条岔路。这个过程就叫流程控制。

    if...else 循环语句

    单分支 

    if 条件:
        满足条件后要执行的代码
    成立走if,不成立不走if,走if后面的

    双分支 

    if 条件:
        满足条件执行代码
    else:
        if条件不满足就走这段

    缩进

    你会发现,上面的if代码里,每个条件的下一行都缩进了4个空格。这就是Python的一大特色,强制缩进,目的是为了让程序知道,每段代码依赖哪个条件,如果不通过缩进来区分,程序怎么会知道,当你的条件成立后,去执行哪些代码呢?

    Python的缩进有以下几个原则:

    • 顶级代码必须顶行写,即如果一行代码本身不依赖于任何条件,那它必须不能进行任何缩进
    • 同一级别的代码,缩进必须一致
    • 官方建议缩进用4个空格,当然你也可以用2个,如果你想被人笑话的话。

    多分支

    回到流程控制上来,if...else ...可以有多个分支条件

    if 条件:
        满足条件执行代码
    elif 条件:
        上面的条件不满足就走这个
    elif 条件:
        上面的条件不满足就走这个
    elif 条件:
        上面的条件不满足就走这个    
    else:
        上面所有的条件不满足就走这段
    

    代码是从上到下依次判断,只要满足一个,就不会再往下走啦!

     示例:

    匹配成绩的小程序。成绩有ABCDE5个等级,与分数的对应关系如下

    A    90-100
    B    80-89
    C    60-79
    D    40-59
    E    0-39
    

    要求用户输入0-100的数字后,你能正确打印他的对应成绩

     1 #成绩匹配
     2 score = int(input("请输入成绩:"))
     3 if score > 100:
     4     print("成绩满分才100!")
     5 elif score >= 90:
     6     print("A")
     7 elif score >= 80:
     8     print("B")
     9 elif score >= 60:
    10     print("C")
    11 elif score >= 40:
    12     print("D")
    13 elif score >= 0:
    14     print("E")
    15 else:
    16     print("请正确输入成绩")
    View Code

    
    

    while 循环

    while  条件:
        执行代码...
    

    程序从0打印到100的程序 ,每循环一次,+1

    1 count = 0 
    2 while count <= 100 : #只要count<=100就不断执行下面的代码
    3    print("loop ", count )
    4    count +=1  #每执行一次,就把count+1,要不然就变成死循环啦,因为count一直是0
    View Code
    输出
    loop  0
    loop  1
    loop  2
    loop  3
    ....
    loop  98
    loop  99
    loop  100

    跳过语句

    pass

    条件成立后,不进行任何操作就跳过。

     1 #循环打印1-100,第50次不打印值,第60-80次,打印对应值的平方
     2 count = 1
     3 while count<= 100:
     4     if count < 50:
     5         print("loop",count)
     6     elif count == 50:
     7         pass  #就是过
     8     elif count >= 60 and count <= 80:
     9         print(count**2)
    10     else:
    11         print("loop",count)
    12     count+=1
    13 print("--------loop is ended--------")
    View Code

    loop 1
    loop 2
    ......
    loop 58
    loop 59
    3600
    3721
    ...
    6241
    6400
    loop 81
    loop 82
    ...
    loop 99
    loop 100

    --------loop is ended--------


    死循环   

    while 是只要后边条件成立(也就是条件结果为真)就一直执行。

    count = 0
    while True:
        print("Forever 21",count)
        count+=1 

     循环中止语句 

    如果在循环的过程中,因为某些原因,你不想继续循环了,怎么把它中止掉呢?这就用到breakcontinue 语句

    • break用于完全结束一个循环,跳出循环体执行循环后面的语句
    • continue只是终止本次循环,接着还执行后面的循环,break则完全终止循环

    break语句用在while和for循环中。

    continue语句用在while和for循环中。

    例子:break

    count = 0
    while count <= 100 : #只要count<=100就不断执行下面的代码
        print("loop ", count)
        if count == 5:
            break
        count +=1 #每执行一次,就把count+1,要不然就变成死循环啦,因为count一直是0
    
    print("-----out of while loop ------")
    

    输出

    loop  0
    loop  1
    loop  2
    loop  3
    loop  4
    loop  5
    -----out of while loop ------
    

    例子:continue

    count = 0
    while count <= 100 : #只要count<=100就不断执行下面的代码
        print("loop ", count)
        if count == 5:
            break
        count +=1 #每执行一次,就把count+1,要不然就变成死循环啦,因为count一直是0
    
    print("-----out of while loop ------")
    

      

    输出

    loop 0
    loop 1
    loop 2
    loop 3
    loop 4
    loop 5
    loop 5
    loop 5
    loop 5

    .......

    count = 0
    while count <= 100 : 
        count += 1
        if count > 5 and count < 95: #只要count在6-94之间,就不走下面的print语句,直接进入下一次loop
            continue 
        print("loop ", count)
    
    print("-----out of while loop ------")
    

    输出

    loop  1
    loop  2
    loop  3
    loop  4
    loop  5
    loop  95
    loop  96
    loop  97
    loop  98
    loop  99
    loop  100
    loop  101
    -----out of while loop ------

    练习

    1、优化猜年龄游戏,允许用户最多猜3次,中间猜对了,直接跳出循环。

    #优化猜年龄游戏,允许用户最多猜3次,中间猜对了,直接跳出循环。
    _age = 18
    count = 0
    while count < 3:
        age = int(input("请输入所猜年龄:"))
        if age < _age :
            print('猜小了,猜大一点!')
        elif age > _age :
            print('猜大了,猜小一点')
        else:
            print("恭喜你,猜对了!")
            break
        count+=1

     

    #优化猜年龄游戏,允许用户最多猜3次,中间猜对了,直接跳出循环。
    count = 0
    age =26
    while count <3:
        user_name = int(input("your guess:"))
        if user_name == age:
            print("恭喜你答对了,可以抱得傻姑娘回家!")
            break
        elif user_name < age:
            print("try bigger")
        else:
            print("try smaller")
        count+=1
    

      

     2、优化猜年龄游戏,允许用户最多猜3次,猜了3次后,再问是否还想玩,如果用户选Y,则再允许猜3次,以此往复…

    #、优化猜年龄游戏,允许用户最多猜3次,猜了3次后,再问是否还想玩,如果用户选Y,则再允许猜3次,以此往复…
    _age = 18
    count = 0
    while count <= 3:
        if count <= 2:
            age = int(input("请输入所猜年龄:"))
            if age < _age :
                print('猜小了,猜大一点!')
            elif age > _age :
                  print('猜大了,猜小一点')
            elif age == _age:
                print("恭喜你,猜对了!")
                break
            count+=1
        else:
            answer = input("是否继续猜,输入'y'继续")
            if answer == "y":
                count = 0
            else:
                break
    

      

    #、优化猜年龄游戏,允许用户最多猜3次,猜了3次后,再问是否还想玩,如果用户选Y,则再允许猜3次,以此往复…
    count = 0
    age =26
    while count <3:
        user_name = int(input("your guess:"))
        if user_name == age:
            print("恭喜你答对了,可以抱得傻姑娘回家!")
            break
        elif user_name < age:
            print("try bigger")
        else:
            print("try smaller")
        count+=1
        if count == 3:
            choice = input("你个笨蛋,没猜对,还想继续吗?(y/Y)")
            if choice == "y" or choice = "Y":
                count = 0
    

      


    while ... else .. 

    与其它语言else 一般只与if 搭配不同,在Python 中还有个while ...else 语句

    while 后面的else 作用是指,当while 循环正常执行完,中间没有被break 中止的话,就会执行else后面的语句

    #while
    count = 0
    while count <= 5:
        print("loop",count)
        count +=1
    else:
        print("loop is done")
    print("out of loop")
    

     输出

    loop 0
    loop 1
    loop 2
    loop 3
    loop 4
    loop 5
    loop is done
    out of loop

    如果执行过程中被break啦,就不会执行else的语句啦

    #while...else
    count = 0
    while count <= 5:
        print("loop",count)
        if count ==3:
            break
        count +=1
    else:
        print("loop is done")
    print("out of loop")
    

     输出

    loop 0
    loop 1
    loop 2
    loop 3
    out of loop


     

    for

    for i in range(10):
        print(i)
    

      输出

    0
    1
    2
    3
    4
    5
    6
    7
    8
    9

    range()为for循环实现,而生成一个列表

    for.....esle

    for循环可以和else搭配,正常循环结束,执行else

    while可以定义为死循环,for循环有边界

    不想while 循环中间强制停止(break),可以用标志位

    #run_flag = True
    exit_flag = False #标志位
    while not exit_flag:
        ........
        .........
            #run_flag = False
            exit_flag = True
    

      

  • 相关阅读:
    uniapp 分包加载
    input和textarea中的placeholder与光标位置不一致问题
    uniapp调取摄像头扫码和生成二维码
    uniapp分享功能加传递参数
    js将后台传递的数组添加自定义的键值对
    uniapp返回上一层级带参数
    引入的字体文件包太大
    直接给变量赋值接口数据
    富文本编辑器上传不了微信文件夹的图片,使用vue-quill-editor编辑器
    博客园样式修改
  • 原文地址:https://www.cnblogs.com/fantsaymwq/p/9477052.html
Copyright © 2011-2022 走看看