六、Python第六課——Python中的for循環及數字列表

目錄

一、Python中的for循環

1、for循環語句的聲明。

2、for循環縮進常見問題?

?二、數字列表

1、函數range()?

2、使用range()函數創建數字列表?

3、使用一系列函數處理數字列表(統計)?

4、列表解析(生成列表的簡潔方法)


一、Python中的for循環

1、for循環語句的聲明。

在列表中,我們經常遍歷列表中的所有元素,并對每個元素執行相同的操作,那么這就可以使用for循環來實現。用如下代碼介紹for循環的用法:

magicicans=["alice","david","carolina"]
for magicican in magicicans:      #讓Python從magicians中取出一個名字,并存儲在magician中print(magicican)              #打印magician中儲存的名字

上述代碼首先定義了一個magician的列表,里面有三個人的名字,然后才使用for循環進行了一個操作。

"for magician in magicians:"這行代碼的用法實際上是“for A?in B:”。B是一個列表,A是一個用來存儲列表元素的臨時變量,而本行代碼的意思是:讓Python從列表B中按照先后順序依次取出其中的元素,并賦值給A元素,進行接下來的操作(這個操作將會對列表中的每一個元素,都將執行)。其中的“A”可以任意取名,但是“B”一定要和所遍歷的列表名稱一致。

? ? ? ? ? ? ? ? ? ? ? ? ? “for magician in magicians:”

Tip:編寫循環時,用于存儲列表元素的臨時變量可指定任何名稱。但是,選擇描述單個列表元素的有意義的名稱大有幫助。例如小貓列表、小狗列表和一般性列表,像如下編寫for循環的第一行代碼是不錯的選擇:有助于你明白for循環中將對每個元素執行的操作。使用單復數形式明存,有助于你判斷代碼處理的是單個列表元素還是整個列表。

for cat in cats:
for dog in dogs:
for item in list_of_items:

?在Python中不使用大括號來標明哪些操作要循環進行,取而代之的是相應代碼的縮進,在for循環語句的后面,每一行縮進的代碼都是循環的一部分。下圖紅框圈主的就是“縮進”。而在for循環后面的沒有縮進的代碼只執行一次,而不會重復執行!

2、for循環縮進常見問題?

python根據縮進來判斷代碼行與前一個代碼行的關系,并且通過使用縮進讓代碼更易讀,所以在開始編寫代碼時必須正確縮進代碼!

A、忘記縮進:例如循環語句后的代碼忘記縮進,在會提示“expected an indented”

B、忘記縮進額外的代碼行:例如本來需要循環執行的代碼有兩行,但卻只縮進了一行代碼!這是一個邏輯錯誤,語法上是合法的,但是由于存在邏輯錯誤,運行代碼之后得到的結果并不符合預期。

C、無循環時的不必要的縮進。例如沒有循環語句,但是卻縮進了某一行代碼,Python會報錯“unexpected indent”?。

D、有循環時不必要的縮進。這也是一個邏輯錯誤,如果不小心縮進了應在循環結束后執行的代碼,這些代碼將針對每個列表元素重復執行。

E、在for語句后忘記了冒號。這個冒號對于for循環來說至關重要:告訴Python解釋器下一行縮進的代碼是循環的第一行代碼。

?二、數字列表

? ? ? ?之前學習過列表,里面存儲的是字符串,而今天將要介紹的列表是“數字列表”。顧名思義,數字列表就是列表中存儲數字!而且列表中非常適合存儲數字集合!下面開始介紹一些關于數字列表的函數和操作。

1、函數range()?

? ? ? ?range單詞的意思是“范圍”,說到這,想必大家對這個函數的功能就不那么陌生了。range()函數的功能正如“range”的意思一樣:能生成某個范圍內的數字。如下示例代碼:

for value in range(1,5):#上一節課提到的循環語句,value存儲range函數生成的4個數字print(value)

? ? ? ?細心的同學發現,這兩行代碼中生成的數字應該是1-5的5個數字,為什么只有1-4的4個數字呢??

這個就是我們需要注意的地方了:因為此處和我們的傳統認知不一致。range()函數的具體功能是讓Python從你指定的第一個值開始,并在指定的第二個值后停止,自然不包含第二個數字了。如range(1,5)從1開始,到5之前就停止了,所以輸出的是1,2,3,4!!!

2、使用range()函數創建數字列表?

? ? ? ?將剛才學的數字列表和range()函數結合起來,使用另一個list()函數將range()生成的數字直接轉換成數字列表。示例代碼:

numbers=list(range(1,6))#將rang()函數作為list()函數的參數,實現數字轉為列表的功能
print(numbers)#打印生成的數字列表

? ? ?這是“數字”轉“數字列表”的初體驗,數字的間隔是“1”。當然可以通過指定range()函數的參數來確定間隔。示例代碼如下所示:

numbers=list(range(1,10,2))#將rang()函數作為list()函數的參數,實現數字轉為列表的功能
print(numbers)#打印生成的數字列表

?

