一、功能
for 循環提供了python中最強大的循環結構(for循環是一種迭代循環機制,而while循環是條件循環,迭代即重復相同的邏輯操作,每次操作都是基于上一次的結果,而進行的)
Python for循環可以遍歷任何序列的項目,如一個列表或者一個字符串。
二、語法
for循環的一般格式如下:
for iter_var in iterable:
suite_to_repeat
注解:每次循環, iter_var 迭代變量被設置為可迭代對象(序列, 迭代器, 或者是其他支持迭代的對 象)的當前元素, 提供給 suite_to_repeat 語句塊使用.
python for循環實例


msg="hello egon 666" for i in (msg):print(i)
執行結果如下


C:\Python36\python.exe C:/Users/張寧陽/Desktop/test/day7/作業.py h e l l oe g o n6 6 6Process finished with exit code 0


name_list=['alex','eric','rain','xxx']#通過序列項迭代 for i in name_list:print(i)#通過序列索引迭代 for i in range(len(name_list)):print('index is %s,name is %s' %(i,name_list[i]))#基于enumerate的項和索引 for i,name in enumerate(name_list,2):print('index is %s,name is %s' %(i,name))
遍歷可迭代對象或迭代器:
迭代對象:就是一個具有next()方法的對象,obj.next()每執行一次,返回一行內容所有內容迭代完后,
迭代器引發一 個 StopIteration 異常告訴程序循環結束. for 語句在內部調用 next() 并捕獲異常.
for循環遍歷迭代器或可迭代對象與遍歷序列的方法并無二致,只是在內部做了調用迭代器next(),并捕獲異常,終止循環的操作
很多時候你根本無法區分for循環的是序列對象還是迭代器?
>>> f=open('a.txt','r')for i in f:print(i.strip()) hello everyone sb
三、range()函數
如果你需要遍歷數字序列,可以使用內置range()函數。它會生成數列。
range()語法:
range(start,end,step=1):顧頭不顧尾
- range(10):默認step=1,start=0,生成可迭代對象,包含[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
- range(1,10):指定start=1,end=10,默認step=1,生成可迭代對象,包含[1, 2, 3, 4, 5, 6, 7, 8, 9]
- range(1,10,2):指定start=1,end=10,step=2,生成可迭代對象,包含[1, 3, 5, 7, 9]
例如:
>>>for i in range(5): ... print(i) ... 0 1 2 3 4
注:for基于range()實現計數循環,range()生成可迭代對象,說明for循環本質還是一種迭代循環
你也可以使用range指定區間的值:
>>>for i in range(5,9) :print(i)5 6 7 8 >>>
您可以結合range()和len()函數以遍歷一個序列的索引,如下所示:


>>>a = ['Google', 'Baidu', 'Runoob', 'Taobao', 'QQ'] >>> for i in range(len(a)): ... print(i, a[i]) ... 0 Google 1 Baidu 2 Runoob 3 Taobao 4 QQ >>>
四、for與break,continue,else
同while


#break #continuefor i in range(10):if i == 4:# breakcontinueprint(i)for+else for i in range(10):print(i)break else:print('===>')
五、實例
九九乘法表
for i in range(1,10):for j in range(1,i+1):print("%d*%d=%d" % (j, i, i * j), end=' ')print(' ')
albums = ('Poe', 'Gaudi', 'Freud', 'Poe2') years = (1976, 1987, 1990, 2003)#sorted:排序 for album in sorted(albums):print(album)#reversed:翻轉 for album in reversed(albums):print(album)#enumerate:返回項和 for i in enumerate(albums):print(i) #zip:組合 for i in zip(albums,years):print(i) 復制代碼
六、小結
- for循環為迭代循環
- 可遍歷序列成員(字符串,列表,元組)
- 可遍歷任何可迭代對象(字典,文件等)
- 可以用在列表解析和生成器表達式中
- break,continue,else在for中用法與while中一致