python-程序控制-for(包含range函数)(四)

1.for循环的一般形式

for tmpVar in Iterable:
                block
  1. tmpVar 是临时变量
  2. Iterable 是可迭代对象
  3. 第一行是循环条件,当对可迭代对象的迭代遍历结束时,for循环也就结束
  4. block是循环体,每一次循环,程序都要进入到这个block内来执行代码

2.for循环,从形式上可以分为两种

1.使用range函数自由控制循环次数
2.遍历容器

2.1 range 函数

range函数返回一个对象,该对象产生一个整数序列。
range(start,stop,step)函数有3个参数

1.start 整数序列开始的位置
2.stop 整数序列结束的位置
3.step 步长

开始与结束位置所组成的区间[start, stop)是左闭右开的,start默认是0,step默认是1。下面向你展示range函数的使用方法

1.range(1, 5) 产生的整数序列是1, 2, 3, 4
2.range(0, 4, 2) 产生的整数序列是0,2
3.range(5, 0, -1) 产生的整数序列是5, 4, 3, 2, 1
4.range(3) 产生的整数序列是0,1,2
for i in range(1,11,2):
    print(i)
# range[start,stop,step)
#start默认值是0,step默认值是1

2.2 使用range()函数编写for循环

编写for循环输出从1到10(包括10)的整数

for i in range(1, 11):
    print(i)

range(0, 11) 产生了整数序列:1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ,结合上一篇教程《迭代遍历思维》的内容来理解这段代码。 range函数产生了一个整数序列,从0到10,for循环的过程就是迭代遍历他们的过程。第一行代码里的i是临时变量,每一次循环,都会改变i的值,i将依次等于1,2 ... 9, 10,而每一次将新的值赋值给i以后,都要进入到循环体里执行代码,在这个示例代码中,循环体里只有一行代码print(i),这样就是实现了输出从1到10的功能。

 2.3 遍历容器数据

列表,元组,集合,字典4种容器类型数据,他们都是可迭代对象,下面的代码向你展示如何判断一个数据是不是可迭代对象:

from collections import Iterable

print(isinstance(range(5), Iterable))    # range函数返回值是可迭代对象
print(isinstance([1, 2], Iterable))   # 列表
print(isinstance((1, 2, 3), Iterable))   # 元组
print(isinstance({1, 2, 3}, Iterable))   # 集合
print(isinstance({"a": 1, "b": 2}, Iterable))   # 字典

程序输出结果:

True
True
True
True
True

2.3.1 遍历列表,元组

元组和列表实在是太相似了,很多操作方法都是相同的,因此我们总是以列表举例子讲解,遍历一个列表,有3种方法:

方法1,通过索引遍历:

#coding-utf-8;
lst =[1,2,3,4,5,6];
for i in  range(len(lst)):
    print lst[i];

方法2,直接遍历

#coding-utf-8;
lst =[1,2,3,4,5,6];
for i  in lst:
    print i;

方法3,通过enumerate函数遍历

lst =[1,2,3,4,5,6];
for index,item in enumerate(lst):
    print index,item;

程序输出:

0 1
1 2
2 3
3 4
4 5
5 6

这种遍历方式既能获得数据,也能获得数据的索引,是前面两种方法的融合。

2.3.2  集合遍历

集合没有索引,因此只能直接遍历。

#coding=utf-8;
set_obj ={1,2,3,4,5,6};
for i in set_obj:
    print i;

2.3.3  遍历字典

对字典的遍历,有两种常见的方法。

方法1,使用key遍历字典:

dict_obj ={'a':1,'b':2,'c':3};
for i in dict_obj:
    print i,dict_obj[i];

方法2,使用字典items()方法遍历:

for key,values in dict_obj.items():
    print key,values;

两种方法最终的输出结果是一样的。

 

posted @ 2022-09-19 16:49  家乐福的搬砖日常  阅读(156)  评论(0编辑  收藏  举报