




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
Python3基礎(chǔ)教程第3版慕課版單元2
Python基本語法任務(wù)2-1:運行詩詞輸出程序【任務(wù)目標(biāo)】編寫Python程序,輸出詩詞《詠柳》或《靜夜思》。待運行程序代碼如下。a=input('請輸入一個數(shù):')ifa=='1':print('詠柳')print('賀知章')print('碧玉妝成一樹高,萬條垂下綠絲絳。')print('不知細葉誰裁出,二月春風(fēng)似剪刀。')else:print('靜夜思')print('李白')print('床前明月光,疑是地上霜。')print('舉頭望明月,低頭思故鄉(xiāng)。')【任務(wù)實施】演示過程……2.1基本語法元素本節(jié)主要內(nèi)容:縮進注釋語句續(xù)行符號語句分隔符號關(guān)鍵字標(biāo)識符2.1.1縮進Python默認從程序的第一條語句開始,按順序依次執(zhí)行各條語句。代碼塊可視為復(fù)合語句。在Java、C/C++等語言中,用大括號“{}”表示代碼塊,示例代碼如下。if(x>0){y=1;}else{y=-1;}Python使用縮進(空格)來表示代碼塊,連續(xù)的多條具有相同縮進量的語句為一個代碼塊。通常,語句末尾的冒號表示代碼塊的開始,例如if、for、while、def、class等語句都會使用到代碼塊。示例代碼如下。ifx>0:y=1else:y=-1應(yīng)注意同一個代碼塊中的語句,其縮進量應(yīng)保持相同,否則會發(fā)生IndentationError(縮進錯誤)異常,示例代碼如下。>>>x=1>>>ifx>0:...y=1...print(y)File"<stdin>",line3print(y)^IndentationError:unindentdoesnotmatchanyouterindentationlevel2.1.2注釋注釋用于為程序添加說明性的文字,幫助程序員閱讀和理解代碼。Python解釋器會忽略注釋的內(nèi)容。Python注釋分單行注釋和多行注釋。單行注釋以符號“#”開始,當(dāng)前行中符號“#”及其后的內(nèi)容為注釋。單行注釋可以單獨占一行,也可放在語句末尾。多行注釋是用3個英文的單引號“'''”或3個雙引號“"""”作為注釋的開始和結(jié)束符號示例代碼如下。"""多行注釋開始下面的代碼根據(jù)變量x的值計算y注意代碼中使用縮進表示代碼塊多行注釋結(jié)束"""x=5ifx>100:y=x*5-1 #單行注釋:x>100時執(zhí)行該語句else:y=0 #x<=100時執(zhí)行該語句print(y) #輸出y2.1.3語句續(xù)行符號通常,Python中的一條語句占一行,沒有語句結(jié)束符號??墒褂谜Z句續(xù)行符號將一條語句寫在多行之中。Python的語句續(xù)行符號為“\”示例代碼如下。ifx<100\andx>10:y=x*5-1else:y=0注意,在“\”符號之后不能有任何其他符號,包括空格和注釋。還有一種特殊的續(xù)行方式:在使用括號(包括“()”“[]”和“{}”等)時,括號中的內(nèi)容可分多行書寫,括號中的注釋、空白和換行符都會被忽略示例代碼如下。if(x<100 #這是續(xù)行語句中的注釋andx>10):y=x*5-1else:y=02.1.4語句分隔符號Python使用分號作為語句分隔符號,從而將多條語句寫在一行示例代碼如下。print(100);print(2+3)使用語句分隔符號分隔的多條語句可視為一條復(fù)合語句,Python允許將單獨的語句或復(fù)合語句寫在冒號之后示例代碼如下。ifx<100andx>10:y=x*5-1else:y=0;print('x>=100或x<=10')2.1.5關(guān)鍵字關(guān)鍵字也稱保留字,用于表示程序設(shè)計語言的命令或常量,不允許作為標(biāo)識符使用。Python的關(guān)鍵字如下。False await else import passNone break except in raiseTrue class finally is returnand continue or lambda tryas def from nonlocal whileassert del global not withasync elif if or yield注意,Python區(qū)分大小寫,關(guān)鍵字必須嚴(yán)格區(qū)分大小寫。keyword模塊中的kwlist變量保存了Python的關(guān)鍵字列表。可在交互環(huán)境中輸出keyword.kwlist變量的值以查看Python的關(guān)鍵字列表,示例代碼如下。>>>importkeyword>>>keyword.kwlist['False','None','True','and','as','assert','async','await','break','class','continue','def','del','elif','else','except','finally','for','from','global','if','import','in','is','lambda','nonlocal','not','or','pass','raise','return','try','while','with','yield']Python3.10增加了軟關(guān)鍵字,用于特定上下文。例如,match、case和_等標(biāo)識符是模式匹配(match…case)語句中的軟關(guān)鍵字。2.1.6標(biāo)識符標(biāo)識符即名稱,Python中的變量、函數(shù)、模塊、類或其他對象,均通過標(biāo)識符來引用。在Python3中,標(biāo)識符的命名規(guī)則如下。由字母、下劃線“_”和數(shù)字組成,首字符不能是數(shù)字。字母可以是各種Unicode字符(空格、@、%、$等各種特殊符號除外)。不能使用關(guān)鍵字作為標(biāo)識符。標(biāo)識符區(qū)分大小寫。例如,_abc、速度、r_1都是合法的標(biāo)識符,而2abc、price$是非法的標(biāo)識符,Abc和abc是兩個不同的標(biāo)識符。除了命名規(guī)則外,Python還有一些標(biāo)識符使用慣例。首尾各有兩個下劃線(雙下劃線)的標(biāo)識符通常為系統(tǒng)標(biāo)識符,具有特殊作用。例如,__init__、__doc__都是系統(tǒng)標(biāo)識符。默認情況下,以一個或兩個下劃線開頭的標(biāo)識符(如_abc或__abc)不能使用“from…import*”語句從模塊導(dǎo)入。以兩個下劃線開頭的標(biāo)識符(如__abc)是類的私有標(biāo)識符。任務(wù)2-2:輸入兩個數(shù)比較大小【任務(wù)目標(biāo)】使用input()函數(shù)輸入兩個數(shù),比較其大小后,先輸出較大數(shù),再輸出較小數(shù)。程序運行結(jié)果如下。請輸入第一個數(shù):5請輸入第二個數(shù):353【任務(wù)實施】演示過程……2.2數(shù)據(jù)輸入方法本節(jié)主要內(nèi)容:input()函數(shù)輸入數(shù)值eval()函數(shù)中斷輸入2.2.1input()函數(shù)input()函數(shù)用于從鍵盤輸入數(shù)據(jù),其基本語法格式如下。變量=input('提示字符串')其中,變量和提示字符串均可省略。函數(shù)將用戶輸入的內(nèi)容作為字符串返回。用戶按【Enter】鍵結(jié)束輸入,【Enter】鍵之前的全部字符均作為輸入內(nèi)容。指定變量時,變量保存輸入的字符串示例代碼如下。>>>a=input('請輸入數(shù)據(jù):')請輸入數(shù)據(jù):'abc'123,456"python">>>a'\'abc\'123,456"python"'2.2.2輸入數(shù)值如果需要輸入整數(shù)或小數(shù),則應(yīng)使用int()或float()函數(shù)轉(zhuǎn)換數(shù)據(jù)類型,示例代碼如下。>>>a=input('請輸入一個整數(shù):')請輸入一個整數(shù):5>>>a #輸出a的值,可看到輸出的是一個字符串'5'>>>a+1 #因為a中是一個字符串,試圖執(zhí)行加法運算,所以出錯Traceback(mostrecentcalllast):File"<stdin>",line1,in<module>TypeError:Can'tconvert'int'objecttostrimplicitly>>>int(a)+1 #將字符串轉(zhuǎn)換為整數(shù)再執(zhí)行加法運算,執(zhí)行成功62.2.3eval()函數(shù)eval()函數(shù)可返回字符串的內(nèi)容,即相當(dāng)于去掉字符串的引號示例代碼如下。>>>a=eval('123') #等同于a=123>>>a123>>>type(a)<class'int'>>>>x=10>>>a=eval('x+20') #等同于a=x+20>>>a30在輸入整數(shù)或小數(shù)時,可使用eval()函數(shù)來執(zhí)行轉(zhuǎn)換示例代碼如下。>>>a=eval(input('請輸入一個整數(shù)或小數(shù):'))請輸入一個整數(shù)或小數(shù):12>>>a12>>>type(a)<class'int'>2.2.4中斷輸入在輸入數(shù)據(jù)時,可按【Ctrl+Z】組合鍵中斷輸入,如果輸入了其他字符,此時【Ctrl+Z】和輸入內(nèi)容作為字符串返回;如果沒有輸入任何數(shù)據(jù),則會產(chǎn)生EOFError異常示例代碼如下。>>>a=input('請輸入數(shù)據(jù):') #有數(shù)據(jù)時,^Z作為輸入數(shù)據(jù),不會出錯請輸入數(shù)據(jù):1231abc^Z>>>a'1231abc\x1a'>>>a=input('請輸入數(shù)據(jù):')請輸入數(shù)據(jù):^ZTraceback(mostrecentcalllast):File"<stdin>",line1,in<module>EOFError任務(wù)2-3:將詩詞輸出到文件【任務(wù)目標(biāo)】編寫一個程序,將下面的詩詞輸出到文件。絕句杜甫兩個黃鸝鳴翠柳,一行白鷺上青天。窗含西嶺千秋雪,門泊東吳萬里船。右圖顯示了記事本中打開的文件內(nèi)容?!救蝿?wù)實施】演示過程……2.3數(shù)據(jù)輸出方法本節(jié)主要內(nèi)容:print()函數(shù)輸出到文件2.3.1print()函數(shù)print()函數(shù)基本語法格式如下。print([obj1,…][,sep=''][,end='\n'][,file=sys.stdout])1.輸出一個空行print()函數(shù)的所有參數(shù)均可省略。無參數(shù)時,print函數(shù)輸出一個空行,示例代碼如下。>>>print()2.輸出一個或多個數(shù)據(jù)print函數(shù)可同時輸出一個或多個數(shù)據(jù)示例代碼如下。>>>print(123) #輸出一個數(shù)據(jù)123>>>print(123,'abc',45,'book’) #輸出多個數(shù)據(jù)123abc45book在輸出多個數(shù)據(jù)時,默認使用空格作為輸出分隔符。3.指定輸出分隔符print()函數(shù)的默認輸出分隔符為空格,可用sep參數(shù)指定分隔符號示例代碼如下。>>>print(123,'abc',45,'book',sep='#')#指定用符號“#”作為輸出分隔符123#abc#45#book4.指定輸出結(jié)尾符號print()函數(shù)默認以回車換行符號作為輸出結(jié)尾符號,即在輸出所有數(shù)據(jù)后會換行。后續(xù)的print()函數(shù)在新行中繼續(xù)輸出。可以用end參數(shù)指定輸出結(jié)尾符號示例代碼如下。>>>print('price');print(100) #默認輸出結(jié)尾,兩個數(shù)據(jù)輸出在兩行price100>>>print('price',end='_');print(100) #指定下劃線為輸出結(jié)尾,兩個數(shù)據(jù)輸出在一行price_1002.3.2輸出到文件print()函數(shù)默認輸出到標(biāo)準(zhǔn)輸出流(即sys.stdout)。在交互環(huán)境中執(zhí)行命令時,print()函數(shù)將數(shù)據(jù)輸出到交互環(huán)境。在系統(tǒng)命令提示符窗口中運行Python程序時,程序中的print()函數(shù)將數(shù)據(jù)輸出到系統(tǒng)命令提示符窗口.在IDLE中運行Python程序時,程序中的print()函數(shù)數(shù)據(jù)輸出到IDLE交互環(huán)境??捎胒ile參數(shù)指定將數(shù)據(jù)輸出到文件,示例代碼如下。>>>file1=open(r'd:\data.txt','w') #打開文件>>>print(123,'abc',45,'book',file=file1) #用file參數(shù)指定輸出文件>>>file1.close() #關(guān)閉文件任務(wù)2-4:輸入3個數(shù)排序【任務(wù)目標(biāo)】編寫程序,使用input()函數(shù)提示用戶輸入3個數(shù),比較其大小后,按從小到大的順序輸出,程序運行結(jié)果如下。請輸入第一個數(shù):9請輸入第二個數(shù):3請輸入第三個數(shù):5359【任務(wù)實施】演示過程……2.4賦值語句本節(jié)主要內(nèi)容:簡單賦值序列賦值多目標(biāo)賦值增強賦值2.4.1簡單賦值簡單賦值用于為一個變量賦值,示例代碼如下。x=1002.4.2序列賦值序列賦值可以一次性為多個變量賦值。在序列賦值語句中,可用逗號分隔多個變量和值,也可用元組、列表表示多個變量和值。Python按先后順序依次將數(shù)據(jù)賦值給變量。示例代碼如下。>>>x,y=1,2 #直接為多個變量賦值>>>x1>>>y2示例代碼如下。>>>(x,y)=10,20 #為元組中的變量賦值>>>x10>>>y20>>>[x,y]=30,'abc’ #為列表中的變量賦值>>>x30>>>y'abc'等號右側(cè)為字符串時,Python會將字符串分解為單個字符,依次賦值給各個變量。此時,變量個數(shù)和字符個數(shù)必須相等,否則會出錯示例代碼如下。>>>(x,y)='ab' #用字符串為元組中的變量賦值>>>x'a'>>>y'b'>>>((x,y),z)='ab','cd' #用嵌套的元組為變量賦值>>>x'a'>>>y'b'>>>z'cd'>>>(x,y)='abc' #字符個數(shù)與變量個數(shù)不一致,出錯Traceback(mostrecentcalllast):File"<stdin>",line1,in<module>ValueError:toomanyvaluestounpack(expected2)序列賦值時,可以在變量名之前使用“*”,不帶星號的變量僅匹配一個值,剩余的值作為列表賦值給帶星號的變量示例代碼如下。>>>x,*y='abcd'>>>x'a'>>>y['b','c','d']>>>*x,y='abcd' #最后第一個字符賦值給y,其他字符作為列表賦值給x>>>x['a','b','c']>>>y'd'#第一個字符賦值給x,最后一個字符賦值給z,其他字符作為列表賦值給y>>>x,*y,z='abcde'>>>x'a'>>>y['b','c','d']>>>z'e'第一個數(shù)據(jù)賦值給x,其他值作為列表賦值給y>>>x,*y=[1,2,'abc','漢字'] >>>x1>>>y[2,'abc','漢字']2.4.3多目標(biāo)賦值多目標(biāo)賦值指用連續(xù)的多個等號將同一個數(shù)據(jù)賦值給多個變量示例代碼如下。>>>a=b=c=10 #將10賦值給變量a、b、c>>>a,b,c(10,10,10)等價于:>>>a=10>>>b=a>>>c=b2.4.4增強賦值增強賦值指將運算符與賦值相結(jié)合的賦值語句示例代碼如下。>>>a=5>>>a+=10 #增強賦值,等價于a=a+10>>>a15Python中的增強賦值語句如表所示。+=-=*=**=//=&=|=^=>>=<<=/=%=任務(wù)2-5:使用共享列表存儲詩人姓名【任務(wù)目標(biāo)】在列表中預(yù)存多個詩人姓名,然后輸入列表項序號和姓名,修改列表中列表項序號對應(yīng)的詩人姓名,并輸出修改后的列表。程序運行結(jié)果如下。當(dāng)前列表:['李白','杜甫','蘇軾']請輸入列表項序號[0,1,2]:1請輸入新的姓名:王維修改后的列表:['李白','王維','蘇軾']【任務(wù)實施】演示過程……2.5變量與對象關(guān)系本節(jié)主要內(nèi)容:變量與對象對象回收機制變量的共享引用2.5.1變量與對象因為Python將所有的數(shù)據(jù)都作為對象來處理,賦值語句會在內(nèi)存中創(chuàng)建對象和變量,以下面的賦值語句為例。x=5Python在執(zhí)行該語句時,會按順序執(zhí)行3個步驟:首先,創(chuàng)建表示整數(shù)5的對象;其次,檢查變量x是否存在,若不存在則創(chuàng)建變量x;最后,建立變量x與整數(shù)對象5的引用關(guān)系。變量x和對象5之間的關(guān)系。5x對象引用變量在Python中使用變量時,必須理解下面幾點。變量在第一次賦值時被創(chuàng)建,再次出現(xiàn)時可以直接使用。變量沒有數(shù)據(jù)類型的概念。數(shù)據(jù)類型屬于對象,它決定了對象在內(nèi)存中的存儲方式。變量引用對象。在表達式中使用變量時,變量立即被其引用的對象替代。所以變量在使用之前必須為其賦值。示例代碼如下。>>>x=5 #第一次賦值,創(chuàng)建變量x,引用對象5>>>print(x+3) #變量x被對象5替代,語句實際為print(5+3)8每個對象都有各自的標(biāo)識號、數(shù)據(jù)類型和值。一個對象被創(chuàng)建后,其標(biāo)識號就絕不會改變。可將標(biāo)識號理解為對象在內(nèi)存中的地址。可用“is”運算符比較兩個對象的標(biāo)識號是否相同,id()函數(shù)可返回代表標(biāo)識號的整數(shù),示例代碼如下。>>>x=10>>>y=10 #x和y引用同一個對象10>>>xisyTrue#查看x和y的標(biāo)識號,實際上查看的都是10的標(biāo)識號,所以返回的整數(shù)相同>>>id(10),id(x),id(y) (2349234979344,2349234979344,2349234979344)2.5.2對象回收機制當(dāng)對象沒有被引用時,其占用的內(nèi)存空間會自動被回收——稱為自動垃圾回收。Python為每一個對象創(chuàng)建一個計數(shù)器,記錄對象的引用次數(shù)。當(dāng)計數(shù)器為0時,對象被刪除,其占用的內(nèi)存被回收示例代碼如下。>>>x=5 #第一次賦值,創(chuàng)建變量x,引用整數(shù)對象5>>>type(x) #實際執(zhí)行type(5),所以輸出整數(shù)對象5的數(shù)據(jù)類型<class'int'>>>>x=1.5 #使變量x引用浮點數(shù)對象1.5,對象5被回收>>>type(x) #實際執(zhí)行type(1.5)<class'float'>>>>x='abc' #使變量x引用字符串對象'abc',對象1.5被回收>>>type(x) #實際執(zhí)行type('abc')<class'str'>Python自動完成對象的垃圾回收,在編寫程序時不需要考慮對象的回收問題??梢?/p>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年中國非保溫鋼制門行業(yè)市場現(xiàn)狀分析規(guī)劃研究報告
- 2025-2030年中國除雪車行業(yè)競爭格局及前景趨勢預(yù)測報告
- 2025-2030年中國防曬品市場運行態(tài)勢及投資前景規(guī)劃研究報告
- 2025-2030年中國鐵水脫硫噴槍市場運行現(xiàn)狀及發(fā)展趨勢預(yù)測報告
- 2025-2030年中國鎢銅市場運營狀況及發(fā)展前景分析報告
- 2025-2030年中國重點地區(qū)文物保護工程市場十三五規(guī)劃與投資戰(zhàn)略研究報告
- 2025-2030年中國醬菜、辣白菜未來運營趨勢及發(fā)展盈利分析報告
- 2025-2030年中國藝術(shù)陶瓷行業(yè)市場現(xiàn)狀調(diào)研與前景規(guī)模預(yù)測報告
- 2025-2030年中國纖維素行業(yè)需求現(xiàn)狀及發(fā)展趨勢分析報告
- 2025貴州省安全員-B證(項目經(jīng)理)考試題庫
- 人美版四年級書法下冊《第6課 豎心旁》教學(xué)設(shè)計
- 二年級綜合實踐活動課件-我與蔬菜交朋友-全國通(41張)
- 血型與輸血檢驗-臨床輸血(臨床檢驗課件)
- 按摩師培訓(xùn)協(xié)議書
- 落地式腳手架安全技術(shù)措施
- 開心麻花《白蛇前傳》劇本
- 常州市旅游資源調(diào)查與評價
- 中職物理課件
- 分子生物學(xué)課件:緒論-細胞生物學(xué)發(fā)展簡史
- 光伏支架安裝工程質(zhì)量驗收記錄完整
- 波普解析PPT質(zhì)譜教案資料
評論
0/150
提交評論