Python循環語句和函數怎么應用

蝸牛 互聯網技術資訊 2022-10-14 4 0

本文小編為大家詳細介紹“Python循環語句和函數怎么應用”,內容詳細,步驟清晰,細節處理妥當,希望這篇“Python循環語句和函數怎么應用”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。

For 循環

循環允許多次運行一段代碼。在 Python 中,循環的基本形式是for循環,它可以遍歷可迭代對象。

sum?=?0
for?x?in?[1,?2,?3,?4,?5,?6,?7,?8,?9,?10]:
????sum?=?sum?+?x
print(sum)
for?item?in?'Python':?#?String?is?iterable
??print(item)?#?prints?all?characters?of?the?string

for?item?in?[1,2,3,4,5]:?#?List?is?iterable
????print(item)?#?prints?all?numbers?one?at?a?time

for?item?in?{1,2,3,4,5}:?#?Set?is?iterable
????print(item)

for?item?in?(1,2,3,4,5):?#?Tuple?is?iterable
????print(item)

for ... in ....:屬于固定套路。其實我們在前面的章節已經或多或少的介紹過for的用法,尤其是遍歷一些數據類型的時候。

可迭代對象(iterable)

可迭代對象是可以迭代的數據集合。這意味著集合中的項目可以被一個一個地處理。列表、字符串、元組、集合和字典都是可迭代的對象。在可迭代對象上執行的操作是迭代,正在處理的當前項稱為迭代器。

player?=?{
??'firstname':?'Virat',
??'lastname':?'Kohli',
??'role':?'captain'
}

for?item?in?player:?#?iterates?over?the?keys?of?player
??print(item)?#?prints?all?keys

for?item?in?player.keys():?
??print(item)?#?prints?all?keys

for?item?in?player.values():
??print(item)?#?prints?all?values

for?item?in?player.items():
??print(item)?#?prints?key?and?value?as?tuple

for?key,?value?in?player.items():
??print(key,?value)?#?prints?key?and?value?using?unpacking

范圍(range)

range是Python中用于生成數字范圍的可迭代對象。它通常用于循環和生成列表。range接受3個輸入參數start、stop 和 step over,第2和第3可選。

for?item?in?range(10):
??print('python')?#?prints?python?10?times

for?item?in?range(0,10,1):
????print('hello')?#?prints?hello?10?times

for?item?in?range(0,?10,?2):
????print('hii')?#?prints?hii?5?times?

for?item?in?range(10,?0,?-1):
????print(item)?#?prints?in?reverse?order

print(list(range(10)))?#?generates?a?list?of?10?items

枚舉(enumerate)

當循環時需要迭代器的索引時,enumerate非常有用。

for?key,?value?in?enumerate(range(10)):?#?using?unpacking?techique?
??print(f'key?is?{key}?and?value?is?{value}')?#?prints?key?and?value?at?the?same?time

While循環

while循環語句的控制結構圖如下所示:

Python循環語句和函數怎么應用  python 第1張

語法格式:

while?判斷表達式:
????內部代碼塊

“while”翻譯成中文就是“當...”的意思,while循環用偽代碼描述就是“當條件滿足的時候,就一直運行while所管理的代碼塊,當條件不滿足的時候,就結束while循環?!?/p>

While 循環是根據特定條件多次運行代碼塊的另一種方法。在處理while循環時,我們需要小心一點,以免意外地創建一個無限循環,它會一直執行,直到系統崩潰!

hungry?=?True
while(hungry):?#?This?is?always?true?so?it?keeps?printing?until?system?crashes!
??print('Give?me?something?to?eat!!')

但盡管while 循環很酷。它們寫得簡單,讀起來容易。我們只需要告訴解釋器何時停止循環。這可以通過使用break語句來完成,該語句可以停止循環執行并中斷循環。另一種方法是使條件變成False或者不成立,以停止執行。

hungry?=?True
while(hungry):
????print('Give?me?something?to?eat!!')
????break?#?prints?only?once?and?stops?the?loop?execution
hungry?=?True
satisfaction?=?0
while(satisfaction?<?10):
??satisfaction?+=?1
??print('Give?me?something?to?eat!!')?#?prints?10?times

