




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
Python3基礎(chǔ)教程第3版慕課版單元2
Python基本語法任務(wù)2-1:運(yùn)行詩詞輸出程序【任務(wù)目標(biāo)】編寫Python程序,輸出詩詞《詠柳》或《靜夜思》。待運(yùn)行程序代碼如下。a=input('請輸入一個(gè)數(shù):')ifa=='1':print('詠柳')print('賀知章')print('碧玉妝成一樹高,萬條垂下綠絲絳。')print('不知細(xì)葉誰裁出,二月春風(fēng)似剪刀。')else:print('靜夜思')print('李白')print('床前明月光,疑是地上霜。')print('舉頭望明月,低頭思故鄉(xiāng)。')【任務(wù)實(shí)施】演示過程……2.1基本語法元素本節(jié)主要內(nèi)容:縮進(jìn)注釋語句續(xù)行符號語句分隔符號關(guān)鍵字標(biāo)識符2.1.1縮進(jìn)Python默認(rèn)從程序的第一條語句開始,按順序依次執(zhí)行各條語句。代碼塊可視為復(fù)合語句。在Java、C/C++等語言中,用大括號“{}”表示代碼塊,示例代碼如下。if(x>0){y=1;}else{y=-1;}Python使用縮進(jìn)(空格)來表示代碼塊,連續(xù)的多條具有相同縮進(jìn)量的語句為一個(gè)代碼塊。通常,語句末尾的冒號表示代碼塊的開始,例如if、for、while、def、class等語句都會使用到代碼塊。示例代碼如下。ifx>0:y=1else:y=-1應(yīng)注意同一個(gè)代碼塊中的語句,其縮進(jìn)量應(yīng)保持相同,否則會發(fā)生IndentationError(縮進(jìn)錯(cuò)誤)異常,示例代碼如下。>>>x=1>>>ifx>0:...y=1...print(y)File"<stdin>",line3print(y)^IndentationError:unindentdoesnotmatchanyouterindentationlevel2.1.2注釋注釋用于為程序添加說明性的文字,幫助程序員閱讀和理解代碼。Python解釋器會忽略注釋的內(nèi)容。Python注釋分單行注釋和多行注釋。單行注釋以符號“#”開始,當(dāng)前行中符號“#”及其后的內(nèi)容為注釋。單行注釋可以單獨(dú)占一行,也可放在語句末尾。多行注釋是用3個(gè)英文的單引號“'''”或3個(gè)雙引號“"""”作為注釋的開始和結(jié)束符號示例代碼如下。"""多行注釋開始下面的代碼根據(jù)變量x的值計(jì)算y注意代碼中使用縮進(jìn)表示代碼塊多行注釋結(jié)束"""x=5ifx>100:y=x*5-1 #單行注釋:x>100時(shí)執(zhí)行該語句else:y=0 #x<=100時(shí)執(zhí)行該語句print(y) #輸出y2.1.3語句續(xù)行符號通常,Python中的一條語句占一行,沒有語句結(jié)束符號??墒褂谜Z句續(xù)行符號將一條語句寫在多行之中。Python的語句續(xù)行符號為“\”示例代碼如下。ifx<100\andx>10:y=x*5-1else:y=0注意,在“\”符號之后不能有任何其他符號,包括空格和注釋。還有一種特殊的續(xù)行方式:在使用括號(包括“()”“[]”和“{}”等)時(shí),括號中的內(nèi)容可分多行書寫,括號中的注釋、空白和換行符都會被忽略示例代碼如下。if(x<100 #這是續(xù)行語句中的注釋andx>10):y=x*5-1else:y=02.1.4語句分隔符號Python使用分號作為語句分隔符號,從而將多條語句寫在一行示例代碼如下。print(100);print(2+3)使用語句分隔符號分隔的多條語句可視為一條復(fù)合語句,Python允許將單獨(dú)的語句或復(fù)合語句寫在冒號之后示例代碼如下。ifx<100andx>10:y=x*5-1else:y=0;print('x>=100或x<=10')2.1.5關(guān)鍵字關(guān)鍵字也稱保留字,用于表示程序設(shè)計(jì)語言的命令或常量,不允許作為標(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)鍵字列表??稍诮换キh(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是兩個(gè)不同的標(biāo)識符。除了命名規(guī)則外,Python還有一些標(biāo)識符使用慣例。首尾各有兩個(gè)下劃線(雙下劃線)的標(biāo)識符通常為系統(tǒng)標(biāo)識符,具有特殊作用。例如,__init__、__doc__都是系統(tǒng)標(biāo)識符。默認(rèn)情況下,以一個(gè)或兩個(gè)下劃線開頭的標(biāo)識符(如_abc或__abc)不能使用“from…import*”語句從模塊導(dǎo)入。以兩個(gè)下劃線開頭的標(biāo)識符(如__abc)是類的私有標(biāo)識符。任務(wù)2-2:輸入兩個(gè)數(shù)比較大小【任務(wù)目標(biāo)】使用input()函數(shù)輸入兩個(gè)數(shù),比較其大小后,先輸出較大數(shù),再輸出較小數(shù)。程序運(yùn)行結(jié)果如下。請輸入第一個(gè)數(shù):5請輸入第二個(gè)數(shù):353【任務(wù)實(shí)施】演示過程……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)容。指定變量時(shí),變量保存輸入的字符串示例代碼如下。>>>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('請輸入一個(gè)整數(shù):')請輸入一個(gè)整數(shù):5>>>a #輸出a的值,可看到輸出的是一個(gè)字符串'5'>>>a+1 #因?yàn)閍中是一個(gè)字符串,試圖執(zhí)行加法運(yùn)算,所以出錯(cuò)Traceback(mostrecentcalllast):File"<stdin>",line1,in<module>TypeError:Can'tconvert'int'objecttostrimplicitly>>>int(a)+1 #將字符串轉(zhuǎn)換為整數(shù)再執(zhí)行加法運(yùn)算,執(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ù)時(shí),可使用eval()函數(shù)來執(zhí)行轉(zhuǎn)換示例代碼如下。>>>a=eval(input('請輸入一個(gè)整數(shù)或小數(shù):'))請輸入一個(gè)整數(shù)或小數(shù):12>>>a12>>>type(a)<class'int'>2.2.4中斷輸入在輸入數(shù)據(jù)時(shí),可按【Ctrl+Z】組合鍵中斷輸入,如果輸入了其他字符,此時(shí)【Ctrl+Z】和輸入內(nèi)容作為字符串返回;如果沒有輸入任何數(shù)據(jù),則會產(chǎn)生EOFError異常示例代碼如下。>>>a=input('請輸入數(shù)據(jù):') #有數(shù)據(jù)時(shí),^Z作為輸入數(shù)據(jù),不會出錯(cuò)請輸入數(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)】編寫一個(gè)程序,將下面的詩詞輸出到文件。絕句杜甫兩個(gè)黃鸝鳴翠柳,一行白鷺上青天。窗含西嶺千秋雪,門泊東吳萬里船。右圖顯示了記事本中打開的文件內(nèi)容?!救蝿?wù)實(shí)施】演示過程……2.3數(shù)據(jù)輸出方法本節(jié)主要內(nèi)容:print()函數(shù)輸出到文件2.3.1print()函數(shù)print()函數(shù)基本語法格式如下。print([obj1,…][,sep=''][,end='\n'][,file=sys.stdout])1.輸出一個(gè)空行print()函數(shù)的所有參數(shù)均可省略。無參數(shù)時(shí),print函數(shù)輸出一個(gè)空行,示例代碼如下。>>>print()2.輸出一個(gè)或多個(gè)數(shù)據(jù)print函數(shù)可同時(shí)輸出一個(gè)或多個(gè)數(shù)據(jù)示例代碼如下。>>>print(123) #輸出一個(gè)數(shù)據(jù)123>>>print(123,'abc',45,'book’) #輸出多個(gè)數(shù)據(jù)123abc45book在輸出多個(gè)數(shù)據(jù)時(shí),默認(rèn)使用空格作為輸出分隔符。3.指定輸出分隔符print()函數(shù)的默認(rèn)輸出分隔符為空格,可用sep參數(shù)指定分隔符號示例代碼如下。>>>print(123,'abc',45,'book',sep='#')#指定用符號“#”作為輸出分隔符123#abc#45#book4.指定輸出結(jié)尾符號print()函數(shù)默認(rèn)以回車換行符號作為輸出結(jié)尾符號,即在輸出所有數(shù)據(jù)后會換行。后續(xù)的print()函數(shù)在新行中繼續(xù)輸出??梢杂胑nd參數(shù)指定輸出結(jié)尾符號示例代碼如下。>>>print('price');print(100) #默認(rèn)輸出結(jié)尾,兩個(gè)數(shù)據(jù)輸出在兩行price100>>>print('price',end='_');print(100) #指定下劃線為輸出結(jié)尾,兩個(gè)數(shù)據(jù)輸出在一行price_1002.3.2輸出到文件print()函數(shù)默認(rèn)輸出到標(biāo)準(zhǔn)輸出流(即sys.stdout)。在交互環(huán)境中執(zhí)行命令時(shí),print()函數(shù)將數(shù)據(jù)輸出到交互環(huán)境。在系統(tǒng)命令提示符窗口中運(yùn)行Python程序時(shí),程序中的print()函數(shù)將數(shù)據(jù)輸出到系統(tǒng)命令提示符窗口.在IDLE中運(yùn)行Python程序時(shí),程序中的print()函數(shù)數(shù)據(jù)輸出到IDLE交互環(huán)境。可用file參數(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個(gè)數(shù)排序【任務(wù)目標(biāo)】編寫程序,使用input()函數(shù)提示用戶輸入3個(gè)數(shù),比較其大小后,按從小到大的順序輸出,程序運(yùn)行結(jié)果如下。請輸入第一個(gè)數(shù):9請輸入第二個(gè)數(shù):3請輸入第三個(gè)數(shù):5359【任務(wù)實(shí)施】演示過程……2.4賦值語句本節(jié)主要內(nèi)容:簡單賦值序列賦值多目標(biāo)賦值增強(qiáng)賦值2.4.1簡單賦值簡單賦值用于為一個(gè)變量賦值,示例代碼如下。x=1002.4.2序列賦值序列賦值可以一次性為多個(gè)變量賦值。在序列賦值語句中,可用逗號分隔多個(gè)變量和值,也可用元組、列表表示多個(gè)變量和值。Python按先后順序依次將數(shù)據(jù)賦值給變量。示例代碼如下。>>>x,y=1,2 #直接為多個(gè)變量賦值>>>x1>>>y2示例代碼如下。>>>(x,y)=10,20 #為元組中的變量賦值>>>x10>>>y20>>>[x,y]=30,'abc’ #為列表中的變量賦值>>>x30>>>y'abc'等號右側(cè)為字符串時(shí),Python會將字符串分解為單個(gè)字符,依次賦值給各個(gè)變量。此時(shí),變量個(gè)數(shù)和字符個(gè)數(shù)必須相等,否則會出錯(cuò)示例代碼如下。>>>(x,y)='ab' #用字符串為元組中的變量賦值>>>x'a'>>>y'b'>>>((x,y),z)='ab','cd' #用嵌套的元組為變量賦值>>>x'a'>>>y'b'>>>z'cd'>>>(x,y)='abc' #字符個(gè)數(shù)與變量個(gè)數(shù)不一致,出錯(cuò)Traceback(mostrecentcalllast):File"<stdin>",line1,in<module>ValueError:toomanyvaluestounpack(expected2)序列賦值時(shí),可以在變量名之前使用“*”,不帶星號的變量僅匹配一個(gè)值,剩余的值作為列表賦值給帶星號的變量示例代碼如下。>>>x,*y='abcd'>>>x'a'>>>y['b','c','d']>>>*x,y='abcd' #最后第一個(gè)字符賦值給y,其他字符作為列表賦值給x>>>x['a','b','c']>>>y'd'#第一個(gè)字符賦值給x,最后一個(gè)字符賦值給z,其他字符作為列表賦值給y>>>x,*y,z='abcde'>>>x'a'>>>y['b','c','d']>>>z'e'第一個(gè)數(shù)據(jù)賦值給x,其他值作為列表賦值給y>>>x,*y=[1,2,'abc','漢字'] >>>x1>>>y[2,'abc','漢字']2.4.3多目標(biāo)賦值多目標(biāo)賦值指用連續(xù)的多個(gè)等號將同一個(gè)數(shù)據(jù)賦值給多個(gè)變量示例代碼如下。>>>a=b=c=10 #將10賦值給變量a、b、c>>>a,b,c(10,10,10)等價(jià)于:>>>a=10>>>b=a>>>c=b2.4.4增強(qiáng)賦值增強(qiáng)賦值指將運(yùn)算符與賦值相結(jié)合的賦值語句示例代碼如下。>>>a=5>>>a+=10 #增強(qiáng)賦值,等價(jià)于a=a+10>>>a15Python中的增強(qiáng)賦值語句如表所示。+=-=*=**=//=&=|=^=>>=<<=/=%=任務(wù)2-5:使用共享列表存儲詩人姓名【任務(wù)目標(biāo)】在列表中預(yù)存多個(gè)詩人姓名,然后輸入列表項(xiàng)序號和姓名,修改列表中列表項(xiàng)序號對應(yīng)的詩人姓名,并輸出修改后的列表。程序運(yùn)行結(jié)果如下。當(dāng)前列表:['李白','杜甫','蘇軾']請輸入列表項(xiàng)序號[0,1,2]:1請輸入新的姓名:王維修改后的列表:['李白','王維','蘇軾']【任務(wù)實(shí)施】演示過程……2.5變量與對象關(guān)系本節(jié)主要內(nèi)容:變量與對象對象回收機(jī)制變量的共享引用2.5.1變量與對象因?yàn)镻ython將所有的數(shù)據(jù)都作為對象來處理,賦值語句會在內(nèi)存中創(chuàng)建對象和變量,以下面的賦值語句為例。x=5Python在執(zhí)行該語句時(shí),會按順序執(zhí)行3個(gè)步驟:首先,創(chuàng)建表示整數(shù)5的對象;其次,檢查變量x是否存在,若不存在則創(chuàng)建變量x;最后,建立變量x與整數(shù)對象5的引用關(guān)系。變量x和對象5之間的關(guān)系。5x對象引用變量在Python中使用變量時(shí),必須理解下面幾點(diǎn)。變量在第一次賦值時(shí)被創(chuàng)建,再次出現(xiàn)時(shí)可以直接使用。變量沒有數(shù)據(jù)類型的概念。數(shù)據(jù)類型屬于對象,它決定了對象在內(nèi)存中的存儲方式。變量引用對象。在表達(dá)式中使用變量時(shí),變量立即被其引用的對象替代。所以變量在使用之前必須為其賦值。示例代碼如下。>>>x=5 #第一次賦值,創(chuàng)建變量x,引用對象5>>>print(x+3) #變量x被對象5替代,語句實(shí)際為print(5+3)8每個(gè)對象都有各自的標(biāo)識號、數(shù)據(jù)類型和值。一個(gè)對象被創(chuàng)建后,其標(biāo)識號就絕不會改變??蓪?biāo)識號理解為對象在內(nèi)存中的地址??捎谩癷s”運(yùn)算符比較兩個(gè)對象的標(biāo)識號是否相同,id()函數(shù)可返回代表標(biāo)識號的整數(shù),示例代碼如下。>>>x=10>>>y=10 #x和y引用同一個(gè)對象10>>>xisyTrue#查看x和y的標(biāo)識號,實(shí)際上查看的都是10的標(biāo)識號,所以返回的整數(shù)相同>>>id(10),id(x),id(y) (2349234979344,2349234979344,2349234979344)2.5.2對象回收機(jī)制當(dāng)對象沒有被引用時(shí),其占用的內(nèi)存空間會自動被回收——稱為自動垃圾回收。Python為每一個(gè)對象創(chuàng)建一個(gè)計(jì)數(shù)器,記錄對象的引用次數(shù)。當(dāng)計(jì)數(shù)器為0時(shí),對象被刪除,其占用的內(nèi)存被回收示例代碼如下。>>>x=5 #第一次賦值,創(chuàng)建變量x,引用整數(shù)對象5>>>type(x) #實(shí)際執(zhí)行type(5),所以輸出整數(shù)對象5的數(shù)據(jù)類型<class'int'>>>>x=1.5 #使變量x引用浮點(diǎn)數(shù)對象1.5,對象5被回收>>>type(x) #實(shí)際執(zhí)行type(1.5)<class'float'>>>>x='abc' #使變量x引用字符串對象'abc',對象1.5被回收>>>type(x) #實(shí)際執(zhí)行type('abc')<class'str'>Python自動完成對象的垃圾回收,在編寫程序時(shí)不需要考慮對象的回收問題??梢?/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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 語文-陜西省安康市2025屆高三下學(xué)期第二次質(zhì)量聯(lián)考(安康二模)試題和答案
- 臨漳門樓施工方案
- 樓頂裝修電梯施工方案
- 2025年北京平谷區(qū)高三一模數(shù)學(xué)試題答案詳解
- boot項(xiàng)目合同范本
- 公益林合同范例
- 建立行業(yè)合作提升競爭力計(jì)劃
- 急診護(hù)理質(zhì)量提升行動計(jì)劃
- 基礎(chǔ)心理學(xué)知識培訓(xùn)課件
- 學(xué)校班主任的性別教育引導(dǎo)策略計(jì)劃
- 認(rèn)識DS3自動安平水準(zhǔn)儀
- 《語文課程標(biāo)準(zhǔn)》義務(wù)教育2022年修訂版【原版】
- 某大酒店弱電智能化系統(tǒng)清單報(bào)價(jià)
- 醫(yī)院傳染病登記簿
- GB/T 30490-2014天然氣自動取樣方法
- GB/T 17313-2009袋成型-充填-封口機(jī)通用技術(shù)條件
- 學(xué)習(xí)中國人民解放軍新一代共同條令PPT模板
- 二輪 河流專題(精心)
- 11471勞動爭議處理(第3章)
- 食堂工作人員安全培訓(xùn)內(nèi)容資料
- 患者跌倒的預(yù)防及管理課件
評論
0/150
提交評論