Python基礎學習四 for迴圈,函式,迭代器

2021-09-02 10:45:17 字數 2520 閱讀 4573

"""

for 變數 in 序列

執行的**塊

"""list01 = ['joe', 'susan', 'jack' ,'tom']

# 遍歷列表

for i in list01:

print(i)

pass空操作,無任何意義,

pass語句的使用表示不希望任何**或命令的執行

pass語句是乙個空操作,在執行的時候不會產生任何反應

pass語句常出現在if、while、for等各種判斷或者迴圈語句中

當遍歷字典中的值時,可以用字典的value()來直接查詢

組織好的、可重複使用的、使用者實現單一或者關聯功能的**段。函式能夠提高應用的模組性和**的重複利用率,另外也可以根據自己的需要進行使用者自定義函式的建立。

① 函式的定義規則

任何傳入引數和變數必須放在圓括號中間。

函式的第一行語句可以選擇性地使用文件字串——用於存放函式說明

函式內容以冒號起始,並且縮排。

def pname(): # 不妨

"""獲取姓名

:return:

"""pname()

②yield生成器

1. 生成乙個迭代器  ——》yield的作用是把乙個函式變成乙個generator

generator 生成器:使用了yield的函式被稱為生成器。

跟普通函式不同的是,生成器是乙個返回迭代器的函式,只能用於迭代操作,更簡單點理解生成器就是乙個迭代器。

在呼叫生成器執行的過程中,每次遇到yield時函式會暫停並儲存當前所有的執行資訊,返回yield的值,並在下一次從當前位置繼續執行。

注意:可以通過for迴圈或者手動呼叫xun(5)的next()方法

[x for x in range()]列表推導式

使用生成器可以達到延遲操作的效果,所謂延遲操作就是指在需要的時候產生結果,而不是立即產生結果,節省資源消耗,和宣告乙個序列不同的是生成器,在不適用的時候幾乎是不佔記憶體的。

def getnum(n):

i = 0

while i <= n:

# print(i)

# return i #返回乙個i,結束函式的執行

yield i

i += 1

呼叫函式

getnum(5)

print(getnum(5))

a = getnum(5)

print(next(a))

print(next(a))

print(next(a))

print(next(a))

print(next(a))

print(next(a))

for i in a: #for迴圈遍歷

print(i)

a = (x for x in range(100000))

print(a)

2. send()操作可以將值傳送到上一次yield的地方,a = yield 1這個表示式,如果這個表示式只是x = 1,相信每個人都能理解是把1的值賦給了x,而現在等號右邊是乙個yield 1,所以先要執行yield 1,然後才是賦值。yield把1值返回到了呼叫者那裡,因為執行等號右邊的yield就是暫停,所以不會對a賦值,那這個表示式的下一步操作:賦值,卻換句話說a = yield只執行了一般,而send()裡面的值的作用是把值轉進當前的yield

def gen():

i = 0

while i < 5:

temp = yield i # 並不是個賦值操作

print(temp) # 因為yield之後返回結果到呼叫者的地方,暫停執行

i += 1

a = gen()

print(next(a))

print(next(a))

print(a.send('我是a')) # 可以將這個值傳送到上一次yield的地方

3.迭代器

迭代器是python最強大的功能之一,是訪問集合元素的一掌方式。

什麼是迭代物件:可以用for in遍歷的物件都可以叫做是可迭代物件:iterable

迭代器,可以被next()函式呼叫的並不斷返回下乙個值得物件叫做迭代器:iterator,它是乙個可以記住遍歷的位置的物件,迭代器物件從集合的第乙個元素開始訪問,直到所有的元素被訪問結束。

迭代器只能往前不會後退。迭代器有兩個基本的方法:iter()和next()

字串,列表或元組,集合物件都可用於建立迭代器。

list01 = [1, 2, 3, 4, 5]

# print(next(list01)) # list01不是迭代器所以無法呼叫next

a = iter(list01)

print(next(a))

print(next(a))

python學習 python基礎 判斷與迴圈

break continue 關於條件判斷和迴圈,原理與其他語言相通,只是語法不一樣,這裡簡述一下。python中實現條件判斷通過if語句來實現 語法為 也可以通過elif做更細緻的判斷 if condition1 statements1 do something when condition1 i...

python基礎for迴圈和while迴圈(十)

while 迴圈 a 10 while a 0 print a print 結束 for迴圈 a 12345 for item in a print item b 1,2,3,4 for item in b print item c a b c d for item in c print item ...

python基礎(for迴圈和while迴圈)

for 迴圈 for i in range 5 if i 3 continue print loop i print 執行結果 表示迴圈從1開始到10,步長為2 print loop i print 執行結果 2.while 迴圈 1 count 0while true count 1if coun...