python-for循環

1、功能

  for 循環提供了python中最強大的循環結構(for循環是一種迭代循環機制,而while循環是條件循環,迭代即重複相同的邏輯操做,每次操做都是基於上一次的結果,而進行的)python

  Python for循環能夠遍歷任何序列的項目,如一個列表或者一個字符串。ide

2、語法

  for循環的通常格式以下:函數

  for iter_var in iterable:ui

    suite_to_repeatspa

註解:每次循環, iter_var 迭代變量被設置爲可迭代對象(序列, 迭代器, 或者是其餘支持迭代的對 象)的當前元素, 提供給 suite_to_repeat 語句塊使用.code

python for循環實例對象

msg="hello egon 666"
for i in (msg):
    print(i)
for循環,利用索引遍歷出每個字符

執行結果以下blog

C:\Python36\python.exe C:/Users/張寧陽/Desktop/test/day7/做業.py
h
e
l
l
o
 
e
g
o
n
 
6
6
6

Process finished with exit code 0
View Code
遍歷序列類型
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))
for循環遍歷序列

遍歷可迭代對象或迭代器:排序

迭代對象:就是一個具備next()方法的對象,obj.next()每執行一次,返回一行內容全部內容迭代完後,索引

迭代器引起一 個 StopIteration 異常告訴程序循環結束. for 語句在內部調用 next() 並捕獲異常.

for循環遍歷迭代器或可迭代對象與遍歷序列的方法並沒有二致,只是在內部作了調用迭代器next(),並捕獲異常,終止循環的操做

不少時候你根本沒法區分for循環的是序列對象仍是迭代器 

>>> f=open('a.txt','r')

for i in f:
    print(i.strip())
hello
everyone
sb

3、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
>>>
View Code

4、for與break,continue,else

同while

#break
#continue


for i in range(10):
    if i == 4:
        # break
        continue
    print(i)


for+else
for i in range(10):
    print(i)
    break
else:
    print('===>')
break、continue

5、實例

九九乘法表

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)
複製代碼

6、小結

  • for循環爲迭代循環
  • 可遍歷序列成員(字符串,列表,元組)
  • 可遍歷任何可迭代對象(字典,文件等)
  • 能夠用在列表解析和生成器表達式中
  • break,continue,else在for中用法與while中一致
相關文章
相關標籤/搜索