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