




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
Python語言程序設計第1章Python語言基礎Python語言的發展與特點Python程序的運行環境Python數據類型各種形式Python數據的表示方法Python的基本運算1.1.1Python語言的發展歷史Python由荷蘭的GuidovanRossum設計。Python第一個版本于1991年初公開發行。。Python2.0于2000年10月發布,增加了許多新的語言特性。Python3.0于2008年12月發布,此版本不完全兼容Python2.0,導致Python
2.0與Python3.0不兼容。1.1Python語言概述1.1.2Python語言的特點1.Python語言的優勢(1)簡單易學。Python語言語法結構簡單,組成一個Python程序也沒有太多的語法細節和規則要求,“信手拈來”就可以組成一個程序。(2)程序可讀性好。通過強制程序縮進,Python語言確實使得程序具有很好的可讀性,同時Python的縮進規則是也有利于程序員養成良好的程序設計習慣。(3)豐富的數據類型。除了基本的數值類型外,Python語言還提供了字符串、列表、元組、字典和集合等豐富的復合數據類型。(4)開源的語言。各種社區提供了成千上萬不同功能的開源函數模塊,而且還在不斷地發展,這為基于Python語言的快速開發提供了強大支持。(5)解釋型的語言。用Python語言編寫的程序不需要編譯成二進制代碼,而可以直接運行源代碼。。(6)面向對象的語言。Python語言既可以面向過程,也可以面向對象,支持靈活的程序設計方式。2.Python語言的局限性Python程序的運行速度比較慢。Python用代碼縮進來區分語法邏輯的方式可能給初學者帶來困惑,最常見的情況是Tab和空格的混用會導致錯誤,而這是用肉眼無法分別的。1.1.3Python語言的應用領域1.Windows系統編程
在Windows系統下,通過使用pywin32模塊提供的WindowsAPI函數接口,就可以編寫與Windows系統底層功能相關的Python程序。利用py2exe模塊可以將Python程序轉換為.exe可執行程序,使得Python程序可以脫離Python系統環境來運行。2.科學計算與數據可視化
Python中用于科學計算與數據可視化的模塊有很多,例如NumPy、SciPy、SymPy、Matplotlib、Traits、TraitsUI、Chaco、TVTK、Mayavi、VPython、OpenCV等,涉及的應用領域包括數值計算、符號計算、二維圖表、三維數據可視化、三維動畫演示、圖像處理以及界面設計等。
3.數據庫應用
Python數據庫模塊有很多,例如,可以通過內置的sqlite3模塊訪問SQLite數據庫,使用pywin32模塊訪問Access數據庫,使用pymysql模塊訪問MySQL數據庫,使用pywin32和pymssql模塊來訪問SQLSever數據庫。4.多媒體應用
PyMedia模塊是一個用于多媒體操作的Python模塊,可以對包括WAV、MP3、AVI等多媒體格式文件進行編碼、解碼和播放;PyOpenGL模塊封裝了OpenGL應用程序編程接口,通過該模塊可在Python程序中集成二維或三維圖形;PIL(PythonImagingLibrary,Python圖形庫)為Python提供了強大的圖像處理功能,并提供廣泛的圖像文件格式支持。5.網絡應用
Python語言提供了socket模塊,對Socket接口進行了二次封裝,支持Socket接口的訪問;還提供了urllib、cookielib、httplib、scrapy等大量模塊,用于對網頁內容進行讀取和處理,并結合多線程編程以及其他有關模塊可以快速開發網頁爬蟲之類的應用程序;可以使用Python語言編寫CGI程序,也可以把Python程序嵌入到網頁中運行;Python語言還支持Web網站開發,比較流行的開發框架有web2py、django等。6.電子游戲應用
Pygame就是用來開發電子游戲軟件的Python模塊,在SDL庫的基礎上開發,可以支持多個操作系統。使用Pygame模塊,可以在Python程序中創建功能豐富的游戲和多媒體程序。1.2.1Python系統的下載與安裝
從Python官網下載Python系統文件,下載地址為/downloads/。選擇基于Windows操作系統的當時最新版本Python3.5.1進行下載。
下載完成后,運行系統文件python-3.5.1.exe,進入Python系統安裝界面。1.2Python語言的開發環境
選中“AddPython3.5toPATH”復選框,并使用默認的安裝路徑,單擊“InstallNow”選項,這時進入系統安裝過程,安裝完成后單擊close按鈕即可。如果要設置安裝路徑和其他特性,可以選擇“Customizeinstallation”選項。1.2.2系統環境變量的設置
如果在安裝時選中了“AddPython3.5toPATH”復選框,則會自動將安裝路徑添加到環境變量Path,否則可以在安裝完成后添加。
添加路徑的方法為:在Windows桌面右擊“計算機”圖標,在彈出的快捷菜單中選擇“屬性”命令,然后在打開的對話框中選擇“高級系統設置”選項,在打開的“系統屬性”對話框中選擇“高級”選項卡,單擊“環境變量”按鈕,打開“環境變量”對話框,在“系統變量”區域選擇“Path”選項,單擊“編輯”按鈕,將安裝路徑添加到Path中,最后單擊“確定”按鈕逐級返回。1.2.3Python程序的運行1.命令行形式的Python解釋器(1)在Windows系統的桌面,選擇“開始”→“所有程序”→“Python3.5”→“Python3.5(32-bit)”命令。(2)在Windows桌面單擊“開始”按鈕,選擇“運行”選項,在彈出的“運行”對話框中選擇Python啟動文件的路徑和文件名python.exe,單擊“確定”按鈕。(3)可以到Python的安裝文件夾下,通過雙擊運行python.exe文件來啟動命令行的Python解釋器,或在Python圖標上單擊右鍵,在彈出的菜單中選擇“創建快捷方式”命令,之后把建立的快捷方式圖標復制到桌面上,之后通過快捷方式來啟動命令行的Python解釋器。
啟動命令行形式的Python解釋器后出現相應的程序窗口,如圖所示。其中“>>>”是Python解釋器的提示符,在提示符后面輸入語句,Python解釋器將解釋執行。還可以在Windows命令提示符(即DOS操作界面)下直接運行python.exe文件,來啟動命令行的Python解釋器,程序窗口如圖所示。按Ctrl+Z及Enter鍵,或輸入quit()命令,或單擊Python命令行窗口的關閉按鈕,均可退出Python解釋器。2.圖形用戶界面形式的Python解釋器在Windows系統的桌面,選擇“開始”→“所有程序”→“Python3.5”→“IDLE(Python3.532-bit”來啟動圖形用戶界面形式的Python解釋器,其窗口如圖所示。
在Python解釋器圖形用戶界面窗口,選擇“File”→“Exit”命令,或按Ctrl+Q鍵,或輸入quit()命令,或單擊Python圖形用戶界面窗口的關閉按鈕,均可退出Python解釋器圖形用戶界面窗口。3.Python的命令執行方式
啟動Python解釋器后,可以直接在其提示符(>>>)后輸入語句。例如,先在提示符>>>后輸入一個輸出語句,下一行將接著輸出結果。>>>print("Hello,World!")Hello,World!>>>print(1+3/4)1.754.Python的程序方式(1)在Python解釋器的程序編輯窗口執行Python程序。在Python解釋器圖形用戶界面窗口,選擇“File”→“NewFile”命令,或按Ctrl+N鍵,打開程序編輯窗口,如圖所示。
在程序編輯窗口輸入程序的全部語句,例如輸入語句:print("Hello,World!")
語句輸入完成后,在Python程序編輯窗口選擇“File”→“Save”命令,確定保存文件位置和文件名,例如e:\mypython\hello.py。
在Python程序的編輯窗口選擇“Run”→“RunModule”命令,或按F5鍵,運行程序并在Python解釋器圖形用戶界面窗口中輸出運行結果。(2)在Python解釋器提示符下運行Python程序在Python解釋器(命令行或圖形用戶界面)的提示符下執行import語句來導入程序文件。import語句的作用是將Python程序文件從磁盤加載到內存,在加載的同時執行程序。例如,運行hello.py,可以使用下面的語句。>>>importhello注意,模塊文件名不加擴展名“.py”。(3)Windows命令提示符下運行Python程序在Windows命令提示符下切換到Python程序文件所在文件夾,因為程序文件位于e:\mypython文件夾下,所以可以先選擇e:盤并設置其當前文件夾為e:\mypython。然后,在Windows命令提示符下輸入python,后跟要執行的程序文件名即可,如圖所示。1.常量
在程序運行過程中,其值不能改變的數據對象稱為常量(constant)。常量按其值的表示形式區分它的類型。例如,0、435、-78是整型常量,-5.8、3.14159、1.0是實型常量(也稱作浮點型常量),'410083'、'Python'是字符串常量。1.3常量與變量2.變量的一般概念
在高級語言中,變量(variable)可以看作是一個特定的內存存儲區,該存儲區由一定個數字節的內存單元組成,并可以通過變量的名字來訪問。
高級語言中的變量具有變量名、變量值和變量地址三個屬性。
變量在它存在期間,在內存中占據一定的存儲單元,以存放變量的值。3.Python變量(1)變量的數據類型
Python語言是一種動態類型語言,變量的數據類型是在給變量賦值時確定,對變量的每一次賦值,都可能改變變量的類型。例如:可以使用Python內置函數type()來查詢變量的類型。例如:(2)變量與地址的關系
Python語言采用基于值的內存管理方式,不同的值分配不同的內存空間。這可理解為,Python變量并不是某一個固定內存單元的標識,而是對內存中存儲的某個數據的引用(reference),這個引用是可以動態改變的。4.Python標識符
在Python中,標識符由字母、數字和下劃線(_)組成,但不能以數字開頭,標識符中的字母是區分大小寫的。例如,abc、a_b_c、Student_ID都是合法的標識符,sum、Sum、SUM代表不同的標識符。單獨的下劃線(_)是一個特殊變量,用于表示上一次運算的結果。
5.Python關鍵字
所謂關鍵字(keyword),就是Python語言中事先定義的、具有特定含義的標識符,有時又稱保留字。關鍵字不允許另作它用,否則執行時會出現語法錯誤。可以在使用import語句導入keyword模塊后使用print(keyword.kwlist)語句查看所有Python關鍵字。語句如下。>>>importkeyword>>>print(keyword.kwlist)1.4.1數值類型1.整型數據
整型數據即整數,不帶小數點,但可以有正號或負號。在Python中,整型數據的值在計算機內的表示不是固定長度的,只要內存許可,整數可以擴展到任意長度,整數的取值范圍幾乎包括了全部整數(無限大),這給大數據的計算帶來便利。
1.4Python數據類型Python的整型常量有4種表示形式:(1)十進制整數。(2)二進制整數。它以0b或0B(數字0加字母b或B)開頭,后接數字0,1的整數。(3)八進制整數。它是以0o或0O(數字0加小寫字母o或大寫字母O)開頭,后接數字0~7的整數。(4)十六進制整數。它是以0x或0X開頭,后接0~9和A~F(或用小寫字母)字符的整數。2.浮點型數據浮點型數據表示一個實數,有兩種表示形式:(1)十進制小數形式。它由數字和小數點組成,如3.23、34.0、0.0等。浮點型數據允許小數點后面沒有任何數字,表示小數部分為0,如34.表示34.0。(2)指數形式。指數形式即用科學計數法表示的浮點數。例如,45e-5、45e-6、9.34e2是合法的浮點型常量,分別代表45×10-5、45×10-6、9.34×102。
3.復數型數據
復數類型數據的形式為:a+bJ
其中a是復數的實部,b是復數的虛部,J表示-1的平方根(虛數單位)。J也可以寫成小寫j,注意不是數學上的i。
可以通過x.real和x.imag來分別獲取復數x的實部和虛部,結果都是浮點型。1.4.2字符串類型1.Python標準字符串
在Python中定義一個標準字符串可以使用單引號、雙引號和三引號(三個單引號或三個雙引號),這使得Python輸入文本更方便。例如,當字符串的內容中包含雙引號時,就可以用單引號定義,反之亦然。
用單引號或雙引號括起來的字符串必須在一行內表示,這是最常見的表示字符串的方法。而用三引號括起來的字符串可以是多行的。2.轉義字符
轉義字符以反斜杠“\”開頭,后跟一個或幾個字符。轉義字符具有特定的含義,不同于字符原有的意義,故稱轉義字符,主要用來表示那些用一般字符不便于表示的控制代碼。例如,“\n”表示以后的輸出從下一行開始;“\r”表示對當前行作重疊輸出(只回車,不換行);字符“\t”是制表符,其作用是使當前輸出位置橫向跳至一個輸出區的第一列。3.基本的字符串函數(1)eval()函數
與字符串有關的一個重要函數是eval,其調用格式為:
eval(字符串)
eval()函數的作用是把字符串的內容作為對應的Python語句來執行。(2)len()函數
len()函數返回字符串的長度,即字符串中所包含的字符個數,其調用格式為:
len(字符串)1.4.3布爾類型
在Python中,布爾型數據有True和False,分別代表邏輯真和邏輯假。
值為真或假的表達式稱為布爾表達式,Python的布爾表達式包括關系運算表達式和邏輯運算表達式,它們通常用來在程序中表示條件,條件滿足時結果為True,不滿足時結果為False。
在Python中,邏輯值True和False實際上是分別用整型值1和0參與運算。例如:>>>x=False>>>x+(5>4)11.4.4復合數據類型
列表、元組、字典和集合類型的數據包含多個相互關聯的數據元素,所以稱它們為復合數據類型。字符串其實也是一種復合數據,其元素是單個字符。
列表、元組和字符串是有順序的數據元素的集合體,稱作序列(sequence)。序列可以通過各數據元素在序列中的位置編號(索引)來訪問數據元素。字典和集合屬于無順序的數據集合體,不能通過位置編號來訪問數據元素。1.列表
列表(list)是寫在中括號之間、用逗號分隔的元素序列,元素的類型可以不相同,可以是數字、單個字符、字符串甚至可以包含列表(所謂嵌套)。例如:>>>mlist=['brenden',45.3,911,'john',32]與Python字符串不同的是,列表中的元素是可以改變的。例如:>>>a=[1,2,3,4,5,6]>>>a[0]=9>>>a[9,2,3,4,5,6]2.元組
元組(tuple)是寫在小括號之間、用逗號隔開的元素序列。元組中的元素類型也可以不相同。元組與列表類似,不同之處在于元組的元素不能修改,相當于只讀列表。例如:>>>mtuple=('brenden',45.3,911,'john',32)要注意一些特殊元組的表示方法。空的圓括號表示空元組。當元組只有一個元素時,必須以逗號結尾。任何一組以逗號分隔的對象,當省略標識序列的括號時,默認為元組。例如:>>>2,3,4(2,3,4)元組與字符串類似,元素不能二次賦值。其實,可以把字符串看作一種特殊的元組。元組和列表有幾點重要的區別。列表元素用中括號[]括起來,且元素的個數及元素的值可以改變。元組元素用小括號()括起來,且不可以更改。元組可以看成是只讀的列表。3.字典字典(dictionary)是寫在大括號之間、用逗號分隔的元素集合,其元素由關鍵字(key,也稱作鍵)和關鍵字對應的值(value)組成,通過關鍵字來存取的字典中的元素。列表和元組是有序的對象結合,字典是無序的對象集合。字典是一種映射類型(mappingtype),它是一個無序的“關鍵字:值”對集合。關鍵字必須使用不可變類型,也就是說列表和包含可變類型的元組不能做索引關鍵字。在同一個字典中,關鍵字還必須互不相同。例如:>>>dict={'name':'brenden','code':410012,'dept':'sales'}4.集合集合(set)是一個無序且包含不重復元素的數據類型。基本功能是進行成員關系測試和消除重復元素。可以使用大括號或者set()函數創建集合類型,注意:創建一個空集合必須用set()而不是{},因為{}是用來創建一個空字典。>>>student={'Tom','Jim','Mary','Tom','Jack','Rose'}
Python的標準庫包含很多模塊,每個模塊中定義了很多有用的函數,這些函數稱為系統函數。例如,數學庫模塊(math)提供了很多數學運算函數,復數模塊(cmath)提供了用于復數運算的函數,隨機數模塊(random)提供了用來生成隨機數的函數,時間(time)和日歷(calendar)模塊提供了能處理日期和時間的函數。1.5常用系統函數在調用系統函數之前,先要使用import語句導入相應的模塊,格式如下:import模塊名還有一種導入模塊的方法,格式如下:from模塊名import函數名如果希望導入模塊中的所有函數定義,則函數名用“*”。格式如下:from模塊名import*1.5.1常用模塊函數1.math模塊函數
math模塊主要處理數學相關的運算。2.cmath模塊函數
cmath模塊函數跟math模塊函數基本一致,包括圓周率、自然對數的底,還有復數的冪指數、對數函數、平方根函數、三角函數等。cmath模塊函數名和math模塊函數名一樣,只是math模塊對實數運算進行支持,cmath模塊對復數運算進行支持。3.random模塊函數(1)隨機數種子(2)隨機挑選和排序(3)生成隨機數4.time模塊函數
例如,time()函數返回當前時間的時間戳。5.calendar模塊函數
日歷(calendar)模塊提供與日歷相關的功能。在默認情況下,日歷把星期一作為一周的第一天,星期日為最后一天。要改變這種設置,可以調用setfirstweekday()函數。1.5.2常用內置函數
Python內置函數包含在模塊builtins中,該模塊在啟動Python解釋器時自動裝入內存,而其他的模塊函數都要等使用import語句導入時才會裝入內存。內置函數隨著Python解釋器的運行而創建,在程序中可以隨時調用這些函數。前面用到的print()函數、type()、id()函數都是常見的內置函數。1.range()函數range()函數的調用格式是:
range([start,]end[,step])
range()函數產生的數字序列從start開始,默認是從0開始;序列到end結束,但不包含end;如果指定了可選的步長step,則序列按步長增加,默認為1。例如:>>>range(2)#產生可迭代對象range(0,2)2.數值運算函數Python有些內置函數用于數值運算。abs(x):返回x的絕對值,結果保持x的類型。x為復數時返回復數的模。pow(x,y[,z]):省略z時,返回x的y次冪,結果保持x或y的類型。如果使用了參數z,其結果是x的y次方再對z求余數。round(x[,n]):用于對浮點數進行四舍五入運算,返回值為浮點數。它有一個可選的小數位數參數。divmod(x,y):把除法和取余運算結合起來,返回一個包含商和余數的元組。3.Python系統的幫助信息查看Python幫助信息可以使用內置函數dir()和help()。dir()函數的調用方法很簡單,只需把想要查詢的對象加到括號中就可以了,它返回一個列表,其中包含要查詢對象的所有屬性和方法。查看某個對象的幫助信息可以用help()函數。1.6.1算術運算1.算術運算符與算術表達式Python的算術運算符有:+(加)、-(減)、*(乘)、/(除)、//(整除)、%(求余)、**(乘方)1.6基本運算
/、//和%運算符都是做除法運算,其中“/”運算符做一般意義上的除法,其運算結果是一個浮點數,即使被除數和除數都是整型,也返回一個浮點數;“//”運算符做除法運算后返回商的整數部分。如果分子或者分母是浮點型,它返回的值將會是浮點類型;“%”運算符做除法運算后返回余數。
“**”運算符實現乘方運算,其優先級高于乘除運算,乘除運算優先級高于加減運算。Python表達式書寫練習:2.浮點數的計算誤差
Python中能表示浮點數的有效數字是有限的,而在實際應用中數據的有效位數并無限制,這種矛盾,勢必帶來計算時的微小誤差。
對浮點數判斷是否相等要慎用“==”運算符,恰當的辦法是判斷它們是否“約等于”,只要在允許的誤差范圍內,這種判斷仍是有意義的。所謂“約等于”是指兩個浮點數非常接近,即它們的差足夠小(具體誤差可以根據實際情況進行調整)。3.數據類型的轉換
常用的類型轉換函數如下。int(x)將x轉換為整型。float(x)將x為轉換浮點型。complex(x)將x轉換為復數,其中復數的實部為x和虛部為0。complex(x,y)將x和y轉換成一個復數,其中實部為x和虛部y。1.6.2位運算1.按位與運算
按位與運算符是&,其運算規則為:
0&0=0,0&1=0,1&0=0,1&1=12.按位或運算
按位或運算符是|,其運算規則為:
0|0=0,0|1=1,1|0=1,1|1=13.按位異或運算
按位異或運算符是^,其運算規則為:
0^0=0,0^1=1,1^0=1,1^1=04.按位取反運算
按位取反運算符是~,其運算規則為:
~0=1,~1=0第2章
順序結構程序設計的基本步驟算法的概念Python程序的書寫規則賦值語句輸入輸出語句順序結構程序設計方法2.1.1程序設計的基本步驟分析問題,確定數學模型或方法設計算法,畫出流程圖選擇編程工具,按算法編寫程序調試程序,分析輸出結果2.1程序設計概述2.1.2算法及其描述1.算法的概念計算機解決問題的方法和步驟,就是計算機解題的算法。例2-1
求例2-2
輸入20個數,要求找出其中最大的數。2.算法的描述
(1)用傳統流程圖描述算法例2-3
用傳統流程圖來描述例2-1和例2-2的算法。用傳統流程圖描述的算法分別如圖2-1和圖2-2所示。用傳統流程圖描述例2-1的算法
用傳統流程圖描述例2-2的算法(2)用結構化流程圖描述算法①程序的三種基本結構:順序結構、選擇結構和循環結構。
順序結構選擇結構
(a)當型循環結構(b)直到型循環結構
三種基本程序結構具有如下共同特點:只有一個入口。只有一個出口。結構中無死語句,即結構內的每一部分都有機會被執行。結構中無死循環,即循環在滿足一定條件后能正常結束。②結構化流程圖(N-S圖):以三種基本結構作為構成算法的基本元素,每一種基本結構用一個矩形框來表示,而且取消了流程線,各基本結構之間保持順序執行關系。
順序結構的N-S圖
選擇結構的N-S圖
(a)當型循環結構
(b)直到型循環結構例
用N-S圖描述例2-1和例2-2的算法。
用N-S圖描述例2-1的算法用N-S圖描述例2-2的算法2.2.1初識Python程序例
輸入三個變量的值,然后按小到大順序輸出。程序如下:x=int(input('inputx:'))#輸入x的值y=int(input('inputy:'))#輸入y的值z=int(input('inputz:'))#輸入z的值ifx>y:#如果x>y,則x和y的值互換x,y=y,xifx>z:#如果x>z,則x和z的值互換x,z=z,xify>z:#如果y>z,則y和z的值互換y,z=z,yprint(x,y,z)2.2Python程序的書寫規則例
已知f(x,y)=x2+y2,輸入x,y的值,求出對應的函數值。程序如下:deff(x,y):returnx**2+y**2print("f(3,4)=",f(3,4))第一個語句定義了一個函數,然后調用該函數。前面的f(x,y)函數可以定義成lambda函數的形式。f=lambdax,y:x**2+y**2print("f(3,4)=",f(3,4))例
輸出Fibonacci數列前50項之和。程序如下:a,b=0,1s=0foriinrange(50):#i從0變化到49
s+=ba,b=b,a+bprint("s=",s)程序段一:foriinrange(0,50):s+=b
a,b=b,a+b2.2.2
Python語句縮進規則Python通過語句縮進對齊反映語句之間的邏輯關系,從而區分不同的語句塊。就一個語句塊來講,需要保持一致的縮進量。程序段二:foriinrange(0,50):
s+=ba,b=b,a+b兩種縮進方式可用流程圖直觀表示。(a)(b)兩種縮進方式的比較2.2.3Python語句行與注釋1.語句行在Python中,語句行從解釋器提示符后的第一列開始,前面不能有任何空格,否則會產生語法錯誤。每個語句行以回車符結束。可以在同一行中使用多條語句,語句之間使用分號分隔。如果語句行太長,可以使用反斜杠將一行語句分為多行顯示。如果在語句中包含小括號、中括號或大括號,則不需要使用多行續行符。2.注釋注釋對程序的執行沒有任何影響,目的是對程序作解釋說明,以增強程序的可讀性。程序中的單行注釋采用#開頭,注釋可以從任意位置開始,可以在語句行末尾,也可以獨立成行。對于多行注釋,一般推薦使用多個#開頭的多行注釋,也可采用三引號(實際上是用三引號括起來的一個多行字符串,起到注釋的作用)。注意,注釋行是不能使用反斜杠續行的。2.3賦值語句Python的賦值和一般的高級語言的賦值有很大的不同,它是數據對象的一個引用。2.3.1賦值語句的一般格式一個變量通過賦值可以指向不同類型的對象。賦值語句的一般格式為:變量=表達式賦值號左邊必須是變量,右邊則是表達式。賦值的意義是先計算表達式的值,然后使該變量指向該數據對象,該變量可以理解為該數據對象的別名。Python是動態類型語言,也就是說不需要預先定義變量類型,變量的類型和值在賦值那一刻被初始化。例如:>>>x=67.2>>>x="ABCD"Python中的賦值并不是直接將一個值賦給一個變量,而是通過引用傳遞的。在賦值時,不管這個對象是新創建的還是一個已經存在的,都是建立變量對該數據對象的引用(并不是值)。2.3.2復合賦值語句Python還提供了12種復合賦值運算符:+=、-=、*=、/=、//=、%=、**=、<<=、>>=、&=、|=、^=其中,前7種是常用的算術運算,后5種是關于位運算的復合賦值運算符。例如:x+=5.0x*=u+v分別等價于“x=x+5.0”和“x=x*(u+v)”。2.3.3多變量賦值1.鏈式賦值鏈式賦值語句的一般形式為:變量1=變量2=……=變量n=表達式例如:>>>a=b=10賦值語句執行時,創建一個值為10的整型對象,將對象的同一個引用賦值給a和b,即a和b均指向數據對象10。2.同步賦值同步賦值的一般形式為:變量1,變量2,……,變量n=表達式1,表達式2,……,表達式n其中賦值號左邊變量的個數與右邊表達式的個數要一致。同步賦值首先計算右邊n個表達式的值,然后同時將表達式的值賦值給左邊的n個變量,這并非等同于簡單地將多個單一賦值語句進行組合。例如:>>>a,b,c=10,20,302.4.1標準輸入輸出1.標準輸入Python用內置函數input()實現標準輸入,其調用格式為:input([提示字符串])其中,中括號中的“提示字符串”是可選項。如果有“提示字符串”,則原樣顯示,提示用戶輸入數據。input()函數從標準輸入設備(鍵盤)讀取一行數據,并返回一個字符串(去掉結尾的換行符)。例如:>>>
name=input("Pleaseinputyourname:")Pleaseinputyourname:jasmine↙2.4
數據輸入輸出2.標準輸出Python語言直接使用表達式可以輸出該表達式的值。常用的輸出方法是用print()函數,其調用格式為:print([輸出項1,輸出項2,……,輸出項n][,sep=分隔符][,end=結束符])其中sep表示輸出時各輸出項之間的分隔符(默認以空格分隔),end表示結束符(默認以回車換行結束)。例如:print(10,20,sep=',',end='*')print(30)輸出結果為:10,20*302.4.2格式化輸出Python格式化輸出的基本做法是,將輸出項格式化,然后利用print()函數輸出。具體實現方法有三種:利用字符串格式化運算符%。利用format()內置函數。利用字符串的format()方法。1.字符串格式化運算符%在Python中,格式化輸出時,用運算符%分隔格式字符串與輸出項,一般格式為;格式字符串%(輸出項1,輸出項2,……,輸出項n)其中,格式字符串由普通字符和格式說明符組成。普通字符原樣輸出,格式說明符決定所對應輸出項的輸出格式。格式說明符以百分號%開頭,后接格式標志符。例如:>>>print("%+3d,%0.2f"%(25,123.567))+25,123.572.format()內置函數format()內置函數可以將一個輸出項單獨進行格式化,一般格式為:format(輸出項[,格式字符串])其中,格式字符串是可選項。當省略格式字符串時,該函數等價于函數“str(輸出項)”的功能。format()內置函數把輸出項按格式字符串中的格式說明符進行格式化。>>>print(format(15,'X'),format(65,'c'),format(3.145,'f'))FA3.1450003.字符串的format()方法在Python中,字符串都有一個format()方法,這個方法會把格式字符串當作一個模版,通過傳入的參數對輸出項進行格式化。字符串format()方法的調用格式為:格式字符串.format(輸出項1,輸出項2,……,輸出項n)格式說明符使用大括號擴起來,一般形式如下:{[序號或鍵]:格式說明符}例如:>>>'{0:.2f},{1}'.format(3.145,500)'3.15,500'2.5順序結構程序舉例例已知x,y,求z的值。分析:這是一個求表達式值的問題,程序分為以下三步。求x,y的值。求z的值。輸出z的值。例
從鍵盤輸入一個三位整數n,輸出其逆序數m。例如,輸入n=127,則m=721。分析:程序分為以下三步。輸入一個3位整數n。求逆序數m。輸出m。例
求一元二次方程ax2
+
bx
+
c
=
0的根。分析:由于Python能進行復數運算,所以不需要判斷方程的判別式,而直接根據求根公式求根。調用復數運算函數需要導入cmath模塊。例有一線段AB,A的坐標為(1,1),B的坐標為(4.5,4.5),如圖2-13所示。求AB的長度,以及黃金分隔點C的坐標。黃金分割點在線段的0.618處。分析:A,B的坐標可用復數表示:即A為(1+1j),B為(4.5+4.5j)。AB的長度就是(A-B)的模,可用abs函數直接求出復數的模。黃金分隔點C的坐標為A+0.618×(B-A)。第3章
選擇結構Python中表示條件的方法if語句選擇結構程序設計方法。3.1.1關系運算Python的關系運算符有:<(小于)、<=(小于等于)、>(大于)、>=(大于等于)、==(等于)、!=(不等于)關系運算符用于兩個量的比較判斷。由關系運算符將兩個表達式連接起來的式子就稱為關系表達式,它用來表示條件,其一般格式為:表達式1關系運算符表達式2例如,i+j==k,a<b+c。3.1條件的描述3.1.2邏輯運算1.邏輯運算符Python的邏輯運算符有:and(邏輯與)、or(邏輯或)、not(邏輯非)其中and和or運算符要求有兩個運算量,用于連接兩個條件,構成更復雜的條件。not運算符只作用于后面的一個邏輯量。2.邏輯表達式邏輯表達式是用邏輯運算符將邏輯量連接起來的式子。除not以外,and和or構成的邏輯表達式一般形式為:P邏輯運算符Q其中P,Q是兩個邏輯量。例
寫出下列條件。(1)判斷年份year是否為閏年。(2)判斷ch是否為小寫字母。(3)判斷m能否被n整除。(4)判斷ch既不是字母也不是數字字符。條件1:(year%4==0andyear%100!=0)oryear%400==0條件2:ch>='a'andch<='z'條件3:m%n==0或m-m/n*n==0條件4:not((ch>='A'andch<='Z')or(ch>='a'andch<='z')or(ch>='0'andch<='9'))3.邏輯運算的重要規則邏輯與(and)和邏輯或(or)運算分別有如下性質:(1)aandb:當a為False時,不管b為何值,結果為False。(2)aorb:當a為True時,不管b為何值,結果為True。對于aandb,當a的可解釋為False,則表達式值為False,否則表達式的值為b;對于aorb,如果a為False,則表達式的值為b,否則表達式值為True。3.1.3測試運算1.成員測試in運算符用于在指定的序列中查找某個值是否存在,存在返回True,否則返回False。該運算符的使用格式是xiny,如果x在y序列中則返回True,否則返回False。例如:>>>3in(20,15,3,14,5)True“notin”的含義是,如果在指定的序列中沒有找到值,則返回True,否則返回False。對于xnotiny,如果x不在y序列中返回True,否則返回False。例如:>>>3notin(20,15,3,14,5)False2.身份測試身份運算符用于測試兩個變量是否指向同一個對象。例如:>>>a=20>>>b=20>>>aisbTrue>>>aisnotbFalse3.2.1單分支選擇結構可以用if語句實現單分支選擇結構,其一般格式為:if表達式:
語句塊3.2選擇結構的實現單分支if語句的執行過程注意:(1)在if語句的表達式后面必須加冒號。(2)因為Python把非0當作真,0當作假,所以表示條件的表達式不一定必須是結果為True或False的關系表達式或邏輯表達式,可以是任意表達式。(3)if語句中的語句塊必須向右縮進,語句塊可以是單個語句,也可以是多個語句。當包含兩個或兩個以上的語句時,語句必須縮進一致,即語句塊中的語句必須上下對齊。(4)如果語句塊中只有一條語句,if語句也可以寫在同一行上。例如:例3-2輸入兩個整數a和b,先輸出較大數,再輸出較小數。分析:輸入a,b,如果a<b,則交換a和b,否則不交換,最后輸出a,b。程序如下:a,b=eval(input("輸入a,b:"))ifa<b:#若a<b,交換a和b,否則不交換a,b=b,aprint("{0},{1}".format(a,b))3.2.2雙分支選擇結構可以用if語句實現雙分支選擇結構,其一般格式為:if表達式:
語句塊1else:
語句塊2雙分支if語句的執行過程例
輸入三角形的三個邊長,求三角形的面積。分析:設a,b,c表示三角形的三個邊長,則構成三角形的充分必要條件是任意兩邊之和大于第三邊,即a+b>c,b+c>a,c+a>b。如果該條件滿足,則可按照海倫公式計算三角形的面積:其中p=(a+b+c)/2。程序如下:frommathimport*a,b,c=eval(input("a,b,c="))ifa+b>canda+c>bandb+c>a:p=(a+b+c)/2s=sqrt(p*(p-a)*(p-b)*(p-c))print("a={0},b={1},c={2}".format(a,b,c))print("area={}".format(s))else:print("a={0},b={1},c={2}".format(a,b,c))print("inputdataerror")例
輸入x,求對應的函數值y。分析:這是一個具有兩個分支的分段函數,為了求函數值,可以采用雙分支結構來實現。程序如下:frommathimport*x=eval(input("x="))ifx<0:y=log(-5*x)+fabs(x)else:y=sin(x)+sqrt(x+exp(2))/(2*pi)print("x={},y={}".format(x,y))還可以采用兩個單分支結構來實現,程序如下:frommathimport*x=eval(input("x="))ifx<0:y=log(-5*x)+fabs(x)ifx>=0:y=sin(x)+sqrt(x+exp(2))/(2*pi)print("x={},y={}".format(x,y))
思考:第一個if語句能否不寫,并分析原因。第二個if語句能否不用,并分析原因。3.2.3多分支選擇結構多分支if語句的一般格式為:if表達式1:語句塊1elif表達式2:
語句塊2elif表達式3:
語句塊3……elif表達式m:
語句塊m[else:
語句塊n]多分支if選擇結構的執行過程例
輸入學生的成績,根據成績進行分類,85以上為優秀,70~84為良好,60~69為及格,60以下為不及格。分析:將學生成績分為四個分數段,然后根據各分數段的成績,輸出不同的等級。程序分為四個分支,可以用四個單分支結構實現,也可以用多分支if語句實現。程序如下:g=float(input("請輸入學生成績:"))ifg<60:print("不及格")elifg<70:print("及格")elifg<85:print("良好")else:print("優秀")語句二:if表達式1:if表達式2:
語句塊1else:
語句塊23.2.4選擇結構的嵌套if語句中可以再嵌套if語句,例如,有以下不同形式的嵌套結構。語句一:if表達式1:if表達式2:
語句塊1else:
語句塊2Python的條件運算有三個運算量,其一般格式為:表達式1if表達式else表達式2條件運算的運算規則是,先求if后面表達式的值,如果其值為True,則求表達式1,并以表達式1的值為條件運算的結果。如果if后面表達式的值為False,則求表達式2,并以表達式2的值為條件運算的結果。例如,z=xifx>yelsey。3.3條件運算例
生成3個兩位隨機整數,輸出其中最大的數。這里用條件運算表達式來實現,程序如下:importrandomx=random.randint(10,99)y=random.randint(10,99)z=random.randint(10,99)max=xifx>yelseymax=maxifmax>zelsezprint("x={0},y={1},z={2}".format(x,y,z))print("max=",max)例
輸入一個整數,判斷它是否為水仙花數。所謂水仙花數,是指這樣的一些三位整數:各位數字的立方和等于該數本身,例如153=13+53+33,因此153是水仙花數。分析:關鍵的一步是先分別求三位整數個位、十位、百位數字,再根據條件判斷該數是否為水仙花數。3.4選擇結構程序舉例例
輸入一個時間(小時:分鐘:秒),輸出該時間經過5分30秒后的時間。
hour=int(input('請輸入小時:'))minute=int(input('請輸入分鐘:'))second=int(input('請輸入秒:'))second+=30ifsecond>=60:second=second-60minute+=1minute+=5ifminute>=60:minute=minute-60hour+=1ifhour==24:hour=0print('{0:d}:{1:d}:{2:d}'.format(hour,minute,second))例
硅谷公司員工的工資計算方法如下:(1)工作時數超過120小時者,超過部分加發15%。(2)工作時數低于60小時者,扣發700元。(3)其余按每小時84元計發。輸入員工的工號和該員工的工作時數,計算應發工資。分析:為了計算應發工資,首先分兩種情況,即工時數小于等于120小時和大于120小時。工時數超過120小時時,實發工資有規定的計算方法。而工時數小于等于120小時時,又分為大于60和小于等于60兩種情況,分別有不同的計算方法。所以程序分為3個分支,即工時數>120、60<工時數≤120和工時數≤60,可以用多分支if結構實現,也可以用if的嵌套實現。例
輸入年月,求該月的天數。分析:用year、month分別表示年和月,day表示每月的天數。考慮到以下兩點。(1)每年的1、3、5、7、8、10、12月,每月有31天;4、6、9、11月,每月有30天;閏年2月有29天,平年2月有28天。(2)年份能被4整除,但不能被100整除,或者能被400整除的年均是閏年。第4章
循環結構while語句for語句循環結構程序設計方法。4.1.1while語句1.while語句的一般格式while語句的一般格式為:while表達式:
語句塊while語句中的表達式表示循環條件,可以是結果能解釋為True或False的任何表達式,常用的是關系表達式和邏輯表達式。表達式后面必須加冒號。語句塊是重復執行的部分,稱作循環體。4.1while循環結構while語法的執行過程注意:(1)當循環體由多個語句構成時,必須用縮進對齊的方式組成一個語句塊,否則會產生錯誤。(2)與if語句的語法類似,如果while循環體中只有一條語句,可以將該語句與while寫在同一行中。(3)如果表達式永遠為True,循環將會無限地執行下去(俗稱“死”循環)。在循環體內必須有修改表達式值的語句,使其值趨向False,讓循環趨于結束,避免無限循環。2.在while語句中使用else子句在Python中,可以在循環語句中使用else子句,else中的語句會在循環正常執行完的情況下執行(不管是否執行循環體)。例如:count=int(input())whilecount<5:print(count,"islesshan5")count=count+1else:print(count,"isnotlessthan5")程序的一次運行結果如下:8↙8isnotlessthan54.1.2while循環的應用例
計算1+2+3+……+100的值。分析:累加問題可用遞推式來描述:si=si-1+ni(s0=0,n1=1),從循環的角度看即本次循環的累加和s等于上次循環的累加和加上本次的累加項n,可用賦值語句“s+=n”來實現。此例的累加項n的遞推式為:ni=ni-1+1(n1=1),可用賦值語句“n+=1”來實現(n=1,2,3,……,100)。循環體要實現兩種操作:s+=n和n+=1,并置s的初值為0,n的初值為1。例
求sinx近似值,直到最后一項的絕對值小于10-6時停止計算。其中x為弧度,但從鍵盤輸入時以角度為單位。分析:這是一個累加求和問題。關鍵是如何求累加項,較好的辦法是利用前一項來求后一項,即用遞推的辦法來求累加項。第i項與第i-1項之間的遞推關系為:
a1=x求sinx值的算法例輸入一個整數,輸出其位數。分析:輸入的整數存入變量n中,用變量k來統計n的位數,基本思路是每循環一次就去掉n的最低位數字(用Python的整除運算符實現),直到n為0。4.2.1for語句1.for語句的一般格式for語句的一般格式為:for目標變量in序列對象:
語句塊for語句的首行定義了目標變量和遍歷的序列對象,后面是需要重復執行的語句塊。語句塊中的語句要向右縮進,且縮進量要一致。4.2for循環結構for語句執行過程注意:(1)for語句是通過遍歷任意序列的元素進行來建立循環的,針對序列的每一個元素執行一次循環體。列表、字符串、元組都是序列,可以利用它們來建立循環。(2)for語句也支持一個可選的else塊,它的功能就像在while循環中一樣,如果循環離開時沒有碰到break語句,就會執行else塊。也就是序列所有元素都被訪問過了之后,執行else塊。2.rang對象在for循環中的應用在Python3.x中,range()函數返回的是可迭代對象。Python專門為for語句設計了迭代器的處理方法。例如:foriinrange(5):print(i,end='')程序輸出結果如下:01234首先Python對關鍵字in后的對象調用iter()函數獲得迭代器,然后調用next()函數獲得迭代器的元素,直到拋出StopIteration異常。4.2.2for循環的應用例
輸入20個數,求出其中的最大數與最小數。分析:先假設第一個數就是最大數或最小數,再將剩下的19個數與到目前為止的最大數、最小數進行比較,比完19次后即可找出20個數中的最大數與最小數。例
求Fibonacci數列的前30項。分析:設待求項(即fn)為f,待求項前面的第一項(即fn-1)為f1,待求項前面的第二項(即fn-2)為f2。首先根據f1和f2推出f,再將f1作為f2,f作為f1,為求下一項作準備。如此一直遞推下去。
1 1 2 3 5第一次:f2+ f1→ f
↓ ↓第二次:f2+ f1→ f
↓ ↓第三次: f2+ f1→ f例4-6輸入一個整數m,判斷是否為素數。分析:素數是大于1,且除了1和它本身以外,不能被其他任何整數所整除的整數。為了判斷整數M是否為素數,一個最簡單的辦法用2、3、4、5、……、M-1這些數逐個去除M,看能否整除,如果全都不能整除,則M是素數,否則,只要其中一個數能整除,則M不是素數。當M較大時,用這種方法,除的次數太多,可以有許多改進辦法,以減少除的次數,提高運行效率。可以設一個變量來作為是否素數的標志,用for語句實現程序。4.3.1break語句break語句用在循環體內,迫使所在循環立即終止,即跳出所在循環體,繼續執行循環結構后面的語句。4.3循環控制語句例
求兩個整數a與b的最大公約數。分析:找出a與b中較小的一個,則最大公約數必在1與較小整數的范圍內。使用for語句,循環變量i從較小整數變化到1。一旦循環控制變量i同時整除a與b,則i就是最大公約數,然后使用break語句強制退出循環。4.3.2continue語句當在循環結構中執行continue語句時,立即結束本次循環,重新開始下一輪循環。例
求1~100之間的全部奇數之和。程序如下:x=y=0whileTrue:x+=1ifnot(x%2):continue#x為偶數直接進行下一次循環elifx>100:break #x>100時退出循環else:y+=x #實現累加print("y=",y)4.3.3pass語句pass語句是一個空語句,它不做任何操作,代表一個空操作。看下面的循環語句。forxinrange(10):pass該語句的確會循環10次,但是除了循環本身之外,它什么也沒做。4.4循環的嵌套如果一個循環結構的循環體又包括一個循環結構,就稱為循環的嵌套,或稱為多重循環結構。例
輸入n,求表達式的值。分析:這是求n項之和的問題。先求累加項a,再用語句“s=s+a”實現累加,共有n項,所以共循環n次。求累加項a時,分母又是求和問題,也可以用一個循環來實現。因此整個程序構成一個二重循環結構。例4輸出[100,1000]以內的全部素數。分析:可分為以下兩步。(1)判斷一個數是否為素數。(2)將判斷一個數是否為素數的程序段,對指定范圍內的每一個數都執行一遍,即可求出某個范圍內的全部素數。這種方法稱為窮舉法,也叫枚舉法4.5循環結構程序舉例例4已知y,求:(1)y<3時的最大n值。(2)與(1)的n值對應的y值。分析:這是一個累加求和問題,循環條件是累加和y≥3,用N-S圖表示算法如圖所示。當退出循環時,y的值已超過3,因此要減去最后一項,n的值相應也要減去1。又由于最后一項累加到y后,n又增加了1,故n還要減去1,即累加的項數是n-2。求y值的算法思考:(1)求y≥3時的最小n,如何修改程序?(2)求y的值,直到累加項小于10-6為止,如何修改程序?(3)n取100,求y的值,如何修改程序?例
用牛頓迭代法求方程f(x)=2x3-4x2+3x-7=0在x=2.5附近的實根,直到滿足|xn-xn-1|≤10-6為止。分析:迭代法的關鍵是確定迭代公式、迭代的初始值和精度要求。牛頓切線法是一種高效的迭代法,它的實質是以切線與x軸的交點作為曲線與x軸交點的近似值以逐步逼近解,如圖所示。牛頓迭代法牛頓迭代公式為:例4-13
求f(x)在[a,b]上的定積分分析:為了求得圖形面積,先將區間[a,b]分成n等分,每個區間的寬度為h=(b-a)/n,對應地將圖形分成n等分,每個小部分近似一個小曲邊梯形。近似求出每個小曲邊梯形面積,然后將n個小曲邊梯形的面積相加,就得到總面積,即定積分的近似值。n越大,近似程度越高。這就是函數的數值積分方法。近似求每個小曲邊梯形的面積,常用的方法有:(1)用小矩形代替小曲邊梯形,求出各個小矩形面積,然后累加。此種方法稱為矩形法。(2)用小梯形代替小曲邊梯形,此種方法稱為梯形法。(3)用拋物線代替該區間的f(x),然后求出拋物線與x=a+(i-1)h,x=a+ih,y=0圍成的小曲邊梯形面積,此種方法稱為辛普生法。以梯形法為例,求解方法如圖所示。梯形法求定積分第一個小梯形的面積為:第二個小梯形的面積為:……第n個小梯形的面積為:例
驗證哥德巴赫猜想:任何大于2的偶數,都可表示為兩個素數之和。分析:哥德巴赫猜想是一個古老而著名的數學難題,迄今未得出最后的理論證明。這里只是對有限范圍內的數,用計算機加以驗證,不算嚴格的證明。讀入偶數n,將它分成p和q,使n=p+q。p從2開始(每次加1),q=n-p。若p、q均為素數,則輸出結果,否則將p+1再試。例
將1元錢換成1分、2分、5分的硬幣有多少種方法。分析:設x為1分硬幣數,y為2分硬幣數,z為5分硬幣數,則有如下方程:x+2y+5z=100可以看出,這是一個不定方程,沒有唯一的解。這類問題無法使用解析法求解,只能將所有可能的x,y,z值一個一個地去試,看是否滿足上面的方程,如滿足則求得一組解。和前面介紹過的求素數問題一樣,程序也是采用窮舉法。第5章
字符串與正則表達式字符串編碼字符串的各種操作正則表達式的應用1.Unicode碼Unicode編碼標準為表達全世界所有語言的任意字符而設計,它使用4字節的數字編碼來表達每個字母、符號或文字。每個數字編碼代表唯一的至少在某種語言中使用的符號,被幾種語言共用的字符通常使用相同的數字來編碼,每個字符對應一個數字編碼,每個數字編碼對應一個字符,即不存在二義性。5.1字符串編碼2.UTF-8碼UTF-8是一種為Unicode字符設計的變長編碼系統,即不同的字符可使用不同數量的字節編碼。對于ASCII字符,UTF-8僅使用1個字節來編碼。UTF-8支持中英文編碼,英文系統也可以顯示中文。Python支持UTF-8編碼,中文字符、希臘字母均可以作為標識符使用。例如:>>>π=3.14159>>>國家='中國'3.Unicode碼與UTF-8碼的轉換在Python中,可以通過字符串的encode()方法從Unicode編碼為指定編碼方式。decode()方法從指定編碼方式解碼為Unicode方式。例如:>>>s='漢字ABC'>>>k=s.encode('utf-8')>>>kb'\xe6\xb1\x89\xe5\xad\x97ABC'>>>k.decode('utf-8')'漢字ABC'5.2.1字符串的索引為了實現索引,需要對字符串中的字符進行編號,最左邊字符編號為0,最右邊字符的編號比字符串的長度小1。Python還支持在字符串中使用負數從右向左進行編號,最右邊的字符(即倒數第1個字符)的編號為-1。字符串變量名后接用中括號括起來的編號即可實現字符串的索引。5.2字符串的索引與分片例如:>>>s="Hello"字符串s中各個字符的索引編號如圖所示。字符串中字符的索引編號例5-1將一個字符串中的字符按逆序打印出來。分析:先輸出字符串的最后一個字符,且不換行,然后輸出倒數第2個字符,同樣不換行,一直到第1個字符。利用for循環控制字符索引編號,循環賦值目標變量從0變化到字符串的長度。取字符串的長度可以利用len()函數。程序如下:s1=input("Pleaseenterastring:")foriinrange(0,len(s1)):print(s1[len(s1)-1-i],end='')5.2.2字符串的分片字符串的分片就是從給定的字符串中分離出部分字符,這時可以使用以下形式的字符串索引編號。i:j:k其中i是索引起始位置,j是索引結束位置但不包括j位置上的字符,索引編號每次增加的步長為k。例如:>>>s="HelloWorld!">>>print(s[0:5:2])Hlo>>>s='abcdefg'>>>s[5:1:-1]'fedc'>>>s[-len(s):-1]'abcdef'例5-2利用字符串分片方法將一
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 關+于馬克思哲學當代性若干問題研究綜述
- 高溫化學品倉儲委托管理合同示范文本
- 知識產權運營公司股權轉讓與價值提升協議
- 餐飲企業員工勞動合同及社會保障合同
- 城市綜合體項目廠房轉讓及定金協議范本
- 機動車抵押借款合同樣本
- 廠房灰土施工環境保護及修復合同
- 生態農業示范場承包經營合作框架合同
- 拆遷改造項目房屋產權及分配協議
- 高效車庫租賃與智能停車系統升級合同
- 瀝青攪拌站原材料采購管理流程
- 五升六英語試題及答案
- 2024年記者證考試模擬測試題試題及答案
- 2024年一級注冊計量師考試真題和答案分析
- 煉化行業廢棄物處理技術-全面剖析
- 煤礦事故、突發事件信息處理與報告制度
- 萬科金域華府-前期物業服務合同
- 中醫診所管理規章制度
- 儲能科學與工程單選題100道及答案解析
- DB43-T 2375-2022瓶裝液化石油氣計量規范
- 特丁基噻二唑項目可行性研究報告
評論
0/150
提交評論