zoukankan      html  css  js  c++  java
  • python流程控制if判断与循环(for、while)

    流程控制if判断与循环for、while

    一、if判断

    1.1单分支

    # 单分支
    
    # if一般用于判断/选择的场景
    # 90以上优秀
    score = 95
    if score > 90:
        print('优秀')
    

    1.2双分支(1)

    # 双分支
    
    # if...else
    # 90以上优秀,90一下良好
    score = 95
    # if score > 90:
    #     print('优秀')
    # else:
    #     print('良好')
    

    1.2双分支(2)

    score = 75
    # print('优秀') if score > 90 else print('良好')  
    # 单分支没有,多分支也没有
    
    #结果一  条件  结果二
    
    

    1.3多分支(1)

    ## if...elif...elif...else
    ## 90以上优秀,90-70良好,70以下不及格
    # score = 95
    # if score > 90:
    #     print('优秀')
    # elif score > 70:
    #     print('良好')
    # else:
    #     print('及格')
    

    1.3多分支(2)

    ## if...if...if...if
    ## 90以上优秀,90-70良好,70以下不及格
    score = 95
    if score > 90:
        print('优秀')
    if score > 70 and score < 90:
        print('良好')
    if score < 60:
        print('及格')
    

    二、while循环

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

    2.1 while循环

    while循环又称为条件循环,所谓的循环就是重复做某件事,当然要给一定的条件限制,不然就永远的循环下去了,成为了死循环。

    1. while循环的格式
    while 条件:
    code 1
    code 2
    code 3
    ...
    #可以这样理解
    '''
    while(当) <条件>:
        <需要进行重复的代码块>  # 当条件成立时会进行运行,结束完代码块后会再一次判断条件,成立再运行,运行完再判断条件,%
    '''
    
    如:
    while True:
        print('*1'*100)
        print('是不是傻'*10)
    #其实这是一个死循环,一直输出到电脑报废,请谨慎使用
    
    
    # 在实现登陆功能的时候可使用,一直到登陆成功
    while True:
        name = 'chen'
        pwd = '123'
        inp_name =input('name:')
        inp_pwd = input('pwd:')
        if name==inp_name and pwd == inp_pwd:
            print('登陆成功')
        else:
            print('你咋那么笨呢')
        ##其实这还是一个死循环,但是存在阻塞
    

    其实这还是一个死循环,但是存在阻塞

    2.2while + break

    break就是循环限制的一种哦,意思是直接退出循环

    # 可以这样理解
    '''
    
    while(当) <条件>:
        <需要进行重复的代码块>  # 当条件成立时会进行运行,结束完代码块后会再一次判断条件,成立再运行,运行完再判断条件,%
        break  # 遇到break后终止while循环
    '''
    
    while True:
    	print(1)
    	print(2)
    	break
    	print(3)
    #输出:
    1
    2		
    
    # 在实现登陆功能的时候可使用,一直到登陆成功,后退出
    while True:
        name = 'chen'
        pwd = '123'
        inp_name =input('name:')
        inp_pwd = input('pwd:')
        if name==inp_name and pwd == inp_pwd:
            print('登陆成功')
            break
        else:
            print('你咋那么笨呢')
    
    print('啊哈,不循环了哦')
    

    2.3while + continue

    continue的意思终止本次循环,直接进入下一次循环中

    n = 1
    while n < 4:
        print(n)
        n += 1
    #输出
    1
    2
    3
    
    
    n = 1
    while n < 10:
        if n == 8:
            n += 1   # 如果注释这一行,则会进入死循环
            continue
        print(n)
        n += 1
    #输出
    1
    2
    3
    4
    5
    6
    7
    9
    

    注意:continue不能放在程序的最后一步执行,注意,不是最后一行

    2.4 while 循环嵌套

    退出一层循环

    #退出内层循环的while循环嵌套
    while True:
        name = 'chen'
        pwd = '123'
        inp_name = input('name:')
        inp_pwd = input('pwd:')
        if inp_name == name and inp_pwd == pwd:
            print('successful')
            while True:
                cmd = input('请输入命令')
                if cmd == 'q':
                    print(f'{cmd}功能执行')
                    break
        else:
            print('不对啊')
    print('循环退出')
    

    ​ 退出双重循环

    #退出内层循环的while循环嵌套
    while True:
        name = 'chen'
        pwd = '123'
        inp_name = input('name:')
        inp_pwd = input('pwd:')
        if inp_name == name and inp_pwd == pwd:
            print('successful')
            while True:
                cmd = input('请输入命令')
                if cmd == 'q':
                    break
                print(f'{cmd}功能执行')
            break
        else:
            print('不对啊')
    print('循环退出')
    

    2.5tag控制循环退出

    tag = True
    while tag:
        name = 'chen'
        pwd = '123'
        inp_name = input('name:')
        inp_pwd = input('pwd:')
        if inp_name == name and inp_pwd == pwd:
            print('successful')
            while tag:
                cmd = input('请输入命令')
                if cmd == 'q':
                    tag = False
                print(f'{cmd}功能执行')
        else:
            print('不对啊')
    print('循环退出')
    

    2.6while+else

    else会在while没有被break的时候才会执行else中的代码

    n = 1
    while n<3
    	print(n)
        n += 1
    else:
        print('退出')
    #输出:
    1
    2
    退出
    

    三、for循环

    3.1for循环的语法

    简单的来说for循环更像是遍历,for循环可以遍历任何序列的项目,如一个列表,字典或者一个字符串。for循环的循环次数受限于容器类型的长度,for循环也可以按照索引取值。

    name = ['chen','python','nick','shanghai']
    for i in name:
        print(i)
        
    #输出:
    chen
    python
    nick
    shanghai
    
    print(name[1])
    #输出:
    python
    

    3.2for + break

    for 循环被直接调出本层循环

    name = ['chen','python','nick','shanghai']
    for i in name:
        if i == 'python':
            break
        print(i)
    #输出:
    chen
    

    3.3 for+continue

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

    name = ['chen','python','nick','shanghai']
    for i in name:
        if i == 'python':
            continue
        print(i)
    #输出:
    chen
    nick
    shanghai
    

    3.4 for循环的嵌套

    外层循环每一次,内层循环所有的。

    for i in range(3):
        print("----------",i)
        for j in range(2):
            print("**********",j)
    #输出:
    ---------- 0
    ********** 0
    ********** 1
    ---------- 1
    ********** 0
    ********** 1
    ---------- 2
    ********** 0
    ********** 1
    

    3.5 for+else

    在没有break触发的时候执行else内部的代码

    name = ['chen','python','nick','shanghai']
    for i in name:
        if i == 'python':
            continue
        print(i)
    else:
        print('没有了')
    #输出:
    chen
    nick
    shanghai
    没有了
    

    3.6 for循环实现loading

    import time
    print('Loading',end='')
    for i in range(6):
        print(".",end='')
        time.sleep(0.2)
    

    Loading......

    四、for循环和while循环的区别

    while:    
        1. 会进入死循环(不可控),尽量少使用while循环    
        2. 世间万物都可以作为循环的对象
    for:    
        1. 不会进入死循环(可控),以后尽量使用for循环    
        2. 只对容器类数据类型+字符串循环(可迭代对象)
    
  • 相关阅读:
    HTTP method GET is not supported by this URL
    idea 报错javax/xml/bind/DatatypeConverter
    PartyBid 学习笔记 之 第二张卡片总结
    PartyBid 学习笔记 之 第一张卡片总结
    Yeoman 之 Jade自动化生成的Grunt实现
    Jade —— 简洁的HTML模版引擎
    Underscore.JS 之 消灭for循环
    SqlServer 根据时间统计数据展示图表
    C# 中使用 JavaScriptSerializer 序列化时的时间类型处理
    jQuery 插件 autocomplete 的使用
  • 原文地址:https://www.cnblogs.com/SkyOceanchen/p/11282444.html
Copyright © 2011-2022 走看看