? ? ? ?上述代碼,即為從1到10,以2為間隔,最終的數字列表為“1,3,5,7,9”?

既然學到這里了,我們用一道題目來測試一下我們對range()函數、for循環以及乘方的掌握程度:

題目大意:創建一個數字列表,其中包含前10個整數(即1~10)的平方。?示例代碼如下所示:

代碼1:

#made by Jeffery
#date 2020.10.15
numbers=[]                   #聲明一個列表
for number in range(1,11):   #用for循環指示number為1~10,循環10次number=number**2         #計算number為每個數字時的平方numbers.append(number)   #使用append函數將計算出來的值寫入第3行代碼創建的列表
print(numbers)               #將numbers列表的內容打印出來

?

?代碼2:

#made by Jeffery
#date 2020.10.15
numbers=[]                      #聲明一個列表
for number in range(1,11):      #用for循環指示number為1~10,循環10次numbers.append(number**2)   #使用append函數將計算出來的值寫入第3行代碼創建的列表
print(numbers)                  #將numbers列表的內容打印出來

這是我根據《Python編程·從入門到實踐》寫的兩段代碼,相互對照后發現二者實現的功能是一樣的,但是代碼行數、使用的變量有所不同。代碼2明顯精簡于代碼1。所以,有如下啟示:使用臨時變量有時會增強代碼易讀性,而在其他情況下,只會增長代碼長度。so,先寫出代碼清晰、功能完善的代碼,再精簡代碼!

3、使用一系列函數處理數字列表(統計)?

有了數字列表之后,我們需要從數字列表中獲得更多信息,如數字列表中的最大數、最小數以及所有數字的和。?處理數字列表的函數極其容易識記,這里我們用一段代碼解釋說明一下,就不多做贅述。

#made by Jeffery
#date 2020.10.15
numbers=[]                                #聲明一個列表
for number in range(1,11):                #用for循環指示number為1~10,循環10次numbers.append(number**2)             #使用append函數將計算出來的值寫入第3行代碼創建的列表
print("數字列表的內容為:"+str(numbers))     #將numbers列表的內容打印出來
print("數字列表中的最小的數字為:")
print(min(numbers))                       #使用min()函數確定數字列表中的最小數
print("數字列表中的最大的數字為:")
print(max(numbers))                       #使用max()函數確定數字列表中的最大數
print("數字列表中的數字之和為:")
print(sum(numbers))                       #使用sum()函數計算數字列表中的所有數的和

?

4、列表解析(生成列表的簡潔方法)

? ? ? ?標題“2、使用rang()函數創建數字列表”中介紹的生成數字列表的方法包含3-4行代碼,有些許繁瑣,而列表分析只需編寫一行代碼就可以實現列表的生成,這里介紹是為了讓大家在閱讀他人代碼時能讀懂。

? ? ? ?列表解析將for循環和創建新元素的代碼合并成一行,并自動附加新元素。 代碼示例如下圖所示:

#made by Jeffery
#date 2020.10.15
numbers=[number**2 for number in range(1,11)]   #這行代碼的易讀性降低了很多,慢慢熟悉就好了
print(numbers)                           #將數字列表的內容打印出來

代碼解讀:要使用這樣的語法,首先創建一個列表,在列表的方括號內定義一個表達式,用于生成將要存儲到列表中的值,如“number**2”,,接下來一個for循環,用于給剛才定義的表達式提供值。上述提到的循環不同于普通循環的地方是:for語句結尾沒有冒號“:”。?

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/531080.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/531080.shtml
英文地址,請注明出處:http://en.pswp.cn/news/531080.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

七、Python第七課——有關列表的二三事(切片、切片的遍歷和復制)

目錄 一、切片 二、遍歷切片 三、列表的復制 一、切片 此前,我們學習了如何訪問單個列表以及如何處理列表中的所有元素,那么我們如何處理列表中的部分元素呢?這就引出一個概念“切片” 。我們可以把列表看成是面包,“切片”…

八、Python第八課——元組與列表、代碼格式

(請先看置頂博文)https://blog.csdn.net/GenuineMonster/article/details/104495419 目錄 一、元組的定義 二、元組的遍歷 三、代碼格式 一、元組的定義 1、元組:不可變的列表稱為元組。這個是相對于普通列表而言的,普通列表…

九、Python第九課——Python中的if語句與運用

(請先看置頂博文)https://blog.csdn.net/GenuineMonster/article/details/104495419 目錄 一、if語句 1、檢查變量存儲的值是否相等 2、判定字母或字符串時區別大小寫 3、檢查多個條件 4、檢查特定值是否在列表中 二、if-else語句和if-elif-el…

十、Python第十課——字典的些許知識(重點)

(請先看置頂博文)https://blog.csdn.net/GenuineMonster/article/details/104495419 目錄 (請先看置頂博文)https://blog.csdn.net/GenuineMonster/article/details/104495419 初識字典 1、創建字典 2、字典的“增刪改查” …

