• 03-python流程控制


    一、if语句

    '''
    if 条件1: # 条件1成立的情况下会运行子代码块
        子代码1
        子代码2
        子代码3
        ...
    elif 条件2: # 条件2成立的情况下会运行子代码块
        子代码1
        子代码2
        子代码3
        ...
    elif 条件3: # 条件3成立的情况下会运行子代码块
        子代码1
        子代码2
        子代码3
        ...
    ......
    else:      # 上述条件都不成立的情况下会运行else包含的子代码块
        子代码1
        子代码2
        子代码3
        ...
    '''
    
    # 示范:   如果:成绩>=90,那么:优秀
    #
    #        如果成绩>=80且<90,那么:良好
    #
    #        如果成绩>=70且<80,那么:普通
    #
    #        其他情况:很差
    
    score=input('请输入您的分数进行查询:') # score="abc"
    if score.isdigit(): # "99".isdigit()
        score=int(score) # 把纯数字的字符串转换成整型,score=int("99")
    
        if score >= 90:
            print('成绩的级别为:优秀')
        elif score >= 80:
            print('成绩的级别为:良好')
        elif score >= 70:
            print('成绩的级别为:普通')
        else:
            print('成绩的级别为:很差')
    
    else:
        print('必须输入纯数字')

    二、 while语句

    # 1、嵌套多层循环,需求是想一次性终止所有层的循环,推荐使用方式二
    # 方式一:
    while 条件1:
        while 条件2:
            while 条件3:
                break
            break
        break
    # 方式二:
    tag=True
    while tag:
        while tag:
            while tag:
                tag=False

    # 2、循环嵌套小案例
    # 需求一:输错账号密码,重新输入重新验证
    # 需求二:输错3次,退出程序
    # 需求三:输对账号密码,登录成功之后,可以循环接收用户输入的命令并执行
    username = 'egon'
    password = '123'
    
    count = 0
    
    while count < 3:  # count=3
        # if count == 3:break
    
        inp_user = input('请输入你的用户名:')
        inp_pwd = input('请输入你的密码:')
    
        if inp_user == username and inp_pwd == password:
            print('登录成功')
    
            while True:
                cmd = input('请输入你的命令(输入q退出): ')
                if cmd == 'q':
                    break
                print('%s 正在执行' % cmd)
    
            break
        else:
            print('输入的账号或密码错误')
            count += 1  # count=3
    
    
    username = 'egon'
    password = '123'
    
    count = 0
    tag=True
    
    while tag:
        if count == 3:break
    
        inp_user = input('请输入你的用户名:')
        inp_pwd = input('请输入你的密码:')
    
        if inp_user == username and inp_pwd == password:
            print('登录成功')
            while tag:
                cmd = input('请输入你的命令(输入q退出): ')
                if cmd == 'q':
                    # 退出程序
                    tag=False
                else:
                    print('%s 正在执行' % cmd)
    
        else:
            print('输入的账号或密码错误')
            count += 1  # count=3

    # 3、while+continue:continue会结束本次循环,直接进入下一次循环
    count = 1
    
    while count < 6:  # 5 < 6
        if count == 4:  # 4==4
            count += 1 # count=5
            continue  # 强调:在continue之后不应该写与其同级的代码,因为为将无法运行
    
        print(count)  #
        count += 1  # 6

    #4、while+else
    count=1
    while count < 6:
        # if count == 3:break
        if count == 4:
            count+=1
            continue
        print(count)
        count+=1
    else:
        #else对应的子代码块会在while循环结束后,并且不是被break强行结束的情况下执行
        print('====end====')

    三、for循环

    for循环介绍:

    
    
    # 针对循环取值操作,while循环并不擅长,于是python提供一个专门循环取值操作:for循环
    
    students = ['egon', 'lxx', 'alex']
    for x in students: # 有几个值就循环几次
        print(x)
    
    dic={'name':'egon','age':18,'sex':'male'}
    for aaa in dic: # 从字典里取出的默认是key,
        print(aaa,dic[aaa])
    
    #循环输出三次hello world:
    count = 0
    while count < 3:
        print('======')
        print('hello world')
        print('======')
        count+=1
    
    for x in ['a','b','c']: # x='c'
        print('======')
        print('hello world')
        print('======')
    
    for x in range(3):
        print('======')
        print('hello world')
        print('======')
    
    
    # range(1,3) # 从1开始,顾头不顾尾
    for x in range(1,3):    # [1,2]
        print(x)            # 输出: 1 2
    
    
    # range(3):默认从0开始,顾头不顾尾,到2结束,0,1,2
    # range(1,6) # 可以指定开头,从1开始,顾头不顾尾,到5结束,1 2 3 4 5
    # range(1,6,2) # 可以指定步长,1 3 5
    
    
    students = ['egon', 'lxx', 'alex']
    for x in students:
        print(x)
    
    for i in range(len(students)): # [0,1,2]
        print(i)
        print(students[i])
    
    #  0        2       4
    l=['a','b','c','d','e','f'] #
    # range(len(l))
    
    for i in range(0,len(l),2):     #['a','c','e' ]
        print(l[i])
    总结:
    一:while循环与for循环
    相同之处:都是循环,都是用来做重复的事情
    不同之处
    1、
    while循环通常用来循环执行某段代码
    for循环通常用来进行循环取值

    2、
    while循环的循环次数取决于条件什么时候为假
    for循环循环的次数取决in后的数据类型所包含的值的个数

    二:for+range():range用来产生一个数字序列
    用途1:用来重新n次某段代码
    用途2:range可以用来产生数字序列,数字对应的是列表的索引
    所以说,for+range()是可以按照索引编列列表

    for与break、continue的使用:
    # for+continue
    for i in range(5): # [0,1,2,3,4]
        if i == 2 or i == 3:continue
        print(i)
    
    #for+else
    for i in range(3): #
        username=input('username>>: ')
        password=input('password>>: ')
        if username == 'egon' and password == '123':
            break
        else:
            print('用户名或密码错误')
    else:
        print('账号密码输错次数达到最大限制,退出程序')
    
    

    for循环案例:

    1、使用for循环实现打印“*”金字塔的操作,效果如图:

    m_num = input("请输入您需要打印的金字塔层数:")
    num = int(m_num)
    for i in range(num):
            for x in range(num -i -1):
                print(" ",end="")
            for y in range(2*i+1):
                print("*", end="")
            for x in range(num -i -1):
                print(" ",end="")
            print("")

    2、for循环应用切片操作:

    #pps:for循环使用嵌套切片
    #就是利用range()函数生成1-99的整数,然后从start_index=2(即3)开始以step=3取值,直到终点,再在新序列中取最后五个数。
    for i in range(1,100)[2::3][-5::]:
        print(i,end=" ")                    # 输出结果 87 90 93 96 99
     
     
  • 相关阅读:
    Redis过期机制
    vim使用
    ex command in Linux with examples
    【转】Linux 文档编辑 : ex 命令详解
    vscode go语言环境搭建
    golang slice a 的地址和a[0]的地址不一样
    文件加锁,作用是用来做什么?以及使用细节
    文件锁
    go创建指定大小的文件,获取文件大小
    go 实现内存映射和进程间通信
  • 原文地址:https://www.cnblogs.com/zhubincheng/p/12341654.html
Copyright © 2020-2023  润新知