使用while循环遍历稍显麻烦,因为需要我们手动维护一个循环变量。

python 专门设计了一个for...in...循环来更加方便的做遍历或者说迭代的工作。


for...in...语法

for x in nums:
    //循环体

说明:

  1. x遍历到的序列中的元素。在循环体内当做普通的变量使用即可。

  2. nums是序列对象。

  3. for...in...循环会自动的迭代序列中的每一个元素,一直遍历到序列中的最后一个元素。我们不需要担心会出现越界的问题。

  4. 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])

参数说明:

  1. 3 个参数中第 1 个和最后 2 个是可选的。 这 3 个参数都必须是int

  2. 第 2 个参数stop表示生产的序列结束值(不包括这个值)。

  3. start表示序列的开始值(包括这个值)。 如果不提供默认从 0 开始

  4. step 表示步进值,其实就是相邻的两个数的差。默认是 1 。

  5. 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")


Copyright © 李振超 2018 all right reserved,powered by Gitbook
该文件最后修订时间: 2018-02-25 07:12:09

results matching ""

    No results matching ""