




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第2章
python程序設計基礎本章學習目標01了解Python的基本概念,以及數據類型、控制結構和函數。03熟悉Python的編程環(huán)境,掌握Anaconda的安裝與配置方法,以及Spyder和Jupyter
Notebook的使用方法。05學習Python文件操作的基本方法,包括文件的打開、讀取、寫入和關閉。02掌握利用Python進行基本程序設計的基礎理論及編程實現(xiàn),包括變量的使用、運算符的應用、條件語句和循環(huán)語句的編寫。04理解Python中模塊和包的概念,掌握如何導入和使用標準庫以及第三方庫。06培養(yǎng)良好的編程習慣和代碼風格。目錄2.2Python程序控制語句2.3函數定義與調用2.1Python基礎知識2.1Python基礎知識
Python組合數據類型2.1.4內置函數2.1.5運算符與表達式2.1.6Python簡介2.1.1Python編程環(huán)境2.1.2Python基本數據類型2.1.32.1.1Python簡介豐富的標準庫和第三方庫多范式支持動態(tài)類型跨平臺支持強大的社區(qū)支持簡潔易讀Python是一種功能強大且易于使用的編程語言,其具有以下主要特點。2.1.2Python編程環(huán)境Anaconda內置Spyder和JupyterNotebook工具,極大地提高了數據分析和代碼開發(fā)的效率。Anaconda提供了一個強大的包管理器Conda,允許用戶輕松地安裝、更新、卸載和管理不同的庫與依賴項。Anaconda是一個廣泛使用的開源數據科學平臺,集成了眾多工具和庫,方便用戶進行科學計算、數據可視化和深度學習等任務。課外作業(yè)1.下載Anaconda安裝包官網(/)下載速度較慢,可以選擇國內的清華大學開源軟件鏡像站(/anaconda/archive/),根據電腦系統(tǒng)和CPU型號選擇安裝包,如Anaconda3-2024.10-1-Windows-x86_64.exe。2.安裝Anaconda雙擊下載的安裝程序,啟動安裝向導,然后按照向導一步一步進行即可。注意:在配置選項這一步,盡量勾選“創(chuàng)建開始快捷方式”,以便在“開始”菜單中找到Anaconda。關于“自動將Anaconda3添加到我的PATH環(huán)境變量”的選項。如果不勾選,則需要手動配置環(huán)境變量。如果希望Anaconda成為默認的Python版本,可以勾選“注冊Anaconda3作為我默認的Python”。3.測試Anaconda是否安裝成功使用快捷鍵“WIN+R”打開運行面板,輸入“cmd”,然后點擊“確認”按鈕。在命令提示符窗口中,輸入“conda--version”或“conda-V”命令,然后按回車鍵。如果顯示Anaconda的版本號,則表示conda已經正確安裝。在命令提示符窗口中,輸入“python”命令,然后按回車鍵。如果顯示Python的版本信息和提示符(>>>),則表示Python環(huán)境已經正確配置。請在自己電腦上安裝anaconda2.1.2Python編程環(huán)境JupyterNotebook是一種基于網頁的交互式開發(fā)工具,它支持多種編程語言,尤其以Python為主。通過JupyterNotebook,用戶可以在單一環(huán)境中編寫代碼、運行程序、可視化結果并記錄筆記,使其非常適合數據探索和項目展示。JupyterNotebookAnacondaPrompt是Anaconda環(huán)境中的一個命令行工具,專門用于管理和操作Anaconda生態(tài)系統(tǒng)。通過AnacondaPrompt執(zhí)行與Conda相關的命令,例如創(chuàng)建、激活或刪除虛擬環(huán)境,安裝或更新Python包,以及管理Anaconda中的其他工具。AnacondaPromptSpyder是一個功能強大的集成開發(fā)環(huán)境(IDE),專為Python編程語言設計,特別適合科學計算和數據分析。Spyder提供了直觀的用戶界面,支持代碼編輯、調試、變量瀏覽和繪圖等功能。Spyder020103anaconda2.1.2Python編程環(huán)境SpyderJupyterNotebookAnacondaPrompt三個工具的操作演示程序編輯區(qū)IPython控制臺Spyder開發(fā)環(huán)境JupyterNotebook工具Python程序主要書寫規(guī)范(1)書寫規(guī)則實例演示通常每行只寫一條語句,避免多條語句出現(xiàn)在同一行上,以保證代碼簡潔明了。如果確實需要將多條語句寫在同一行上,此時可以用分號(;)分隔多條語句。如果語句過長,可以使用續(xù)行符反斜杠(\)來表示該語句將在下一行繼續(xù)。每條語句獨占一行:使用分號分隔多條語句(不推薦,但合法):續(xù)行符示例:print("Hello,World!")x=10y=20x=10;y=20;print(x,y)content='在Python源程序中如果一行內\寫多條語句,語句間用分號(;)隔開。\如果一條語句過長,可以使用反斜杠符\實現(xiàn)多行書寫。'Python程序主要書寫規(guī)范(2)縮進規(guī)則實例演示語句塊是由一組相關聯(lián)的代碼行組成的,它們共同完成某個功能,Python通過縮進來劃分代碼塊的層級,同一級的代碼縮進必須一致。從顯示效果來看,4個空格與1個Tab的縮進一致,但其實不同,故混用空格和Tab可能會導致縮進錯誤。
縮進非常重要Python程序主要書寫規(guī)范(3)注釋規(guī)則實例演示注釋是一種在代碼中嵌入說明文字的方式,用于解釋代碼的邏輯、功能或其他重要信息,方便程序員理解和維護代碼,但它不會被Python解釋器執(zhí)行。單行注釋以“#”開頭,“#”后面的內容被視為注釋。使用成對的三單引號(''')或三雙引號(""")可實現(xiàn)多行注釋。單行注釋:多行注釋:#單行注釋示例x=10#這是一個單行注釋'''多行注釋示例這是一個多行注釋,用于解釋下面的代碼塊'''"""計算兩個數的和參數:a--第一個數,b--第二個數返回:a和b的和"""Python程序的運行方式(1)交互方式實例演示啟動交互方式:在Spyder中,IPython控制臺就是交互方式的入口。“In[序號]:”提示符表示代碼輸入位置。代碼執(zhí)行:用戶輸入代碼后,按回車鍵即可立即執(zhí)行,并看到執(zhí)行結果。使用“Out[序號]:”提示符表示執(zhí)行結果的輸出位置獲取幫助信息:在交互方式下,用戶可以使用help()函數來獲取關于Python中各種函數、對象和模塊的文檔和幫助信息。In[1]:a=20In[2]:b=10In[3]:a+bOut[3]:30In[4]:a-bOut[4]:10Python程序的運行方式(2)文件方式實例演示創(chuàng)建Python文件:在Spyder中,用戶可以新建一個Python文件(通常以.py為擴展名),并在其中編寫代碼。保存代碼:在Spyder中,可以通過點擊工具欄上的保存按鈕或使用快捷鍵(如Ctrl+S)來保存代碼。運行Python文件:在Spyder中通過點擊運行按鈕或使用快捷鍵來執(zhí)行該文件。Spyder將調用Python解釋器來讀取并執(zhí)行文件中的代碼,并在IPython控制臺中顯示執(zhí)行結果。2.1.3Python基本數據類型可以改變的操作數、變量名變量保持不變的操作數、立即數常量變量知識點實例演示通過給變量名賦值的方式來創(chuàng)建變量,例:可以改變變量的值,下面的命令將變量a的值改為4:Python中,不但可以改變變量的值,還可以改變它的類型:可以同時給多個變量賦值,如:a=3b=‘WelcometoChina’c=(34,56,78)In:a=4In:a=[2,5,7]In:a,b,c=2.3,3.5,6.7變量知識點實例演示Python變量命名規(guī)則如下:變量名只能包含字母(a-z或A-Z)、數字(0-9)和下劃線(_)變量名不能以數字開頭變量名區(qū)分大小寫變量名不能使用Python的保留關鍵字Python變量命名沒有強制不能使用內置函數,但是此后不能再使用該內置函數。del是一個常用的關鍵字,用于刪除對象。它可以刪除變量、列表中的元素、切片,或整個列表。使用del后,刪除的對象將從內存中移除,且再也無法訪問。In:x=10delx#訪問x會引發(fā)NameError,因為x已被刪除例如,list()是一個內置函數,用來構造一個列表。執(zhí)行以下語句會報錯“TypeError:'list'objectisnotcallable”。原因是第一個語句把list定義為一個變量,它不再是一個內置函數。In:list=[3,4,5]In:list('abc')問題:怎么恢復list內置函數?python關鍵字數據類型基本數據類型基本數據類型是用于存儲單個值的數據類型。整型:表示整數值,如213,1701等。浮點型:表示帶有小數部分的數值,如3.14,78.56等。復數:表示復數,如2+3j,10.2+6.7j等。布爾值:僅有兩個值:真和假,用True和False表示。字符串:表示文本數據,需要用一對界定符號。Python的界定符號可以是單引號、雙引號、三單引號及三雙引號。一對單引號和一對雙引號可以生成一個單行字符串,如'廣東'和"廣州"。一對三單引號和一對三雙引號可以生成一個多行字符串,如:'''廣東金融學院'''三單引號和三雙引號也可表示注釋,如何區(qū)分是作為注釋還是多行字符串?數據類型基本數據類型基本數據類型是用于存儲單個值的數據類型。整型:表示整數值,如213,1701等。浮點型:表示帶有小數部分的數值,如3.14,78.56等。復數:表示復數,如2+3j,10.2+6.7j等。布爾值:僅有兩個值:真和假,用True和False表示。字符串:表示文本數據,需要用一對界定符號。用轉義字符表示在字符串中無法直接表示或具有特殊含義的字符,轉義字符以反斜杠(\)開始,后跟一個或多個字符,這些字符組合起來表示一個特定的字符或執(zhí)行某些特定的操作。例如,一個包含\n轉義字符的字符串“Hello,Tom!\nThisisanewhotel.”。輸出這個字符串的結果為:Hello,Tom!Thisisanewhotel.Python常見的轉義字符在字符串前面加上r或者R,表示字符串中的字符都不轉義。例如:由于\t將被識別成轉義字符,字符串“D:\test\exer”將不能表示合法的Windows資源管理器路徑。為了避免這種情況,可以在字符串前面加上r或者R,表示字符串中的字符都不轉義,字符串“r'D:\test\exer'”就可以表示合法的路徑了。數據類型基本數據類型基本數據類型是用于存儲單個值的數據類型。整型:表示整數值,如213,1701等。浮點型:表示帶有小數部分的數值,如3.14,78.56等。復數:表示復數,如2+3j,10.2+6.7j等。布爾值:僅有兩個值:真和假,用True和False表示。字符串:表示文本數據,需要用一對界定符號。在Python中,字符串是不可變的,這意味著一旦創(chuàng)建了字符串對象,其內容就無法被修改。由于這種特性,字符串對象沒有增加或刪除元素的方法。任何試圖修改字符串內容的操作都會生成一個新的字符串對象,而不是在原有的字符串上直接修改。字符串的常用成員方法如表2-3所示。字符串的常用成員方法字符串的常用成員方法format()方法實例演示format()成員方法以指定的格式將變量插入字符串中,從而生成一個新的字符串,其基本語法如下所示。"模板字符串{}{}".format(變量1,變量2)模板字符串中包含的成對花括號,稱為占位符,它的作用是將參數中的變量插入模板字符串中的占位符去,生成新的字符串。變量與占位符可以按照從左到右的順序一一對應。In:"身高{}厘米,年齡{}歲".format(170,28)Out:'身高170厘米,年齡28歲'字符串的常用成員方法format()方法實例演示也可以使用位置參數指定變量與占位符的對應關系,占位符中的序號代表format()方法的參數序號,從0開始。如果參數是實數,則可以指定保留小數位數。In:"身高{1}厘米,年齡{0}歲".format(28,170)Out:'身高170厘米,年齡28歲'In:"Pi保留3位小數是:{:.3f}".format(3.141592653)Out:'Pi保留3位小數是:3.142'字符串的常用成員方法find()方法實例演示find()用于查找子字符串在主字符串中的位置。它返回子字符串首次出現(xiàn)位置的索引,如果子字符串不存在,則返回-1。In:"Hello,world!".find("world")Out:7In:"Hello,world!".find("你好")Out:-1字符串的常用成員方法split()方法實例演示split()將字符串分割成一個列表,分隔符由參數指定。如果省略參數,默認按空白字符分割。In:'19.382.539.028.8'.split()Out:['19.3','82.5','39.0','28.8']In:'93,85,90,88'.split(',')Out:['93','85','90','88']字符串的常用成員方法join()方法實例演示join()用于將可迭代對象(如列表、元組等)中的元素連接成一個字符串。它通過指定的分隔符(即調用join()的字符串)將可迭代對象中的每個元素連接起來,生成一個新的字符串。join()方法只能用于包含字符串元素的可迭代對象。In:'+'.join(['語文','數學','英語'])Out:'語文+數學+英語'什么是可迭代對象?數據類型組合數據類型組合數據類型則將若干個值組合成一個單一的數據項。組合數據類型主要有列表元組字典集合組合數據類型列表列表是一種有序且可變的集合,用于存儲多個元素。列表中的元素可以是任意類型,包括數字、字符串甚至其他列表。創(chuàng)建列表有[]和list()兩種方法。通過方括號[]定義時,元素之間用逗號分隔。list()由一個可迭代對象構造一個列表。實例演示In:[1,2,3]In:['a','b','c']In:[[4,5,],[6,7]]In:list('abc')Out:['a','b','c']組合數據類型元組元組是一種有序且不可變的集合,用于存儲多個元素。與列表類似,元組中的元素可以是任意類型,但一旦創(chuàng)建,元組的內容就無法更改。創(chuàng)建元組有()和tuple()兩種方法。元組通過圓括號()定義時,元素之間用逗號分隔。tuple()由一個可迭代對象構造一個元組。實例演示In:(2.3,3.5)In:('gduf','guang')In:(1213,)In:tuple(['a','b','c'])Out:('a','b','c')組合數據類型集合集合是一種無序且不重復的元素集合。創(chuàng)建集合有{}和set()兩種方法。集合通過花括號{}定義時,元素之間用逗號分隔。集合中的每個元素都是唯一的,這意味著集合自動去除了重復的元素。如{2,3,3,4}創(chuàng)建的集合,結果是集合{2,3,4}。set()由一個可迭代對象構造一個集合。實例演示In:{2,3,3,4}Out:{2,3,4}In:set('11223344')Out:{'1','2','3','4'}組合數據類型字典字典是一種用于存儲鍵值對且無序的數據類型。字典的鍵必須是不可變類型,如字符串、整數或元組,每個鍵必須是唯一的,而值可以是任意類型。創(chuàng)建字典有{}和dict()兩種方法。字典通過花括號{}定義,鍵值對之間用冒號分隔,每對鍵值對之間用逗號分隔。dict()方法。實例演示In:{"姓名":"張三","年齡":25,"籍貫":"廣州"}In:dict(name="Alice",age=25,city="NewYork")Out:{'name':'Alice','age':25,'city':'NewYork'}In:dict([("name","Alice"),("age",25),("city","NewYork")])Out:{'name':'Alice','age':25,'city':'NewYork'}可以使用關鍵字參數的方式直接傳遞鍵值對來創(chuàng)建字典??梢允褂冒M或列表的列表來創(chuàng)建字典,每個元組或列表表示一個鍵值對。組合數據類型1.索引訪問單個元素序列中的元素是有序排列的,可以通過索引獲取單個元素或通過切片操作獲取多個元素。用整數索引訪問單個元素,Python序列元素有正索引和負索引,如圖2-10所示。正索引從序列的起始位置(左側)開始計數,索引值從0開始,依次遞增。負索引從序列的末尾位置(右側)開始計數,索引值從-1開始,依次遞減。一般形式為:列表對象[索引]實例演示In:a=['廣','東','金','融','學','院']In:a[1]Out:'東'序列對象的索引組合數據類型2.切片訪問一個子序列切片是一種用于從序列對象中提取子序列的方法。切片操作不會修改原始序列,而是返回一個新的序列。通過指定起始位置、結束位置和步長從序列中提取出一個新的子序列,如:sequence[start:stop:step](1)start:切片的起始索引(包含該位置的元素)。如果省略,默認為序列的開頭。(2)stop:切片的結束索引(不包含該位置的元素)。如果省略,默認為序列的結尾。(3)step:步長,表示切片的間隔。默認值為1,表示每個元素都被包括在內。實例演示In:myList=[10,20,30,40,50]In:print(myList[1:4])#print函數的功能是輸出內容In:print(myList[:3])In:print(myList[2:])In:print(myList[::2])上面4條print函數的輸出結果是什么?[20,30,40][10,20,30][30,40,50][10,30,50]組合數據類型3.遍歷可迭代對象的全部元素使用遍歷方法訪問可迭代對象的全部元素,如字符串、元組、列表、集合和字典等。for...in是一種用于遍歷可迭代對象的循環(huán)結構,可以依次訪問可迭代對象中的每個元素。它的語法如下:forelementiniterable:#對element進行操作element:每次迭代時,element代表可迭代對象中的一個元素。iterable:可迭代對象,如range對象、字符串、列表、字典等。實例演示遍歷range對象:In:forvinrange(8): print(v,end='')Out:01234567遍歷字符串:In:forvin"Guangdong": print(v,end='')Out:Guangdong遍歷列表:In:forvin[2.1,3.4,6.5,1.8]: print(v,end='')Out:2.13.46.51.8列表的常用成員方法列表的常用成員方法append()用于在列表的末尾添加一個新元素。調用append()方法后,新元素會直接附加到列表的最后位置,列表的長度會增加1。extend()用于將另一個可迭代對象(如列表、元組、集合等)的所有元素一次性添加到當前列表的末尾。insert()用于在列表的指定位置插入一個新元素。insert()方法需要兩個參數:插入位置的索引i和要插入的元素x。調用insert(i,x)后,元素x會被插入列表中索引i處,原本位于該位置及其后面的元素都會向后移動一位。實例演示In:a=[1,2,3]
a.append(4)
print(a)Out:[1,2,3,4]In:a=[1,2,3]
a.extend([4,5,6])
print(a)Out:[1,2,3,4,5,6]In:a=[1,2,3]
a.insert(1,4)
print(a)Out:[1,4,2,3]列表的常用成員方法remove()用于從列表中移除第一次出現(xiàn)的指定元素。它的參數表示要刪除的元素,而不是索引。remove()會搜索列表中的元素,并刪除找到的第一個匹配項。如果列表中不存在指定的元素,remove()會引發(fā)ValueError異常。pop()用于移除并返回列表中指定索引位置的元素。它的參數表示要移除的元素的索引。pop()默認移除并返回列表中的最后一個元素。pop()方法不僅移除指定的元素,還將其返回,允許對該元素進行進一步處理。如果列表為空或索引超出范圍,pop()會引發(fā)IndexError異常。實例演示In:a=[1,2,3,2,4]
a.remove(2)
print(a)Out:[1,3,2,4]In:a=['a','b','c','d']r=a.pop(2)print(r)print(a)Out:cOut:['a','b','d']下面的列表a中有兩個元素2,remove只刪除第一個。列表的常用成員方法index()用于查找并返回指定元素在列表中第一次出現(xiàn)的索引。如果列表中存在多個相同的元素,index()只會返回第一個匹配項的索引。如果列表中不存在指定的元素,index()會引發(fā)ValueError異常。count()用于統(tǒng)計列表中某個指定元素出現(xiàn)的次數。count()方法遍歷整個列表,返回指定元素在列表中出現(xiàn)的次數。實例演示In:a=['a','b','c','d']i=a.index('b')print(i)Out:1In:a=['a','b','c','d','b','d','b']c=a.count('b')print(c)Out:3列表的常用成員方法sort()是列表對象的一個方法,用于對列表中的元素進行原地排序,修改原列表,將其元素按照指定的排序順序重新排列。sort()方法默認以升序排列列表中的元素,但可以通過reverse參數來進行降序排序。實例演示In:a=[3,1,4,1,5,9]a.sort()print(a)Out:[1,1,3,4,5,9]In:a=[3,1,4,1,5,9]a.sort(reverse=True)print(a)Out:[9,5,4,3,1,1]range()函數range()函數使用頻率較高,生成一個可迭代對象,對象的值是不可變的,并且在實際迭代時才會計算出具體的值,輸出對象不能輸出序列值,常用來構造列表以及用于控制循環(huán)的迭代次數。它可以接受一個、兩個或三個參數,用于指定序列的起始值、結束值和步長,它的語法格式如下:range(start,stop,step)(1)start(可選):序列的起始值,默認為0(2)stop:序列的結束值(不包括該值),是必須的(3)step(可選):兩個值之間的步長,默認為1實例演示只指定結束值生成序列:In:r=range(5)print(list(r))Out:[0,1,2,3,4]指定起始值和結束值生成序列:In:r=range(3,8)print(list(r))Out:[3,4,5,6,7]指定起始值、結束值和步長生成序列:In:r=range(0,10,2)print(list(r))Out:[0,2,4,6,8]指定負數步長生成反向序列:In:r=range(15,0,-3)print(list(r))Out:[15,12,9,6,3]列表生成式列表生成式是一種簡潔而高效的創(chuàng)建列表的方式。通過列表生成式,可以用簡潔的代碼生成一個新的列表,該列表的每個元素是對已有序列或可迭代對象的操作結果。列表生成式的語法格式如下:[expressionforiteminiterableifcondition](1)expression:生成新列表中每個元素的計算表達式。(2)item:可迭代對象中的每個元素。(3)iterable:任何可迭代對象,如列表、元組、字符串、字典等。(4)condition(可選):一個條件表達式,用于過濾符合條件的元素。實例演示生成平方數列表:In:squares=[x**2forxinrange(10)]print(squares)Out:[0,1,4,9,16,25,36,49,64,81]指定條件,篩選出偶數:In:evens=[xforxinrange(10)ifx%2==0]print(evens)Out:[0,2,4,6,8]統(tǒng)計列表的元素長度:In:words=['python','list','comprehension']upper_words=[len(word)forwordinwords]print(upper_words)Out:[6,4,13]二維列表如果列表的每個元素都是一個列表,就形成列表嵌套,稱為二維列表。依次類推,還可以形成三維,甚至高維列表。二維列表常用于表示表格、矩陣或其他二維數據。通過兩層索引來訪問二維列表中的元素——第一個索引用于訪問行,第二個索引用于訪問該行中的具體元素。這兩個索引分別稱為二維列表的行索引和列索引,一般形式如下:列表對象[行索引][列索引]實例演示In:a=[[1,2,3],[4,5,6],[7,8,9]]例如,下面的命令創(chuàng)建了一個二維列表a,a有3個元素,每個元素是一個長度為3的一維列表。它可以表示一個3行3列的表格,或者3行3列的矩陣。In:a[1][2]Out:6元組的常用成員方法元組與列表不同的是,元組一旦創(chuàng)建,其內容就不能被修改(即不能增刪元素或改變元素值),所以元組對象的成員方法也較少,元組又稱為輕量級列表。元組的成員方法只有count和index。這兩個方法的使用方法與列表對應的方法相同。字典的常用成員方法字典允許以鍵(key)和值(value)進行快速查找、插入和刪除操作,字典對象的成員方法如表2-5所示。字典的常用成員方法字典的訪問非常簡單且直觀。要訪問字典中的值,只需通過鍵來索引字典??梢允褂梅嚼ㄌ朳]語法來獲取對應鍵的值。如果訪問的鍵不存在,會引發(fā)KeyError。為了避免這種情況,可以使用字典的get()方法,它會在鍵不存在時返回None或指定的默認值。實例演示In:font={'字體':'宋','字號':14,'顏色':'黑色'}In:font['字體']Out:'宋'In:font.get('顏色')#未指定默認值Out:'黑色'In:font.get('字號',12)#如果font對象沒有字號鍵,則返回12Out:14字典的常用成員方法要在字典中增加一項,只需為新的鍵賦值。如果該鍵已存在,原有的值會被覆蓋。實例演示In:font={'字體':'宋','字號':14,'顏色':'黑色'}font['加粗']='是'fontOut:{'字體':'宋','字號':14,'顏色':'黑色','加粗':'是'}In:font['字號']=12fontOut:{'字體':'宋','字號':12,'顏色':'黑色'}加粗鍵不存在,將為字典增加該鍵,結果如下:字號鍵已存在,將改變對應的值,結果如下:字典的常用成員方法pop()用于刪除并返回指定鍵對應的值。pop()方法允許安全地移除字典中的某個鍵值對,同時獲取被移除的值。實例演示In:ziti=font.pop('字體')zitiOut:'宋'In:fontOut:{'字號':14,'顏色':'黑色'}#字體鍵已經從字典中移除字典的常用成員方法items()、keys()和values()分別用于獲取字典的鍵值對、鍵和值,均返回一個可迭代對象。items()返回的可迭代對象包含字典中所有鍵值對,每個鍵值對以元組的形式存在。keys()返回的可迭代對象包含字典中所有鍵。values()返回的可迭代對象包含字典中所有值。需要注意的是,這三個函數返回的對象都不是列表,而是可迭代對象,可以用for…in進行遍歷實例演示In:font.items()Out:dict_items([('字體','宋'),('字號',14),('顏色','黑色')])In:font.keys()Out:dict_keys(['字體','字號','顏色'])In:font.values()Out:dict_values(['宋',14,'黑色'])In:foriteminfont.items():print(item)Out:('字體','宋')('字號',12)('顏色','黑色')集合集合常用來去除可迭代對象中的重復元素。實例演示In:a=[1,2,2,3,4,4,4,5]b=set(a)print(b)Out:{1,2,3,4,5}下面的例子去除列表中的重復元素,得到不重復的元素。2.1.5內置函數數據類型轉換int()、float()、str()、list()、tuple()、set()、dict()對象與屬性type(),dir()數學運算abs()、round()、max()和min()序列操作len()、sum()、range()輸入輸出input()、print()數據類型轉換函數int()、float()、str()、list()、tuple()、set()、dict()等函數用于在不同的數據類型之間進行轉換。int()可以將字符串或者實數轉換為整數,int("123")得到整數123,int(3.45)得到整數3,將實數轉換為整數會造成信息丟失。函數float()可以將字符串或者整數轉換為實數,float('3.14')得到3.14,float(56)得到56.0。函數str()將多種對象轉換為字符串,包括整數、實數以及組合數據類型等,str(1248)得到字符串'1248'。str([2,5,7])的結果是什么?數學運算函數包括abs()(取絕對值)、round()(四舍五入)、max()和min()(求最大值和最小值)等常用的數學函數。實例演示In:max([2.1,5.4,3.8])Out:5.4In:round(3.25632,2)Out:3.26序列操作函數函數len()可以獲取序列的長度sum()可以對序列中的元素求和range()函數用于生成一個整數序列。實例演示In:len('Thankyou!')Out:10In:sum([3,4,5])Out:12輸入輸出函數input()用于從用戶獲取輸入input()用于從用戶那里獲取輸入數據。程序運行時,input()會暫停執(zhí)行,并等待用戶輸入文本。當用戶按下回車鍵后,輸入的數據會以字符串形式返回。它的參數是一個字符串,用于向用戶顯示提示信息。因為無論用戶輸入的是什么內容,input()的返回都是字符串,所以如果需要得到整數或者實數,需要用int()和float()函數進行轉換。實例演示In:input("Pleaseenteryourname:")Pleaseenteryourname:xiaoliOut:'xiaoli'In:int(input("Pleaseenterininteger:"))Pleaseenterininteger:23Out:23輸入輸出函數print()用于將輸出內容顯示在控制臺或終端上。它可以將任意數量的對象作為參數,并將它們轉換為字符串后輸出到標準輸出設備(通常是屏幕)。print()可以接受多個參數,并將它們以空格分隔后輸出。每個參數都可以是不同的數據類型,如字符串、數字、列表等。print()默認是以空格符分隔輸出項,以換行結束??梢允褂胹ep參數指定參數之間的分隔符。使用end參數指定輸出結束后輸出的字符,而不是以換行結束。實例演示In:print("Python","is","fun!")Out:Pythonisfun!In:print("Python","is","fun!",sep='---',end='');print('Iloveit!')Out:Python---is---fun!Iloveit!2.1.6運算符與表達式Python中的運算符用于執(zhí)行各種操作,例如數學計算、比較、邏輯判斷和賦值等。運算符是Python編程的基礎部分,它們使得我們可以對變量和數據進行操作,從而實現(xiàn)各種功能。Python提供了豐富的運算符類型,包括算術運算符、關系運算符、邏輯運算符、賦值運算符和成員運算符。算術運算符算術運算符用于執(zhí)行基本數學運算。它們允許我們對數值數據進行加、減、乘、除、取整除法、求余、冪運算等操作,幫助開發(fā)者在程序中實現(xiàn)各種數值計算,算術運算符如表2-6所示。當只有一個運算對象時,-是求該對象的相反數。當有兩個運算對象時,-是減法運算。//和%常用于整數之間,分別計算兩整數相除的商和余數。關系運算符關系運算符(也稱為比較運算符)用于比較兩個值的大小,判斷兩個值是否相等、大小關系如何等,當使用關系運算符進行比較時,其結果為布爾值True或False,關系運算符如表2-7所示。實例演示In:a=87a>=60Out:TrueIn:a<=100Out:True邏輯運算符邏輯運算符是用于布爾值(True和False)之間的運算,邏輯運算符如表2-8所示。實例演示要表達變量a的值為60~100,可以這樣寫:In:(a>=60)and(a<=100)Out:True也可以這樣寫,更接近數學中的書寫習慣:In:60<=a<=100Out:True賦值運算符基本賦值運算符是等號=,它將右側的表達式結果賦給左側的變量。除了基本賦值運算符外,Python還提供了多種復合賦值運算符,結合了算術運算和賦值操作,如表2-9所示。實例演示In:a=5b=a+3aOut:5In:bOut:8In:a=4a+=3aOut:7復合賦值運算符的運算規(guī)則如下:a+=b相當于a=a+b。a-=b–3的結果是什么?成員運算符成員運算符用來測試一個值是否存在于字符串、列表、元組、集合或字典中,成員運算符如表2-10所示。實例演示In:'abc'in'abcdef'Out:TrueIn:3in[3,6,9]Out:TrueIn:font={'字體':'宋','字號':14,'顏色':'黑色'}'字體'infontOut:TrueIn:'宋'infontOut:Falsein可以測試一個鍵是否在字典中,而不能測試一個值是否在字典中。表達式表達式是由操作數(即變量、常量)和運算符連接起來符合語法規(guī)則的式子。運算符的優(yōu)先級決定了表達式中運算符的執(zhí)行順序。運算符優(yōu)先級定義了不同運算符計算順序,優(yōu)先級較高的運算符會先于優(yōu)先級較低的運算符進行計算。Python運算符優(yōu)先級從高到低大致為:算術運算符、關系運算符、邏輯運算符、賦值運算符、成員運算符。為了確保復雜表達式的計算順序符合需求,使用括號來明確指定優(yōu)先級是一種良好的編程習慣,使用括號使得程序的可讀性更高。實例演示a>=100anda<=200anda%2==0((a>=100)and(a<=200))and(a%2==0)哪個表達式可讀性高?2.2Python程序控制語句2.2.2循環(huán)語句2.2.3異常處理語句2.2.1條件語句2.2.1條件語句條件語句一般形式如下,其中條件1和else后面的冒號必不可少要素:條件1、代碼塊1和代碼塊2執(zhí)行過程:先計算條件1,若為真則執(zhí)行代碼塊1,否則執(zhí)行代碼塊2if條件1:代碼塊1else:代碼塊2實例演示判斷輸入的成績是否及格。a=int(input('輸入學生成績:'))ifa>=60:print('成績及格')else:print('成績不及格')判斷輸入的字符是否為大寫字母。a=input('輸入一個字符:')if'A'<=a<='Z':print('是大寫英文字母')else:print('不是大寫英文字母')判斷輸入的3個國家名字是否包含中國。x=input("輸入3個國家名字")ifx.find('中國')>=0:print('包含中國')else:print('不包含中國')判斷輸入的課程是否合法。course=['計算機','數學','英語']x=input("輸入選擇的課程:")ifxincourse:print('選課成功')else:print('選課失敗')實例演示grades=[85,90,38,52,88,41,63]#計算平均分average=sum(grades)/len(grades)#判斷平均分是否及格ifaverage>=60:print("平均成績及格。")else:print("平均成績不及格。")【例2-1】列表grades=[85,90,38,52,88,41,63]記錄了一個班學生的成績,判斷該班學生的平均成績是否及格,并輸出相應的提示信息。單分支結構特殊情況下,條件語句可以沒有else分支,形成單分支條件語句,其一般形式如下:實例演示a=float(input('輸入一個實數:'))ifa<0:a=-aprint(a)例如,輸入一個實數,計算并輸出它的絕對值。當實數a大于等于0時,它的絕對值就是它自身,無須計算,當a小于0時,它的絕對值是它的相反數,需要計算,從而形成單分支條件語句。if條件1:代碼塊1多分支結構當需要根據多種不同的條件執(zhí)行不同的代碼時,就會形成多分支條件語句,其一般形式如下:實例演示bmi=float(input('輸入bmi指數:'))ifbmi<18.5:print('偏瘦')elifbmi<24:print('正常')elifbmi<28:print('超重')else:print('肥胖')成年人的BMI指數分類程序如下:if條件1:代碼塊1elif條件2:代碼塊2…elif條件n:代碼塊nelse:代碼塊n+1實例演示#輸入一個月份month=int(input("請輸入月份(1-12):"))#判斷月份所屬的季節(jié)if3<=month<=5:print("{}月是春季".format(month))elif6<=month<=8:print("{}月是夏季".format(month))elif9<=month<=11:print("{}月是秋季".format(month))elifmonth==12or1<=month<=2:print("{}月是冬季".format(month))else:print("輸入的月份不合法")【例2-2】編寫一個程序,輸入一個月份的數字,輸出該月份所在的季節(jié)。規(guī)則為:3月到5月為春季,6月到8月為夏季,9月到11月為秋季,12月到2月為冬季。嵌套的分支結構嵌套的分支結構的一般形式為:在嵌套的分支結構中,保持代碼縮進整齊是關鍵。Python依賴縮進來區(qū)分代碼塊,因此不正確的縮進會導致語法錯誤或邏輯錯誤。if條件1:if條件2: 代碼塊1else: 代碼塊2代碼塊3else:if條件3: 代碼塊4else: 代碼塊5代碼塊6實例演示#輸入年份和月份year=int(input("請輸入年份:"))month=int(input("請輸入月份(1-12):"))#嵌套分支條件判斷月份的天數ifmonth==1ormonth==3ormonth==5ormonth==7ormonth==8ormonth==10ormonth==12:print("{}月有31天".format(month))elifmonth==4ormonth==6ormonth==9ormonth==11:print("{}月有30天".format(month))elifmonth==2:#判斷是否為閏年if(year%4==0andyear%100!=0)or(year%400==0):print("{}月有29天(閏年)".format(month))else:print("{}月有28天".format(month))else:print("輸入的月份不合法")【例2-3】編寫一個程序,輸入一個年份和月份,判斷該月份有多少天。如果是2月份,還需要判斷該年份是否為閏年(2月有29天)或平年(2月有28天)。其他月份按常規(guī)天數處理。2.2.2循環(huán)語句循環(huán)結構是程序設計中的一種核心控制結構,允許反復執(zhí)行指定代碼,直到特定條件不再滿足為止。循環(huán)結構不僅可以處理簡單的任務重復,還能根據程序的運行情況動態(tài)調整執(zhí)行次數,是編寫高效、靈活程序的重要工具之一。Python中可以用for和while實現(xiàn)循環(huán)結構,稱為循環(huán)語句。for循環(huán)通常用于已知迭代次數的情況,例如遍歷一個可迭代對象,它依次訪問對象中的每個元素,無須手動管理循環(huán)計數器。while循環(huán)適用于迭代次數未知的情況,它根據一個條件來決定是否繼續(xù)執(zhí)行循環(huán)體,需要手動設置和更新循環(huán)條件,讓循環(huán)趨向于結束,否則會形成無限循環(huán)。2.2.2循環(huán)語句while循環(huán)語句一般形式要素:循環(huán)條件1、代碼塊1執(zhí)行過程:循環(huán)條件1為真就執(zhí)行代碼塊1,否則結束循環(huán)。while循環(huán)條件1:代碼塊1while循環(huán)語句在while循環(huán)中,通過比較一個或多個變量的值形成循環(huán)條件1,從而控制循環(huán)過程,這些變量稱為循環(huán)變量。實例演示i=1s=0whilei<=100:s+=ii+=1#改變循環(huán)變量的值print('1到100的和是:',s)在下面的程序中,變量i就是循環(huán)變量,在循環(huán)語句的代碼塊中,語句i+=1必不可少,它的作用是改變循環(huán)變量的值,讓循環(huán)趨向于結束。這段代碼的功能是什么?break和continue語句break語句是用于提前終止循環(huán)的一條控制語句,常用于for和while循環(huán)中。當程序執(zhí)行到break時,當前循環(huán)立即停止,程序跳出循環(huán)體,繼續(xù)執(zhí)行循環(huán)之后的代碼。continue語句是用于跳過當前循環(huán)的剩余代碼,立即開始下一次循環(huán)的一條控制語句,常用于for和while循環(huán)中。當程序執(zhí)行到continue語句時,循環(huán)體后續(xù)的代碼將被忽略,直接進入下一次循環(huán)判斷。它通常用于在某些條件下跳過不需要處理的部分,繼續(xù)執(zhí)行其他部分。實例演示fromrandomimportrandinta=[randint(5000,20000)foriinrange(100)]forvina:ifv>10000:print(v)break【例2-4】一個列表代表某公司100名員工的工資,找到第一個大于10000元的員工工資,并輸出該工資。根據題目要求,當找到第一個大于10000元的工資時,后面的列表元素就不必再訪問了,因此應立即退出循環(huán),不再繼續(xù)執(zhí)行多余的操作。實例演示fromrandomimportrandinta=[randint(500,2000)foriinrange(10)]forvina:ifv%2==1:continuev//=2print(v)【例2-5】遍歷一個整數列表中的元素,對其中的偶數減半輸出。在遍歷列表的過程中,發(fā)現(xiàn)偶數,則對其減半操作,然后輸出。如果發(fā)現(xiàn)奇數,則跳過該操作。循環(huán)嵌套如果在一個循環(huán)的代碼塊內又包含另一個循環(huán)語句,就形成循環(huán)嵌套。依此類推還可以形成多層嵌套。循環(huán)嵌套使得程序能夠處理多維數據或執(zhí)行更復雜的任務。在嵌套循環(huán)中,外層循環(huán)每執(zhí)行一次,內層循環(huán)會完整運行一遍。這種結構經常用于處理表格、矩陣、多維數組等場景,或實現(xiàn)多重條件下的重復操作。實例演示a=[[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16]]foriinrange(4):forjinrange(4):print(a[i][j],end='')print()【例2-6】二維列表a表示一個4行4列的二維矩陣,按行輸出矩陣的所有元素,元素之間用空格分隔。處理二維數據需要采用二層嵌套循環(huán),外層循環(huán)變量表示行索引,內層循環(huán)變量表示列索引。外層循環(huán)每迭代一次,內存循環(huán)就要全部執(zhí)行一遍,故內層循環(huán)的代碼需要執(zhí)行的次數是4*4,即16次。2.2.3可迭代對象的遍歷方法Python中的許多內置函數會返回可迭代對象,故遍歷可迭代對象是一種常見操作。內置函數map()接受兩個參數:一個函數和一個可迭代對象,它將一個函數應用于可迭代對象中的每個元素,并返回一個新的可迭代對象,其元素為函數作用的結果。實例演示In:chengji=['87','95','76','84']mapped=map(int,chengji)print(list(mapped))Out:[87,95,76,84]在上面的例子中,map()的第一個參數是內置函數int(),第二個參數是一個元素是字符串的列表。它的作用是將int()應用到列表中的每一個元素,即將列表中的每一個元素轉換成整數,結果保存在一個可迭代對象中。最后將該對象轉換成列表才可以輸出其中的內容。2.2.3可迭代對象的遍歷方法內置函數zip()接收兩個或多個可迭代對象作為參數,將可迭代對象中對應位置的元素配對,形成一個元組,并將元組作為一個可迭代對象的元素,最后返回該可迭代對象。實例演示In:names=['Alice','Bob','Charlie']scores=[85,92,78]zipped=zip(names,scores)print(list(zipped))Out:[('Alice',85),('Bob',92),('Charlie',78)]在上面的例子中,int()的兩個參數是兩個列表,它將兩個列表中對應位置的元素配對,形成一個元組,并返回一個可迭代對象,最后將該對象轉換成列表才能輸出其中的內容。2.2.3可迭代對象的遍歷方法Python遍歷可迭代對象有三種方法(1)用for…in遍歷實例演示fromrandomimportrandinta=[randint(10,200)foriinrange(100)]t=0forvina:ifv%3==0:t+=1print('3的倍數數量是:',t)【例2-7】求一個長度為100的隨機整數列表中,3的倍數有多少個。2.2.3可迭代對象的遍歷方法Python遍歷可迭代對象有三種方法(2)使用enumerate()內置函數用for…in遍歷時,能夠訪問可迭代對象的全部元素,但是很難掌握每個元素的索引。enumerate()內置函數在遍歷可迭代對象時同時獲取元素的索引和值,返回一個包含索引和值的元組,常用于需要在循環(huán)中同時訪問元素和其索引的場景。實例演示fromrandomimportrandinta=[randint(0,100)foriinrange(50)]fori,vinenumerate(a):print(i+1,v)【例2-8】一個列表保存了一個班50名學生的成績,輸出每個學生的序號以及對應的成績。用enumerate函數遍歷時,同時得到元素的索引和值,分別賦給變量i和v,由于第一個元素的索引是0,給它加1以表示學號。2.2.3可迭代對象的遍歷方法Python遍歷可迭代對象有三種方法(3)依次遍歷可迭代對象的索引,用while和for…in均可。需要注意的是,在用for…in或者enumerate函數時,修改遍歷的變量不能作用于原來的列表,故右邊的程序是錯誤的:實例演示fromrandomimportrandinta=[randint(0,100)foriinrange(10)]print(a)forvina:v*=2print(a)【例2-9】將一個整數列表中的每個元素變成原來的2倍。for循環(huán)之前和之后輸出來的列表是相同的,原因是語句v*=2只是把變量v變成了原來的2倍,并沒有改變列表中的元素。2.2.3可迭代對象的遍歷方法Python遍歷可迭代對象有三種方法(3)依次遍歷可迭代對象的索引,用while和for…in均可。實例演示fromrandomimportrandinta=[randint(0,100)foriinrange(10)]print(a)foriinrange(len(a)):a[i]*=2print(a)【例2-9】將一個整數列表中的每個元素變成原來的2倍。下面的程序用函數len()計算列表的長度,并用range()函數生成一個可迭代對象,對象的元素代表列表的索引,對它進行迭代時,變量i就表示原列表的索引。因為其中的語句a[i]*=2改變了列表中的元素,所以此程序能夠實現(xiàn)題目的目標。2.2.4異常處理異常處理機制用于捕獲錯誤并做出相應的處理,從而提高程序的穩(wěn)健性和容錯能力,提升用戶體驗。Python提供了try-except結構來實現(xiàn)異常處理。將執(zhí)行代碼塊放在try塊中,如果在執(zhí)行過程中發(fā)生異常,程序會跳到對應的except異常處理代碼塊進行處理。實例演示try:result=10/0except:print("除零錯誤")try:#執(zhí)行代碼塊except:#異常處理代碼塊2.3函數2.3.1函數定義2.3.3模塊與包的使用2.3.5文件操作2.3.2函數調用2.3.4第三方庫的安裝與使用2.3.1函數定義關鍵字:def要素:函數名、形式參數列表、函數體函數定義形式如下:實例演示defadd(a,b):s=a+breturns例如,以下代碼定義一個函數add,此函數具有兩個參數a和b,函數體計算兩個參數的和,然后返回它們的和。def函數名([形式參數列表]):#函數體[return返回值]調用者調用函數add,輸入兩個參數,將得到它們的和。In:add(3,4)Out:72.3.1函數定義函數可以沒有參數,稱為無參函數。定義無參函數時,函數名后面的圓括號也不能省略。函數也可以沒有返回值,這時可以不寫return語句。實例演示defsayHello():print('Hello,everybody!')2.3.1函數定義Python函數可以返回多個值。定義函數時,將需要返回的多個值依次放在return后面,并以逗號分隔。實例演示defgetMinMax(alist):minValue=min(alist)maxValue=max(alist)returnminValue,maxValue以下函數接收一個列表參數,同時返回列表的最小值和最大值。2.3.1函數定義一個函數可以包含多個return語句,用于在不同的條件下返回不同的結果。return語句不僅用于返回函數的結果,還可以結束函數的執(zhí)行。當函數執(zhí)行到return語句時,函數會立即終止,并返回指定的值,因此,多個return語句不會相互干擾。實例演示defsort(a,b):ifa>=b:returna,belse:returnb,a以下代碼定義的函數sort接收兩個參數,并按照從大到小的順序返回。2.3.2函數調用函數調用通過函數名和傳遞的參數進行。對于有參函數,需要給形式參數傳遞值,這些值稱為實際參數,簡稱實參。調用時,程序會跳轉到函數定義處執(zhí)行函數體中的代碼,完成后將結果返回到調用位置。函數調用的形式如下:位置參數實際參數是傳遞給有參函數形式參數的。實際參數與形式參數是按位置一一對應的,故稱為位置參數。實例演示defadd(a,b):
s=a+b
returns以下代碼定義的函數sort接收兩個參數,并按照從大到小的順序返回。函數名([實際參數列表])x=add(5,4)
#5、4分別傳遞給a、b不可變對象和可變對象不可變對象是指對象的值在創(chuàng)建后不能被改變的對象。一旦定義了一個不可變對象,其內部數據不能被修改。常見的不可變對象包括整數、浮點數、字符串和元組。不可改變對象作為實參時,在函數內部改變形參的值,不會導致實參的值發(fā)生改變。實例演示In:defmodify(x): x=x*x
#改變形參 print('x=',x)y=5modify(y)print('y=',y)Out:x=25y=5
#實參的值不發(fā)生改變變量y是一個不可改變對象,將它作為實際參數調用函數modify(),傳遞給形式參數x,函數內部將x修改為它的平方。函數調用結束后,輸出變量y的值,沒有發(fā)生改變。不可變對象不可變對象和可變對象可變對象是指對象的值可以在創(chuàng)建后被修改的對象。常見的可變對象包括列表、字典和集合。可變對象作為實參時,在函數內部改變形參的值,會導致實參的值發(fā)生改變。實例演示In:defmodifyList(b): foriinrange(len(b)): b[i]*=b[i]
#改變形參 print('b=',b)a=[4,5,6]modifyList(a)print('a=',a)Out:b=[16,25,36]a=[16,25,36]
#實參發(fā)生改變列表對象a是一個可改變對象,將它作為實際參數調用函數modifyList(),傳遞給形式參數b,函數內部將b的元素修改為它的平方。函數調用結束后,輸出變量a的值,也發(fā)生了改變??勺儗ο?.3.2函數調用默認值參數默認值參數允許在函數定義時為某些參數指定默認值。這樣,在調用函數時,如果未提供這些參數的值,函數將使用預設的默認值。給參數設置默認值的形式如下:當有的參數沒有默認值,有的參數具有默認值時,要求默認值參數必須放在非默認值參數的后面。實例演示In:defdefault(x,y=3):
#默認值參數放在后面 s=x+y print('Sumofxandyis:',s)
為了降低復雜度,建議只使用不可改變對象作為參數的默認值。def函數名(…,形參名=默認值):
#函數體
[return返回值]In:default(2)
default(2,4)兩次調用的結果是多少?請解釋實參與形參的傳遞。2.3.2函數調用關鍵字參數在Python中,函數參數可以通過位置參數和關鍵字參數兩種方式進行傳遞。按位置參數傳遞時,按照參數的位置,實際參數與形式參數從左到右一一對應。按關鍵字參數傳遞時,允許在函數調用時明確指定每個參數的名稱和對應的值,實際參數與形式參數不需要遵循函數定義中的參數順序,還可以跳過某些具有默認值的參數。實例演示In: defkeyParameter(x,y=3,z=4):
s=x+y+z
print('Sumofxandyis:',s)
keyParameter(z=3,y=2,x=1)#改變參數順序
keyParameter(x=1,z=2)#跳過默認值參數Out:Sumofx,yandzis:6
Sumofx,yandzis:6
2.3.2函數調用變量的作用域變量的作用域指的是變量在程序中的可訪問范圍。作用域決定了變量在哪些地方可以被引用或修改。根據變量的定義位置,變量分為局部變量和全局變量。局部變量是在函數或代碼塊內部定義的變量。局部變量只能在該函數內部使用,函數執(zhí)行結束后,這些變量就會被銷毀,無法在函數外部訪問。實例演示deflocalVar(a):b=0ifa>=0:c=1print(a,b,c)
下面函數中的形參變量a,函數內定義變量b,代碼塊內定義的變量c都是局部變量,在函數外部無法訪問。2.3.2函數調用變量的作用域變量的作用域指的是變量在程序中的可訪問范圍。作用域決定了變量在哪些地方可以被引用或修改。根據變量的定義位置,變量分為局部變量和全局變量。局部變量是在函數或代碼塊內部定義的變量。局部變量只能在該函數內部使用,函數執(zhí)行結束后,這些變量就會被銷毀,無法在函數外部訪問。全局變量是在函數外部定義的,它們的作用域從變量定義開始,一直持續(xù)到程序結束。實例演示deflocalVar(a):#形參變量a是局部變量b=0#函數內定義變量b是局部變量ifa>=0:c=1#代碼塊內定義的變量c是局部變量print(a,b,c)
變量a,b,c都是局部變量,在函數外部無法訪問。變量x在函數globalVar()中可以使用。x=10#變量x是在函數外部定義,是全局變量defglobalVar():y=x*xprint('x={},y={}'.format(x,y))globalVar()實例演示#定義函數,計算偶數的平方和defsumSquaresEvens(numbers):sum_squares=sum(x**2forxinnumbersifx%2==0)returnsum_squares#調用函數并輸出結果number_list=[1,2,3,4,5,6,7,8]result=sumSquaresEvens(number_list)print("所有偶數的平方和是:{}".format(result))【例2-10】編寫一個函數,計算一個整數列表中的所有偶數的平方和。具體要求如下。定義一個函數sumSquaresEvens(numbers),該函數接收一個整數列表作為參數,計算并返回所有偶數的平方和。2.3.2函數調用lambda表達式lambda表達式是一種用于創(chuàng)建匿名函數的簡潔方式。匿名函數是指沒有名字的函數,通常用于定義簡單的、短小的函數,而無須正式使用def關鍵字來聲明函數。lambda表達式的格式如下:
形參列表對應函數的形參列表,表達式對應函數的函數體,表達式的值就是匿名函數的返回值。lambda表達式常常用作函數參數。實例演示【例2-11】隨機產生一個長度為8的列表,取值范圍為[-100,100],對該列表按元素平方值從小到大的順序排序,輸出原列表和排序后的列表。In: fromrandomimportrandintt=[randint(-100,100)foriinrange(8)]print('原列表:',t)t.sort(key=lambday:y*y)
#lambda表達式作參數print('排序后:',t)Out:原列表:[19,72,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 針對蘋果種植農戶的問卷調查
- 雪松搬遷施工方案
- 固話地坪施工方案
- 筏板基礎專項施工方案
- 6年級下冊英語譯林版第二單元小課文
- 6-9歲兒童蛋白質的標準
- 低溫下簡支梁缺口沖擊強度
- 溫州工程拆除施工方案
- c25混凝土受凍臨界強度
- 地上物 苗木補償標準
- 《設計師工作經歷證明范本》
- 高中生升學就業(yè)指導模板
- 某某市“鄉(xiāng)村振興”行動項目-可行性研究報告
- 麻風病防治知識課件
- 2024年代持法人股東協(xié)議書模板
- 學校食堂消毒記錄
- 高中音樂第二篇:《黃河大合唱》教案
- 企業(yè)天使輪融資商業(yè)方案模板
- 2024太陽能光伏組件技術規(guī)范
- 潮汕英歌舞文化傳承與創(chuàng)新研究
- 2025年高考作文素材積累:17則熱聞(新聞+觀點+運用)及人民日報18篇時評
評論
0/150
提交評論