『壹』 python中函數嵌套循環語句時,return 如何正確使用返回值
return
會直接另函數返回,函數就運行結束了,所有該函數體內的代碼都不再執行了,所以該函數體內的循環也不可能再繼續運行。
如果你需要讓循環繼續執行,就不能return函數,而應該選用break或者continue。
break:跳出所在的當前整個循環,到外層代碼繼續執行。
continue:跳出本次循環,從下一個迭代繼續運行循環,內層循環執行完畢,外層代碼繼續運行。
return:直接返回函數,所有該函數體內的代碼(包括循環體)都不會再執行。
『貳』 請教Python 這個類for循環怎麼理解
在python語言中,for in 循環本身會自動調用對象的__next__()函數,直到遇到StopIteration這個異常退出循環,每次執行一次__next__()函數,並且將返回值賦給for後面的變數。
程序是這么運行的
for n in Fib():#Fib()是一個類,調用類名相當於定義一個對象
#也可以寫成
#f=Fib()
#for n in f:
由於Fib()實現了,__next__()函數,自然要調用這個__next__()函數,結果是
self.a, self.b = self.b, self.a + self.b # 第一次,這句話執行後self.a=1,self.b=1
if self.a > 100000: #第一次不滿足條件,因為self.a=1
raise StopIteration();#第一次不執行
return self.a # 返回1
由於第一次沒有raise StopIteration沒執行,所以繼續下個循環。
self.a, self.b = self.b, self.a + self.b # 第二次,這句話執行後self.a=1,self.b=2
if self.a > 100000: #第二次不滿足條件,因為self.a=1
raise StopIteration();#第二次不執行
return self.a # 返回1,輸出1
由於第三次沒有raise StopIteration沒執行,所以繼續下個循環。
self.a, self.b = self.b, self.a + self.b # 第三次self.a=2,self.b=3
if self.a > 100000: #第三次不滿足條件,因為self.a=2
raise StopIteration();#第三次不執行
return self.a # 返回2,輸出2
由於第四次沒有raise StopIteration沒執行,所以繼續下個循環。
self.a, self.b = self.b, self.a + self.b # 第四次self.a=3,self.b=5
if self.a > 100000: #第四次不滿足條件,因為self.a=3
raise StopIteration();#第四次不執行
return self.a # 返回3,輸出3
...........一直循環,直到self.a大於100000
其實這個函數是返回斐波那契數列的一個類。
不明白可追問。
『叄』 python函數中,for循環然後return 出來
defget_mm():
l=[]
forxinrange(1,5):
l.append(x)
returnl
print(get_mm())
『肆』 Python中的返回值問題!!!
首先,代碼有誤,你想調用的應該是
sorted([4,3,2,1])
reversed([4,3,2,1])
然後,你所說的reversed的返回值類型也不正確。
sorted返回的是list,reversed返回的是iterator。
list你應該很熟悉了。iterator和list是完全不同的東西。簡單的說iterator只是提供一個介面,每次迭代可以產生一個值,到沒有值為止。iterator在很多語言裡面都有實現。在python裡面主要用在for循環和list comprehension。
iterator和list/tuple/dict/set等容器的關系:
1.python內置的容器類幾乎都實現了iterator介面。
顯式獲取某個容器的iterator可以調用iter函數:
l = [1,2,3,4]
i = iter(l)
//現在i就是一個list iterator。可以用來遍歷l這個list.
i.next() # 1
i.next() # 2
//每一個iterator都必須實現next方法。並且在沒有元素時拋出StopIteration異常。
在for語句和list comprehension中,都是隱式調用了這個函數。所以可以直接
for obj in some_container:
pass
2.某些容器可以通過iterator進行初始化,比如list
l = [1,2,3,4]
i = iter(l)
l2 = list(i)
最後,沒有列表和列表對象這種說法。這兩者一般都是指列表對象(instance of the type list)。如果你是想說列表類(the list type)本身,可以這樣得到:
type([])
或者
[].__class__
『伍』 python中for循環的用法
for循環的語法格式如下:
for iterating_var in sequence:
statements(s)
for循環可以遍歷任何序列的項目,如一個列表或者一個字元串。for-in 循環中的變數的值受 for-in 循環控制,該變數將會在每次循環開始時自動被賦值,因此程序不應該在循環中對該變數賦值。
for-in 循環可用於遍歷任何可選代對象。所謂可迭代對象,就是指該對象中包含一個 __iter__ 方法,且該方法的返回值對象具有 next() 方法。
(5)pythonfor循環返回值擴展閱讀:
Python中的另一個循環語句——while語句
while是一個條件循環語句。while中的代碼塊會一直循環執行,直到循環條件不再為真。但是用戶必須小心的使用while循環,因為有可能條件永遠不會為假,這樣一來循環就永遠不會結束。
這些「無限」的循環不一定是壞事,許多通訊伺服器的客戶端/伺服器系統就是通過它來工作的,因為伺服器代碼就是用來等待客戶端來連接的。
這些客戶端向伺服器發送請求,伺服器處理請求,請求處理後,伺服器向客戶端返回數據,而此時客戶端可能斷開連接。對於伺服器而言它已經完成了對這個客戶端的任務,它會返回最外層循環等待下一個連接。