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)
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
取值方式(序列包括:列表、字符串、元祖)
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下的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
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
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
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