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
原文地址:https://www.cnblogs.com/abobo/p/8029071.html