一、定义及作用

  1、定义:for循环跟while循环一样是重复某流程的一种机制。

  2、作用:类似于while循环的功能,但是在循环取值,也称遍历取值方面,要比while循环简洁,所以也俗称取值循环。

二、具体使用

  1、基本语法:

'''
for 变量名 in 可迭代对象(列表、字典、字符串、元组、集合):
    代码1
    代码2
    代码3
'''

  2、列表,字典,字符串的取值情况:

    ①列表:变量名从左往右依次遍历列表中元素,每次循环被赋值为该元素的值。

a = [1, 2, 3]  # 列表中有3个元素
for x in a:  # 循环3次
    print(x)  # 结果为依次为 1 2 3

    ②字典:变量名从左往右依次遍历字典中元素,每次循环被赋予该元素的key值。

a = {'b': 1, 'c': 2, 'd': 3}  # 字典中有3个元素
for x in a:  # 循环3次
    print(x, a[x])  # 结果依次为 b 1  c 2  d 3

    ③字符串:便令名从左往右依次遍历字符串中每单个字符,每次循环被赋予该单个字符的值。

a = 'qwe r'  # 字符串中有5个单个字符(空格也为字符)
for x in a:  # 循环5次
    print(x)  # 结果为 q w e   r

    ④补充:for循环中每次循环虽然变量名被赋值,但有时未必需要打印该变量,可以进行其他操作。 

for x in [1,2,3]:  # 循环3次
    print('其他操作')  # 每次循环运行的代码

  3、for循环与while循环的异同:

    ①相同之处:都是循环,有时可以互换。

    ②不同之处:

      Ⅰ:while:根据条件循环,所以循环次数取决于条件合适为假。

      Ⅱ:for:每次循环依次取值,所以循环次数取决于in后面包含的可取值的个数。

  4、for循环与range:

    ①range基本功能:range(整型数字):放在for循环的in后面,相当于遍历了一个从0开始,总数为该数字的自然数列表。

for x in range(3):  # 相当于遍历了列表[0,1,2]
    print(x)  # 结果为 0 1 2

    ②range之限头限尾:

for x in range(2, 5):  # 从自然数列表的2号索引开始遍历到4号索引
    print(x)  # 结果为 2 3 4

    ③range之步长:

for x in range(1, 10, 3):  # 从自然数列表的1号索引开始,每次加3,遍历到9号索引
    print(x)  # 结果为 1 4 7

    ④range搭配len功能:可以使用len得到某列表的元素数量,利用此数量搭配range可以按索引取列表的值,但是此法比较麻烦,不推荐使用。

l = ['a', 'b', 'c']  # 列表有3个元素
for x in range(len(l)):  # 通过len返回元素数量3
    print(l[x])  # 结果为 a b c

    ⑤range在python2与python3中的区别:

      Ⅰ:python2中:通过range(),会生成一个真的列表。

      Ⅱ:python3中,通过range(),不会真的生成一个列表,而是相当于生成了一个不占很多内存空间的中间人,每次需要取值时,才会从列表中拿出对应值。

  5、for循环与break:理同while循环。除了正常遍历完结束只有通过break这一种手段可以终止其循环进程。

for x in range(5):  # 循环5次
    if x == 2:
        break  # 当遍历过程中,x取值为2时,即在第三次循环时,立即终止循环
    print(x)  # 结果为 0 1

  6、for循环与else:理同while循环。

for x in range(3):  # 循环3次
    print(x)
else:
    print('循环3次完成')  # for循环体中没有出现被break打断的情况结束则执行此代码

  7、for循环与continue:与while循环略有区别。

for x in range(5):  # 循环5次
    if x == 3:  # 当x取值为3的那次循环执行到此处,会执行if判断的子代码
        continue  # 子代码为continue立即开始下次循环,不执行本次循环的后续代码,但因为for循环依次取值的特性,循环进度不受子代码continue的影响
    print(x)  # 结果为 0 1 2 4

  8、for循环嵌套:外层循环每一次循环体中的子循环会完整遍历一遍。

for x in range(3):  # 外层共循环3次
    print('A')
    for y in range(3):  # 子循环每次3次
        print('a')  # 结果为A a a a A a a a A a a a

三、相关拓展之print相关使用:

  1、print之逗号使用:print括号中的内容若中间加上逗号,则逗号两边的内容会被被空格分开输出。

print('a', 'b', 'c')  # 结果为 a b c

  2、print之换行符与end参数:print括号中的内容会被默认为在结尾加上了换行符\n,若要去除换行符,需要使用end功能重新定义结尾参数。

print('i am ')  # 结尾默认为换行符\n,所以不会与下一行代码在同一行输出
print('chinese')
print('i am ', end='')  # 用end功能将结尾定义为空,则可会与下一行代码在同一行输出
print('chinese')
# 结果为 i am chinese
print('以星号结尾', end='*')  # 用end功能将结尾定义为*,所以结果为 以星号结尾*

 

posted on 2020-01-02 11:01  焚音留香  阅读(477)  评论(0编辑  收藏  举报