while循環的另一個特點是它可以與else塊組合。

hungry?=?True
satisfaction?=?0
while?satisfaction?<?10:
??satisfaction?+=?1
??print('Give?me?something?to?eat!!')
else:
????print('I?am?super?satisfied?now')?#?gets?printed?once?condition?is?falsy

需要注意的是,如果在while塊中使用了break語句,則不會執行else塊。

While 與 For 循環

當知道需要循環的可迭代范圍時,For循環通常很有用。然而,當我們想多次執行某個任務而事先不知道范圍時,while循環就可以派上用場。

while?True:
??response_from_user?=?input('Enter?some?message.?Enter?bye?to?exit')
??if(response_from_user?==?'bye'):
????break

除了break語句之外,還有另外兩個語句,continue它們不是跳出循環而是繼續迭代。pass不經常使用,但有時用作占位符以在循環后繼續執行語句。

除了break語句之外,還有另外兩個語句,continue,它不是中斷循環,跳出當前循環,而是繼續迭代。pass不常用,但有時它被用作占位符,以便在循環后繼續執行語句。

循環的嵌套

if判斷可以嵌套,while和for當然也可以嵌套。但是建議大家不要嵌套3層以上,那樣的效率會很低。下面是一個嵌套for循環結合else子句的例子:

#?這是一個判斷質數的程序
for?n?in?range(2,?100):
????for?x?in?range(2,?n):
????????if?n?%?x?==?0:
????????????print(n,?'等于',?x,?'*',?n//x)
????????????break
????else:
????????#?循環中沒有找到元素
????????print(n,?'?是質數')

break語句

通常情況下的循環要么執行出錯,要么死循環,要么就只能老老實實等它把所有的元素循環一遍才能退出。如果想在循環過程中退出循環,怎么辦?用break語句!

break只能用于循環體內。其效果是直接結束并退出當前循環,剩下的未循環的工作全部被忽略和取消。注意當前兩個字,Python的break只能退出一層循環,對于多層嵌套循環,不能全部退出。

for?letter?in?'Hello?world':?????#?第一個實例
???if?letter?==?'d':
??????break
???print?('當前字母為?:',?letter)
--------------------------------------------??
var?=?10????????????????????#?第二個實例
while?var?>?0:??????????????
???print?('當期變量值為?:',?var)
???var?-=?1
???if?var?==?5:
??????break

continue語句

與break不同,continue語句用于跳過當前循環的剩余部分代碼,直接開始下一輪循環。它不會退出和終止循環,只是提前結束當前輪次的循環。同樣的,continue語句只能用在循環內。

for?letter?in?'Hello?world':?????#?第一個實例
???if?letter?==?'o':????????#?字母為?o?時跳過輸出
??????continue
???print?('當前字母?:',?letter)
?-------------------------------------------------------
var?=?10????????????????????#?第二個實例
while?var?>?0:??????????????
???var?-=?1
???if?var?==?5:?????????????#?變量為?5?時跳過輸出
??????continue
???print?('當前變量值?:',?var)

Python沒有goto語法

前面說了,在嵌套循環中,break只能跳出當前層的循環,無法全部跳出。在C語言中有goto語法,可以實現這一功能,但是Python沒有goto。那有需求的時候怎么辦呢?設置flag!

flag?=?False????????????#?用于控制外層循環的標志
for?i?in?range(10):
????if?flag:????????????#?當flag被內層循環設置為True的時候,跳出外層循環
????????break
????for?j?in?range(10):
????????if?j==7:
????????????flag?=?True
????????????break
????????print(i,j)

快速編碼練習

讓我們在電子郵件列表中找到重復的電子郵件并打印它們。

email_list?=?['roger@hey.com','michael@hey.com','roger@hey.com','prince@gmail.com']
duplicate_emails?=?[]
for?email?in?email_list:
??if?email_list.count(email)?>?1?and?email?not?in?duplicate_emails:
????duplicate_emails.append(email)
print(duplicate_emails)

讀到這里,這篇“Python循環語句和函數怎么應用”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注蝸牛博客行業資訊頻道。

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:niceseo99@gmail.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

評論

日本韩欧美一级A片在线观看