Python 3 基礎教程(第3版)(慕課版) 課件 第2章 Python基本語法_第1頁
Python 3 基礎教程(第3版)(慕課版) 課件 第2章 Python基本語法_第2頁
Python 3 基礎教程(第3版)(慕課版) 課件 第2章 Python基本語法_第3頁
Python 3 基礎教程(第3版)(慕課版) 課件 第2章 Python基本語法_第4頁
Python 3 基礎教程(第3版)(慕課版) 課件 第2章 Python基本語法_第5頁
已閱讀5頁,還剩53頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

Python3基礎教程第3版慕課版單元2

Python基本語法任務2-1:運行詩詞輸出程序【任務目標】編寫Python程序,輸出詩詞《詠柳》或《靜夜思》。待運行程序代碼如下。a=input('請輸入一個數:')ifa=='1':print('詠柳')print('賀知章')print('碧玉妝成一樹高,萬條垂下綠絲絳。')print('不知細葉誰裁出,二月春風似剪刀。')else:print('靜夜思')print('李白')print('床前明月光,疑是地上霜。')print('舉頭望明月,低頭思故鄉。')【任務實施】演示過程……2.1基本語法元素本節主要內容:縮進注釋語句續行符號語句分隔符號關鍵字標識符2.1.1縮進Python默認從程序的第一條語句開始,按順序依次執行各條語句。代碼塊可視為復合語句。在Java、C/C++等語言中,用大括號“{}”表示代碼塊,示例代碼如下。if(x>0){y=1;}else{y=-1;}Python使用縮進(空格)來表示代碼塊,連續的多條具有相同縮進量的語句為一個代碼塊。通常,語句末尾的冒號表示代碼塊的開始,例如if、for、while、def、class等語句都會使用到代碼塊。示例代碼如下。ifx>0:y=1else:y=-1應注意同一個代碼塊中的語句,其縮進量應保持相同,否則會發生IndentationError(縮進錯誤)異常,示例代碼如下。>>>x=1>>>ifx>0:...y=1...print(y)File"<stdin>",line3print(y)^IndentationError:unindentdoesnotmatchanyouterindentationlevel2.1.2注釋注釋用于為程序添加說明性的文字,幫助程序員閱讀和理解代碼。Python解釋器會忽略注釋的內容。Python注釋分單行注釋和多行注釋。單行注釋以符號“#”開始,當前行中符號“#”及其后的內容為注釋。單行注釋可以單獨占一行,也可放在語句末尾。多行注釋是用3個英文的單引號“'''”或3個雙引號“"""”作為注釋的開始和結束符號示例代碼如下。"""多行注釋開始下面的代碼根據變量x的值計算y注意代碼中使用縮進表示代碼塊多行注釋結束"""x=5ifx>100:y=x*5-1 #單行注釋:x>100時執行該語句else:y=0 #x<=100時執行該語句print(y) #輸出y2.1.3語句續行符號通常,Python中的一條語句占一行,沒有語句結束符號。可使用語句續行符號將一條語句寫在多行之中。Python的語句續行符號為“\”示例代碼如下。ifx<100\andx>10:y=x*5-1else:y=0注意,在“\”符號之后不能有任何其他符號,包括空格和注釋。還有一種特殊的續行方式:在使用括號(包括“()”“[]”和“{}”等)時,括號中的內容可分多行書寫,括號中的注釋、空白和換行符都會被忽略示例代碼如下。if(x<100 #這是續行語句中的注釋andx>10):y=x*5-1else:y=02.1.4語句分隔符號Python使用分號作為語句分隔符號,從而將多條語句寫在一行示例代碼如下。print(100);print(2+3)使用語句分隔符號分隔的多條語句可視為一條復合語句,Python允許將單獨的語句或復合語句寫在冒號之后示例代碼如下。ifx<100andx>10:y=x*5-1else:y=0;print('x>=100或x<=10')2.1.5關鍵字關鍵字也稱保留字,用于表示程序設計語言的命令或常量,不允許作為標識符使用。Python的關鍵字如下。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區分大小寫,關鍵字必須嚴格區分大小寫。keyword模塊中的kwlist變量保存了Python的關鍵字列表。可在交互環境中輸出keyword.kwlist變量的值以查看Python的關鍵字列表,示例代碼如下。>>>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增加了軟關鍵字,用于特定上下文。例如,match、case和_等標識符是模式匹配(match…case)語句中的軟關鍵字。2.1.6標識符標識符即名稱,Python中的變量、函數、模塊、類或其他對象,均通過標識符來引用。在Python3中,標識符的命名規則如下。由字母、下劃線“_”和數字組成,首字符不能是數字。字母可以是各種Unicode字符(空格、@、%、$等各種特殊符號除外)。不能使用關鍵字作為標識符。標識符區分大小寫。例如,_abc、速度、r_1都是合法的標識符,而2abc、price$是非法的標識符,Abc和abc是兩個不同的標識符。除了命名規則外,Python還有一些標識符使用慣例。首尾各有兩個下劃線(雙下劃線)的標識符通常為系統標識符,具有特殊作用。例如,__init__、__doc__都是系統標識符。默認情況下,以一個或兩個下劃線開頭的標識符(如_abc或__abc)不能使用“from…import*”語句從模塊導入。以兩個下劃線開頭的標識符(如__abc)是類的私有標識符。任務2-2:輸入兩個數比較大小【任務目標】使用input()函數輸入兩個數,比較其大小后,先輸出較大數,再輸出較小數。程序運行結果如下。請輸入第一個數:5請輸入第二個數:353【任務實施】演示過程……2.2數據輸入方法本節主要內容:input()函數輸入數值eval()函數中斷輸入2.2.1input()函數input()函數用于從鍵盤輸入數據,其基本語法格式如下。變量=input('提示字符串')其中,變量和提示字符串均可省略。函數將用戶輸入的內容作為字符串返回。用戶按【Enter】鍵結束輸入,【Enter】鍵之前的全部字符均作為輸入內容。指定變量時,變量保存輸入的字符串示例代碼如下。>>>a=input('請輸入數據:')請輸入數據:'abc'123,456"python">>>a'\'abc\'123,456"python"'2.2.2輸入數值如果需要輸入整數或小數,則應使用int()或float()函數轉換數據類型,示例代碼如下。>>>a=input('請輸入一個整數:')請輸入一個整數:5>>>a #輸出a的值,可看到輸出的是一個字符串'5'>>>a+1 #因為a中是一個字符串,試圖執行加法運算,所以出錯Traceback(mostrecentcalllast):File"<stdin>",line1,in<module>TypeError:Can'tconvert'int'objecttostrimplicitly>>>int(a)+1 #將字符串轉換為整數再執行加法運算,執行成功62.2.3eval()函數eval()函數可返回字符串的內容,即相當于去掉字符串的引號示例代碼如下。>>>a=eval('123') #等同于a=123>>>a123>>>type(a)<class'int'>>>>x=10>>>a=eval('x+20') #等同于a=x+20>>>a30在輸入整數或小數時,可使用eval()函數來執行轉換示例代碼如下。>>>a=eval(input('請輸入一個整數或小數:'))請輸入一個整數或小數:12>>>a12>>>type(a)<class'int'>2.2.4中斷輸入在輸入數據時,可按【Ctrl+Z】組合鍵中斷輸入,如果輸入了其他字符,此時【Ctrl+Z】和輸入內容作為字符串返回;如果沒有輸入任何數據,則會產生EOFError異常示例代碼如下。>>>a=input('請輸入數據:') #有數據時,^Z作為輸入數據,不會出錯請輸入數據:1231abc^Z>>>a'1231abc\x1a'>>>a=input('請輸入數據:')請輸入數據:^ZTraceback(mostrecentcalllast):File"<stdin>",line1,in<module>EOFError任務2-3:將詩詞輸出到文件【任務目標】編寫一個程序,將下面的詩詞輸出到文件。絕句杜甫兩個黃鸝鳴翠柳,一行白鷺上青天。窗含西嶺千秋雪,門泊東吳萬里船。右圖顯示了記事本中打開的文件內容。【任務實施】演示過程……2.3數據輸出方法本節主要內容:print()函數輸出到文件2.3.1print()函數print()函數基本語法格式如下。print([obj1,…][,sep=''][,end='\n'][,file=sys.stdout])1.輸出一個空行print()函數的所有參數均可省略。無參數時,print函數輸出一個空行,示例代碼如下。>>>print()2.輸出一個或多個數據print函數可同時輸出一個或多個數據示例代碼如下。>>>print(123) #輸出一個數據123>>>print(123,'abc',45,'book’) #輸出多個數據123abc45book在輸出多個數據時,默認使用空格作為輸出分隔符。3.指定輸出分隔符print()函數的默認輸出分隔符為空格,可用sep參數指定分隔符號示例代碼如下。>>>print(123,'abc',45,'book',sep='#')#指定用符號“#”作為輸出分隔符123#abc#45#book4.指定輸出結尾符號print()函數默認以回車換行符號作為輸出結尾符號,即在輸出所有數據后會換行。后續的print()函數在新行中繼續輸出。可以用end參數指定輸出結尾符號示例代碼如下。>>>print('price');print(100) #默認輸出結尾,兩個數據輸出在兩行price100>>>print('price',end='_');print(100) #指定下劃線為輸出結尾,兩個數據輸出在一行price_1002.3.2輸出到文件print()函數默認輸出到標準輸出流(即sys.stdout)。在交互環境中執行命令時,print()函數將數據輸出到交互環境。在系統命令提示符窗口中運行Python程序時,程序中的print()函數將數據輸出到系統命令提示符窗口.在IDLE中運行Python程序時,程序中的print()函數數據輸出到IDLE交互環境。可用file參數指定將數據輸出到文件,示例代碼如下。>>>file1=open(r'd:\data.txt','w') #打開文件>>>print(123,'abc',45,'book',file=file1) #用file參數指定輸出文件>>>file1.close() #關閉文件任務2-4:輸入3個數排序【任務目標】編寫程序,使用input()函數提示用戶輸入3個數,比較其大小后,按從小到大的順序輸出,程序運行結果如下。請輸入第一個數:9請輸入第二個數:3請輸入第三個數:5359【任務實施】演示過程……2.4賦值語句本節主要內容:簡單賦值序列賦值多目標賦值增強賦值2.4.1簡單賦值簡單賦值用于為一個變量賦值,示例代碼如下。x=1002.4.2序列賦值序列賦值可以一次性為多個變量賦值。在序列賦值語句中,可用逗號分隔多個變量和值,也可用元組、列表表示多個變量和值。Python按先后順序依次將數據賦值給變量。示例代碼如下。>>>x,y=1,2 #直接為多個變量賦值>>>x1>>>y2示例代碼如下。>>>(x,y)=10,20 #為元組中的變量賦值>>>x10>>>y20>>>[x,y]=30,'abc’ #為列表中的變量賦值>>>x30>>>y'abc'等號右側為字符串時,Python會將字符串分解為單個字符,依次賦值給各個變量。此時,變量個數和字符個數必須相等,否則會出錯示例代碼如下。>>>(x,y)='ab' #用字符串為元組中的變量賦值>>>x'a'>>>y'b'>>>((x,y),z)='ab','cd' #用嵌套的元組為變量賦值>>>x'a'>>>y'b'>>>z'cd'>>>(x,y)='abc' #字符個數與變量個數不一致,出錯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'第一個數據賦值給x,其他值作為列表賦值給y>>>x,*y=[1,2,'abc','漢字'] >>>x1>>>y[2,'abc','漢字']2.4.3多目標賦值多目標賦值指用連續的多個等號將同一個數據賦值給多個變量示例代碼如下。>>>a=b=c=10 #將10賦值給變量a、b、c>>>a,b,c(10,10,10)等價于:>>>a=10>>>b=a>>>c=b2.4.4增強賦值增強賦值指將運算符與賦值相結合的賦值語句示例代碼如下。>>>a=5>>>a+=10 #增強賦值,等價于a=a+10>>>a15Python中的增強賦值語句如表所示。+=-=*=**=//=&=|=^=>>=<<=/=%=任務2-5:使用共享列表存儲詩人姓名【任務目標】在列表中預存多個詩人姓名,然后輸入列表項序號和姓名,修改列表中列表項序號對應的詩人姓名,并輸出修改后的列表。程序運行結果如下。當前列表:['李白','杜甫','蘇軾']請輸入列表項序號[0,1,2]:1請輸入新的姓名:王維修改后的列表:['李白','王維','蘇軾']【任務實施】演示過程……2.5變量與對象關系本節主要內容:變量與對象對象回收機制變量的共享引用2.5.1變量與對象因為Python將所有的數據都作為對象來處理,賦值語句會在內存中創建對象和變量,以下面的賦值語句為例。x=5Python在執行該語句時,會按順序執行3個步驟:首先,創建表示整數5的對象;其次,檢查變量x是否存在,若不存在則創建變量x;最后,建立變量x與整數對象5的引用關系。變量x和對象5之間的關系。5x對象引用變量在Python中使用變量時,必須理解下面幾點。變量在第一次賦值時被創建,再次出現時可以直接使用。變量沒有數據類型的概念。數據類型屬于對象,它決定了對象在內存中的存儲方式。變量引用對象。在表達式中使用變量時,變量立即被其引用的對象替代。所以變量在使用之前必須為其賦值。示例代碼如下。>>>x=5 #第一次賦值,創建變量x,引用對象5>>>print(x+3) #變量x被對象5替代,語句實際為print(5+3)8每個對象都有各自的標識號、數據類型和值。一個對象被創建后,其標識號就絕不會改變。可將標識號理解為對象在內存中的地址。可用“is”運算符比較兩個對象的標識號是否相同,id()函數可返回代表標識號的整數,示例代碼如下。>>>x=10>>>y=10 #x和y引用同一個對象10>>>xisyTrue#查看x和y的標識號,實際上查看的都是10的標識號,所以返回的整數相同>>>id(10),id(x),id(y) (2349234979344,2349234979344,2349234979344)2.5.2對象回收機制當對象沒有被引用時,其占用的內存空間會自動被回收——稱為自動垃圾回收。Python為每一個對象創建一個計數器,記錄對象的引用次數。當計數器為0時,對象被刪除,其占用的內存被回收示例代碼如下。>>>x=5 #第一次賦值,創建變量x,引用整數對象5>>>type(x) #實際執行type(5),所以輸出整數對象5的數據類型<class'int'>>>>x=1.5 #使變量x引用浮點數對象1.5,對象5被回收>>>type(x) #實際執行type(1.5)<class'float'>>>>x='abc' #使變量x引用字符串對象'abc',對象1.5被回收>>>type(x) #實際執行type('abc')<class'str'>Python自動完成對象的垃圾回收,在編寫程序時不需要考慮對象的回收問題。可以

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論