for循环中常见的一个函数是range(),然而有时候直接打印range的时候,得到的结果却不是我们想要的,这个时候,可以用list列表来转换一下range的结果,让我们更清除的打印出range中的元素。
例如:
s=10
d=5
for i in range(s,s+d):
s=s+1
print(s)
print(i)
print(range(s, s + d, 1))
print(list(range(s,s+d,1)))
运行结果:
11
10
range(11, 16)
[11, 12, 13, 14, 15]
12
11
range(12, 17)
[12, 13, 14, 15, 16]
13
12
range(13, 18)
[13, 14, 15, 16, 17]
14
13
range(14, 19)
[14, 15, 16, 17, 18]
15
14
range(15, 20)
[15, 16, 17, 18, 19]
这里可以明显的看出两个输出的不同结果,例如结果range(11, 16)和[11, 12, 13, 14, 15],在语句
print(range(s, s + d, 1))中,最后一个参数1是表示range中元素步进为1,如果写2的话,意思就是隔一个元素取一个,于是,修改代码:
'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:531509025
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
s=10
d=5
for i in range(s,s+d):
s=s+1
print(s)
print(i)
print(range(s, s + d, 1))
print(list(range(s,s+d,1)))
print(list(range(s,s+d,2)))
运行结果:
11
10
range(11, 16)
[11, 12, 13, 14, 15]
[11, 13, 15]
12
11
range(12, 17)
[12, 13, 14, 15, 16]
[12, 14, 16]
13
12
range(13, 18)
[13, 14, 15, 16, 17]
[13, 15, 17]
14
13
range(14, 19)
[14, 15, 16, 17, 18]
[14, 16, 18]
15
14
range(15, 20)
[15, 16, 17, 18, 19]
[15, 17, 19]