百度地圖API如何申請?(自認為比較詳細,如解決了你的問題請收藏、點贊、關注)

(請先看置頂博文)本博打開方式,請詳讀_liO_Oil的博客-CSDN博客_怎么把androidstudio卸載干凈 注意:自己申請的AK要保存好,最好不要外借,避免不必要的麻煩!(寫在前面) 目…

PythonPyqt5項目開發完成后如何使用pyinstaller打包——以Pycharm編輯器為例(目前為止最正確的版本,成功打包日期為2020.11.26)

(請先看置頂博文)本博打開方式,請詳讀_liO_Oil的博客-CSDN博客_怎么把androidstudio卸載干凈 最近用Python開發了一個可視化界面,開發過程如魚得水,幾乎沒有BUG出現(項目簡單)。但是在臨近交付時…

十一、Python第十一課——用戶輸入和另一種循環(While)

(請先看置頂博文)https://blog.csdn.net/GenuineMonster/article/details/104495419 學了這么久的Python,大家肯定會好奇,不是說機器學習嗎?不是人機交互嗎?不是人工智能嗎?怎么我學了Python都十…

如何讓新創建的Python文件自動生成作者信息等內容(以Pycharm為例)

(請先看置頂博文)https://blog.csdn.net/GenuineMonster/article/details/104495419 打開Pycharm軟件后,點擊“File”,然后點擊“Settings”,就會出現下面截圖界面:然后按照箭頭所指,在對應位置…

如何將谷歌瀏覽器的背景色(包括顯示的網站界面等)全部調為黑色?2020.12.28

(請先看置頂博文)https://blog.csdn.net/GenuineMonster/article/details/104495419 因為電腦顯示器正對窗戶的原因,平時為了透氣通風不能使用遮光簾,所以我將整個電腦的所有軟件的主題色設為黑色,這樣能降低一些光的…

Windows 10如何消除文件夾右上角的“相對箭頭”?

(請先看置頂博文)本博打開方式!!!請詳讀!!!請詳讀!!!請詳讀!!!_Cat-CSDN博客 整理筆記本電腦時發現&#xff0…

目標檢測第1步:如何在Windows 10下安裝MiniConda?

(請先看置頂博文)本博打開方式!!!請詳讀!!!請詳讀!!!請詳讀!!!_Cat-CSDN博客 目錄 一、Conda是什么&#xff…

十二、Python第十二課——函數

(請先看置頂博文)https://blog.csdn.net/GenuineMonster/article/details/104495419 目錄 (請先看置頂博文)https://blog.csdn.net/GenuineMonster/article/details/104495419 目錄 目錄 (請先看置頂博文&#xff…

目標檢測第2步:如何在Windows 10下安裝Anaconda?

(請先看置頂博文)本博打開方式!!!請詳讀!!!請詳讀!!!請詳讀!!!_Cat-CSDN博客 想要學習目標檢測的朋友可能會發…

目標檢測第3步:如何在Windows 10系統下安裝CUDA(更新時間2022.03.22)

(請先看置頂博文)本博打開方式!!!請詳讀!!!請詳讀!!!請詳讀!!!_Cat-CSDN博客 目錄 一、自檢 1、查看PC是否…

目標檢測第5步:如何在Windows 10系統下,搭建YOLOv5(5.0)環境?保姆級,沒有人比這個更詳細了(更新時間2022.3.22)

(請先看置頂博文)本博打開方式!!!請詳讀!!!請詳讀!!!請詳讀!!!_Cat-CSDN博客 目錄 一、安裝Anaconda或Minic…

導入自己寫的類,卻被標紅,原因及解決方法是?(Pycharm編輯器為例)

(請先看這篇文章:https://blog.csdn.net/GenuineMonster/article/details/104495419) 如果看完這篇博文,你的問題還是沒有解決,那么加我的公眾號,后臺發消息給我吧!當天回復&#xff01…

如何將Word與Endnote再次相互關聯?

(請先看置頂博文)本博打開方式!!!請詳讀!!!請詳讀!!!請詳讀!!!_Cat-CSDN博客 Endnote是每一個科研人員都接觸…

十三、Python第十三課——類(包含對類的相關概念的理解,這一文的附錄讓你徹底明白類和對象)

(請先看置頂博文)https://blog.csdn.net/GenuineMonster/article/details/104495419 目錄 (請先看置頂博文)https://blog.csdn.net/GenuineMonster/article/details/104495419 一、類和對象 1、類 2、對象 二、類的創建和實例…

十四、Python第十四課——文件和異常

(請先看這篇文章:https://blog.csdn.net/GenuineMonster/article/details/104495419) 如果看完這篇博文,你的問題還是沒有解決,那么請關注我的公眾號,后臺發消息給我吧,當天回復&#x…

目標檢測第6步:YOLOv5(5.0)如何在Colab中訓練自定義數據集?(更新時間:2022.3.22)

(請先看這篇文章:本博打開方式!!!請詳讀!!!請詳讀!!!請詳讀!!!_Cat-CSDN博客) 如果看完這…