python中for語句用法 Python

2021-10-10 19:16:17 字數 4051 閱讀 3163

前言

for語句主要用於遍歷某個可迭代的變數,例如:字串、列表、元組等。

基本語法(一)

語法格式:

for 迭代變數 in 遍歷序列:

執行語句......

1) 執行過程: 依次將『遍歷序列』的每乙個值傳遞給『迭代變數』,每傳遞乙個值時執行一次內部語句,直至『遍歷序列』的最後乙個元素,for語句退出。

2)遍歷序列可以是字串(str),列表(list),元組(tuple)....

例項如下:

#!/usr/bin/python3

# -*- coding: utf-8 -*-

for x in "12ab":

print("hello world",x)

例項輸出:

hello world 1

hello world 2

hello world a

hello world b

可以看出,for語句迴圈的次數等於字串元素的個數,遍歷時for語句把字串的元素依次賦給了 x 並列印輸出。

基本語法(二)

for 迭代變數 in range ( i, j [,k ]):

執行語句......

引數說明:

i: 初始值(預設為『0』)

j: 終止值(預設為『1』)

k: 步進值,即每次重複操作時比上一次操作所增長的數值。

執行過程:

第一步:將 i 值傳遞給 『迭代變數』,然後執行一次內部語句;

第二步:在 i 的基礎上 + k 再次傳遞給 『迭代變數』,如果 『迭代變數』 的值小於 『j』 的值,則再次執行內部語句,否則退出for迴圈。

例項如下:

#!/usr/bin/python3

# -*- coding: utf-8 -*-

for x in range(5):

print("hello world",x)

執行輸出:

hello world 0

hello world 1

hello world 2

hello world 3

hello world 4

可以看出,for語句從 range()中一共獲取了0~4五個值,所以for語句在這裡迴圈執行了5次。

for語句正/異常退出

例項如下:

#!/usr/bin/python3

# -*- coding: utf-8 -*-

import time # 引用時間模組

for a in range(1,4):

print(a) # 輸出 a 的值

time.sleep(1)

else:

print("done")

例項輸出:

done

可以看出,for 語句正常執行完畢後會執行 else 中的語句;

下面看一下程式異常退出的情況:

keyboardinterrupt

終端會報錯,提示程式被中斷,同時可以看到else中的語句也沒有被執行,表明程式異常退出!當在 time.sleep(1) 後附加一條 break 語句時,else 中的語句也不會被執行。

for語句的應用

(1)用for語句迭代遍歷字串(str)、列表(list)、元組(tuple)的元素

方法有以下兩種:下面以遍歷乙個字串為例,例項如下:

方法一:

#!/usr/bin/python3

# -*- coding: utf-8 -*-

str = "hello world"

for i in str:

print( i )

說明:此方法的執行過程是,直接通過獲取每乙個元素的值進行遍歷的。

方法二:

#!/usr/bin/python3

# -*- coding: utf-8 -*-

str = "hello world"

for i in range( len(str) ):

print(str[i])

分析:此方法的執行過程是通過 len() 函式獲得字串 str 的總長度,並將其作為range() 的範圍,在每次遍歷時將其值賦值給變數 i ,然後以 i 的值作為下標值,最終獲得該字串的所有元素。

(2)用 for 語句迭代遍歷字典(dic)獲得其元素

分析:因為字典是乙個無序的序列,所以不能通過下標的形式進行獲取中 key 所對應的元素,需要先獲取其 key 值,再對 key 進行遍歷即可獲得對應的鍵值。方法有以下兩種:

方法一:

先遍歷出其 key ,具體如下:

#!/usr/bin/python3

# -*- coding: utf-8 -*-

tup =

for x in tup:

print( x ) # 此時獲取到的是『key』的值

例項輸出:ab

可見直接迭代乙個字典時,獲取到的是該字典的鍵。在拿到 key 後就好辦了,直接通過鍵就可以取到對應的值了,例項如下:

#!/usr/bin/python3

# -*- coding: utf-8 -*-

tup =

for x in tup:

print(tup[x]) # 通多'key'獲取'鍵值'

執行輸出:

hello

world

注意:由於字典屬於無序的序列,所以在迭代乙個字典時,隨著字典內資料的變化,其輸出的 key 的順序也隨之變化。

方法二:

使用字典中提供的 itmes() 方法:

#!/usr/bin/python3

# -*- coding: utf-8 -*-

tup =

print(tup.items() ) #呼叫 itmes() 方法

執行輸出:

[('a', 'hello'), (11, 222), ('b', 'world')]

可以看出,此時返回的是 元組對 的形式,下面通過 for 語句獲取其中的元素:

#!/usr/bin/python3

# -*- coding: utf-8 -*-

tup =

for k,v in tup.items():

print(k,v) # 併排輸出'key'與'key值'

執行輸出:

a hello

11 222

b world

分析:執行過程為通過 itmes() 方法將字典資料轉化為 元組對 的形式,然後通過for 語句將 key 值賦給變數 k ,將 value 值賦給變數 v ,直至遍歷結束!

列表解析表示式(高階用法)

使用列表解析,可以簡單高效地處理乙個可迭代物件,並生成結果列表。

表示式格式如下:

表示式1:迭代序列裡所有內容,並計算生成列表

表示式2:按條件迭代,並計算生成列表

表示式 expr 使用每次迭代內容 i1 - in,計算生成乙個列表。如果指定了條件表示式 cond_expr ,則只有滿足條件的元素參與迭代。

例項演示:

>>> [i**2 for i in range(10)] # 平方值

[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

>>> [(i,i**2) for i in range(10)] # 序號,平方值

[(0, 0), (1, 1), (2, 4), (3, 9), (4, 16), (5, 25), (6, 36), (7, 49), (8, 64), (9, 81)]

>>> [i for i in range(10) if i%2==0] # 取偶數

[0, 2, 4, 6, 8]

>>> [(x, y, x*y) for x in range(1, 4) for y in range(1, 4) if x>=y] # 二重迴圈

[(1, 1, 1), (2, 1, 2), (2, 2, 4), (3, 1, 3), (3, 2, 6), (3, 3, 9)]

喜歡 (1)or分享 (0)

python中switch語句用法

python中是沒用switch語句的,這應該是體現python大道至簡的思想,python中一般多用字典來代替switch來實現。coding utf 8 from future import division def jia x,y print x y def jian x,y print x ...

python中的with語句用法總結

class kirin def test self print 輸出test def enter self print 執行了enter語句 切記 這裡的retur返回的值會賦值給with表示式as後的變數識別符號!如果沒返回具體值,那as後面的變數值為none return self def ex...

Python 中for迴圈語句的用法

python 中的迴圈語句有 2 種,分別是 while 迴圈和 for 迴圈,while 迴圈和 if 條件分支語句類似,即在條件 表示式 為真的情況下,會執行相應的 塊。for 迴圈,常用於遍歷字串 列表 元組 字典 集合等序列型別,逐個獲取序列中的各個元素。for 迴圈的語法格式如下 for ...