for XX in XX结构
这是一个循环!!
in 后面可跟range,enumerate,序列等
1 for i in [(1,2),(2,3),("gege",5)]: 2 print (i)
执行结果:
(1, 2) (2, 3) ('gege', 5)
对上面的代码稍加改动:
1 for i,j in [(1,2),(2,3),("gege",5)]: 2 print (i) 3 print (j)
执行结果:
1 1 2 2 3 2 4 3 5 gege 6 5
in后还可跟enumerate,enumerate返回一个enumerate对象
该对象可迭代,有指针功能,这个指针的特性类似于文件(读取文件的时候,f.read()只能读一行,读完一行,文件的指针指向下一行,再次执行f,read(),
就又读取一行,文件指针指向下一行)
1 a = enumerate([(1,2),(2,3),("gege",5)]) 2 print (type (a)) 3 print (a) 4 print("##############################") 5 for i,j in a: 6 print (i) 7 print (j) 8 print("$###############################") 9 for b in a: 10 print (b) 11 print("$###############################") 12 for c in enumerate([(1,2),(2,3),("gege",5)]): 13 print (c) 14 15 b = range(3) 16 print (b) 17 print (type(b)) 18 for i in b: 19 print (i)
执行结果:
1 <class 'enumerate'> 2 <enumerate object at 0x01FCA620> 3 ############################## 4 0 5 (1, 2) 6 1 7 (2, 3) 8 2 9 ('gege', 5) 10 $############################### 11 $############################### 12 (0, (1, 2)) 13 (1, (2, 3)) 14 (2, ('gege', 5)) 15 range(0, 3) 16 <class 'range'> 17 0 18 1 19 2
for前面可跟函数,如果前面跟函数,那么整个语句要用[]修饰,整个语句返回的是函数的返回值
1 b = [print(i) for i in range(10)] 2 print ("###########################") 3 print (b)
执行结果:
1 0 2 1 3 2 4 3 5 4 6 5 7 6 8 7 9 8 10 9 11 ########################### 12 [None, None, None, None, None, None, None, None, None, None]
print函数的返回值是None,默认我们定义的函数,如果没有定义返回值,则默认为None
1 >>> print(print(3)) 2 3 3 None