使用while
循环遍历稍显麻烦,因为需要我们手动维护一个循环变量。
python 专门设计了一个for...in...
循环来更加方便的做遍历或者说迭代的工作。
for...in...
语法
for x in nums:
//循环体
说明:
x
遍历到的序列中的元素。在循环体内当做普通的变量使用即可。nums
是序列对象。for...in...
循环会自动的迭代序列中的每一个元素,一直遍历到序列中的最后一个元素。我们不需要担心会出现越界的问题。for...in...
解放了我们对循环变量的控制,让我们可以只关注循环体内的业务逻辑即可。
遍历字符串
s = "xyxyxy是一家优秀的企业"
for c in s:
print(c)
遍历列表
nums = [100, 200, 130, 170, 300]
for x in nums:
print(x)
遍历元组
nums = (100, 200, 130, 170, 300)
for x in nums:
print(x)
for...in...
循环的进一步研究
现在有个需求,我们现在需要输出0-10的11个数字
,用while
很容易实现, 但是我们需要手动维护一个循环变量。
那么能不能用for...in...
呢?肯定可以!只要我们生产一个序列,然后序列中存储0-10
这11个数字就好了。
for i in [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]:
print(i)
range()
基本使用
但是,如果需求是1000甚至更多的数据的时候怎么办,难道也要手写这个这么有规律的序列吗?
当然不需要,python 早就为我们实现了这种需求。
range()
可以帮我们实现一个这样的序列
for i in range(100):
print(i, end="\t")
if i > 0 and (i + 1) % 15 == 0:
print()
range()
深入研究
range()
是 python 内置的一个类型。
他会给我们一个不可变的数字序列
一般用在for
循环中来确定循环的次数。
range([start,] stop[, step])
参数说明:
3 个参数中第 1 个和最后 2 个是可选的。 这 3 个参数都必须是
int
第 2 个参数
stop
表示生产的序列结束值(不包括这个值)。start
表示序列的开始值(包括这个值)。 如果不提供默认从 0 开始step
表示步进值,其实就是相邻的两个数的差。默认是 1 。step
的值也可以是负值。
for i in range(1, 10, 1):
print(i, end="\t")
print()
for i in range(2, 10, 3):
print(i, end="\t")
print()
for i in range(20, 10, -1):
print(i, end="\t")