流程控制(二)

循环结构

while + else 循环结构

  # while + else 循环是指在while循环体正常运行(while子代码中无break命令)至结束后,运行另一方向的命令,即else的子代码。
    具体形式:
        while 判别条件:
                判别条件成立时执行的子代码
        else:
                判别条件不成立时执行的子代码
    例:
        count = 1
        while count < 10:  # 当count小于10时,进入循环
            print(count)
            count += 2
        else:  #当count不小于10时,执行else代码块
            print('end')
  # 如果while循环体不正常结束的时候,else的子代码块不会运行
        count = 1
        while count < 10:  # 当count小于10时,进入循环
            print(count)
            count += 2
            if count > 6:
                break
        else:  #当count不小于10时,执行else代码块
            print('end')

死循环

  # 可以无休止运行,并且无法结束的循环
    例:
        count = 0
        while True:  # 判断条件永远为True,无限循环
              print('count')
              count += 1

while嵌套

  # while 嵌套是指while的循环体内出现一层或几层while循环
    例:
        while True:
            name = input('name:')
            password = int(input('password:'))
            if name == 'oliver' and password == 321:
                print('success in')
                while True:
                    order = input('order:')
                    if order == 'y':
                        print('nice')
                        break
                break
            else:
                print('name or password is wrong')
                            if order == 'y'
                                print('nice')
                                break
                        break
                     else:
                        print('name or password is wrong')

for 循环

  for 循环一般用于循环取值的情况,此类问题下for循环比while循环更简单。for循环的使用频率率也比while循环高。不过需要注意的是for循环能做的while循环都能完成,而有些while循环可以做的,for循环并不能很好地完成。

    具体形式:
        for 变量名 in 循环对象: 循环对象可以是字符串、列表、元组、字典、集合
    循环体:
        for循环体每次都会将循环对象中的一个元素赋值给变量名
    例:
        list = ['oliver', 'chance', 23, 'eat']
        for i in list:
            print(i)

for 循环字符串

  # for 循环对象为字符串时,功能为依次提取字符串里的每个字符
  例:
     for i in 'nice done':
          print(i)

for 循环列表、元组

  # for 循环对象为列表或者元组时,功能为依次提取其中的每一个元素
  例:
    list = [11, 22, 33, 44, 55]
    tup = (11, 22, 33, 44, 55)
    for i in list:
        print(i)
    for n in tup
        print(n)

for 循环字典

  # for循环对象是字典的话,功能为依次提取其key键名,无法直接获得真实数据
    例:
      dic = {'name':'oliver', 'age':'19', 'gender':'male'}
      for i in dic:
          print(i)

  # for循环对象是集合的话,功能为提取其元素,但是由于集合内元素是无序的,所以输出信息并不是我们肉眼看到元素次序
    例:
       set = {11, 22, 33, 44, 55}
       for i in set:
          print(i)

for 循环补充

for + break 结束本层for循环

    例:
       list = ['laugh', 'happy', 'sad', 'cry']
       for i in list:
           print(i)
           break 

for + continue 结束本次for循环

    例:
      for i in [11, 22, 33, 44, 55]:
          if i == 33:
              continue  # 跳出本次循环,执行下一次循环
          print(i) 

for + else

  # for循环正常结束(循环体无break打破循环)后执行else子代码
    例:
      for i in [11, 22, 33, 44, 55]:
        print(i)
      else:  # for循环正常结束,执行下一步else子代码
        print('end')
  # for循环非正常结束(循环体内break打破循环)后不再执行else子代码
    例:
      for i in [11, 22, 33, 44, 55]:
        print(i)
        break  # 结束循环,执行下一步for的同级代码 
      else:  # for循环非正常结束,else子代码不再执行
        print('end')

for 循环嵌套

  在这里用构建乘法表的问题来解释嵌套问题。

        for i in range(1, 10,):
            for j in range(1, i+1,):
                z = i * j
                print('%s*%s=%s' %(i, j, z), end=' ')
            print(' ')

range关键词

  range关键字的主要作用就是生成一个元素区间为左闭右开的列表

range关键字在python2.x版本和python3. x版本的差别

  • python2.x版本中的range关键字作用是生成一个存在的列表,会生成在内存空间内,数据较多时比较占用空间
  • python3.x版本中的range关键字作用是生成一个不存在的列表,不过生成的列表内部数据可以访问,并且数据量比较大时,不占用空间
  • python2.x版本中的xrang关键字的作用相当于python3.x版本的range关键字

range关键字的用法(常与for连用)

  1. 循环输出0——20这样的一组数据,括号内只有一个数字时,默认从0开始
    for i in range(21):  # 循环访问0——20,,并且循环赋值给 i
        print(i)
  1. 指定区间进行循环输出,括号内有两个数,分别是列表元素的区间的上、下界
    for i in range(14, 21):  # 循环访问14——20,,并且循环赋值给 i
        print(i)
  1. 在指定区间内指定间隔循环输出,括号内有三个数,分别是列表元素区间的上、下界和间隔数
    for i in range(3, 21, 3):  # 循环访问3——20,每次访问中间间隔为3,并且循环赋值给 i
        print(i)
posted @ 2022-03-08 20:28  Oliver-Chance  阅读(38)  评论(0)    收藏  举报