• for循环


    概述

    使用for循环的条件:只要是有次数的,或者是固定值的循环次数,都可以用for循环。

    特点

    1、Python for循环可以遍历任何序列的项目,如:字符串,元祖,列表。

    2、for 循环语法:

    1 for iterating_var in sequence:
    2       statements(s)
    3 
    4 
    5 例如:
    6 #!/usr/bin/python
    7 
    8 for x in "hello" :
    9     print(x)
    View Code

    3、注意事项:
    a、如果一个序列包含一个表达式列表,它是第一个执行。
    b、然后该序列中的第一项赋值给迭代变量,iterating_var。
    c、接下来执行语句块。列表中每个项目分配到iterating_var。
    d、代码块被执行,直到整个序列被耗尽。
    e、格式遵循代码块缩进原则。

    range函数

    1、循环结构是用于迭代多个项的for语句,迭代形式可以循环序列的所有成员。
    2、range(i,j,[,步进值])
        a、如果所创建的对象为整数,可以用range。
        b、i 为初始值。
        c、j 为终止数值。但不包括在范围内,步进值为可选参数,不选的默认为1。
        d、i不选的话默认值为0。

     1 #!/usr/bin/python
     2 num = 0
     3 for x in range(1,101) :
     4       num += x
     5 print(num)
     6 
     7 
     8 输出结果:
     9 5050
    10 
    11 
    12 
    13 range函数,不带起始值、结束值、步长值的使用:
    14 for x in range(1,10) :
    15     print(x, "hellp world")
    16 
    17 输出结果:
    18 1 hellp world
    19 2 hellp world
    20 3 hellp world
    21 4 hellp world
    22 5 hellp world
    23 6 hellp world
    24 7 hellp world
    25 8 hellp world
    26 9 hellp world
    27 
    28     
    29     
    30 range函数,不带起始值、结束值、步长值的使用:
    31 for x in range(1,10,2) :
    32     print(x, "hellp world")
    33     
    34 输出结果:
    35 1 hellp world
    36 3 hellp world
    37 5 hellp world
    38 7 hellp world
    39 9 hellp world
    range(i,j,[,步进值])

    取值方式(序列包括:列表、字符串、元祖)

     1 #!/usr/bin/python
     2 
     3 #定义列表、字符串、元祖变量:
     4 s = "hello"
     5 l = [1,2,3,'a','b']
     6 t = (7,8,9,'x','y')
     7 d = {1:111 , 2:222 , 3:333} 
     8 
     9 1、字符串取值
    10 for x in "hello" :
    11     print(x)
    12     
    13     
    14 2、元祖取值
    15 for i in t:
    16     print(i)
    17     
    18 输出结果:
    19 7
    20 8
    21 9
    22 x
    23 y
    24 
    25 
    26 3、列表取值
    27 for i in l:
    28     print(i)
    29 
    30 输出结果:
    31 1
    32 2
    33 3
    34 a
    35 b
    36 
    37 
    38 4、获取序列索引中的值(按照长度取值)
    39 for x in range(len(s)):
    40      print(s[x])
    41 
    42 
    43 输出结果:
    44 h
    45 e
    46 l
    47 l
    48 o
    49 
    50 
    51 
    52 5、通过序列本身的偏移指数---索引+取值:
    53 
    54 例如:
    55 #!/usr/bin/python
    56 s= "hello"
    57 for x in range(len(s)):
    58      print(x,s[x])
    59 
    60 注意:
    61 获取序列的索引:
    62 range(5):获取整数长度
    63 len("hellp"):获取字符长度
    64 x获取的是索引值。
    65 
    66 
    67 6、关于字典的遍币:
    68 重点:字典是无序的,因此打印出来的是key,而不是value
    69 
    70 for i in d:
    71     print(i)
    72 
    73 输出结果:
    74 1
    75 2
    76 3
    77 
    78 
    79 
    80 #打印values和values下标:
    81 for k,v in enumerate(d.values(),1):
    82     print("values:",k,v)
    83 
    84 输出结果:
    85 values: 1 111
    86 values: 2 222
    87 values: 3 333
    88 
    89 
    90 
    91 #打印Key和values(这个数据量不大还好,如果数据量很大就会造成系统雪崩):
    92 for k,v in d.items():
    93     print(k,v)
    94 
    95 输出结果:
    96 1 111
    97 2 222
    98 3 333
    for循环取值字符集-元祖-列表-字典

    关于for下的else的使用

    1、如果for循环执行成功,就会产生else字句。

     1 import time
     2 
     3 s = "hellp"
     4 l = [1,2,3,'a','b']
     5 t = (7,8,9,'x','y')
     6 d = {1:111,2:222,5:555,3:333}
     7 
     8 for x in range(3):
     9     print(x)
    10     time.sleep(1)
    11 else:
    12     print("ending")
    13     
    14     
    15 输出结果:
    16 0
    17 1
    18 2
    19 ending
    View Code


    2、for循环的非正常执行,是不会产生else字句。(使用break跳出循环)

     1 import time
     2 s = "hellp"
     3 l = [1,2,3,'a','b']
     4 t = (7,8,9,'x','y')
     5 d = {1:111,2:222,5:555,3:333}
     6 
     7 for x in range(1,11):
     8     print(x)
     9     if x == 6:
    10         break
    11 
    12 else:
    13     print("ending")
    14 
    15 
    16 for x in range(1,11):
    17     print("--------------->",x)
    18     
    19 输出结果:
    20 1
    21 2
    22 3
    23 4
    24 5
    25 6
    26 ---------------> 1
    27 ---------------> 2
    28 ---------------> 3
    29 ---------------> 4
    30 ---------------> 5
    31 ---------------> 6
    32 ---------------> 7
    33 ---------------> 8
    34 ---------------> 9
    35 ---------------> 10
    View Code

    3、当满足当次条件,就跳出当次循环体,进行下一次循环体

     1 #!/usr/bin/python
     2 import time
     3 s = "hellp"
     4 l = [1,2,3,'a','b']
     5 t = (7,8,9,'x','y')
     6 d = {1:111,2:222,5:555,3:333}
     7 
     8 for x in range(1,11):
     9     print(x)
    10     if x == 2:
    11         print("hello 2222")
    12         continue
    13     if x == 6:
    14         break
    15     print("#"*10)
    16 
    17 else:
    18     print("ending")
    19 
    20 
    21 for x in range(1,11):
    22     print("--------------->",x)
    23     
    24     
    25 输出结果:
    26 1
    27 ##########
    28 2
    29 hello 2222
    30 3
    31 ##########
    32 4
    33 ##########
    34 5
    35 ##########
    36 6
    37 ---------------> 1
    38 ---------------> 2
    39 ---------------> 3
    40 ---------------> 4
    41 ---------------> 5
    42 ---------------> 6
    43 ---------------> 7
    44 ---------------> 8
    45 ---------------> 9
    46 ---------------> 10    
    View Code

    4、需要使用pass来进行站位:
    用途:当满足某个条件的,需要执行某件事儿,但是做什么事儿还没想好,等想好了再回来补全。

     1 #!/usr/bin/python
     2 import time
     3 s = "hellp"
     4 l = [1,2,3,'a','b']
     5 t = (7,8,9,'x','y')
     6 d = {1:111,2:222,5:555,3:333}
     7 
     8 for x in range(1,11):
     9     print(x)
    10     if x == 3:
    11        pass          #占位符,等待下一个事物执行
    12     if x == 2:
    13        print("hello 2222")
    14        continue     #跳出单个循环
    15     if x == 5:
    16        exit()           #跳出整个脚本
    17     if x == 6:
    18        break        #跳出整个循环
    19     print("#"*10)
    20 
    21 else:
    22     print("ending")
    23 
    24 for x in range(1,11):
    25     print("--------------->",x)
    26 
    27 
    28 
    29 输出结果:
    30 1
    31 ##########
    32 2
    33 hello 2222
    34 3
    35 ##########
    36 4
    37 ##########
    38 5
    View Code
  • 相关阅读:
    使用Bat自动打包并通过FTP发送到备份服务器——实战测试
    什么是STP
    【基础】华为单臂路由技术配置记录
    Windows Server 2012系统上安装.net framework3.5教程
    eNSP启动设备AR1失败记一次解决步骤
    Linux系统设置 SSH 通过密钥登录
    windows和linux修改ipv6和ipv4的优先级
    思科交换机配置中继
    【Nginx】Nginx反向代理转发Host设置
    idea查看类的uml图
  • 原文地址:https://www.cnblogs.com/abobo/p/8029071.html
Copyright © 2020-2023  润新知