Python程序設計基礎 課件全套 林蔭 第1-11章 緒論、語法基礎-Python高級運用_第1頁
Python程序設計基礎 課件全套 林蔭 第1-11章 緒論、語法基礎-Python高級運用_第2頁
Python程序設計基礎 課件全套 林蔭 第1-11章 緒論、語法基礎-Python高級運用_第3頁
Python程序設計基礎 課件全套 林蔭 第1-11章 緒論、語法基礎-Python高級運用_第4頁
Python程序設計基礎 課件全套 林蔭 第1-11章 緒論、語法基礎-Python高級運用_第5頁
已閱讀5頁,還剩678頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第1章

緒論python程序設計基礎教程1.1計算機編程基礎

1.1.1計算機編程過程第一階段:需求分析RequirementsCapture。第二階段:系統(tǒng)分析與設計SystemAnalysisandDesign。第三階段:系統(tǒng)實現(xiàn)Implementation。第四階段:軟件測試Testing。第五階段:軟件維護Maintenance。1.1計算機編程基礎1.1.2計算機程序設計語言從發(fā)展歷程來看,程序設計語言可以分為三代:第一代編程語言是機器語言(machinelanguage),由0和1二進制序列構成。第二代編程語言是匯編語言(assemblylanguage),是機器指令的符號化,因此也被稱為助記符語言,與機器指令存在著直接的對應關系。高級語言(high-levelprogramminglanguage)統(tǒng)稱為第三代語言,20世紀60年代出現(xiàn),面向用戶、基本上獨立于計算機種類和結構。1.1計算機編程基礎1.1.3高級語言的執(zhí)行機制使用高級語言編寫的程序需要翻譯成機器指令后才可使計算機執(zhí)行。通常的翻譯方法是編譯和解釋。高級語言根據(jù)執(zhí)行機制不同可分成兩類:靜態(tài)語言和腳本語言。采用編譯執(zhí)行的編程語言是靜態(tài)語言,如C語言、Java語言等;采用解釋執(zhí)行的編程語言是腳本語言,如BASIC、JavaScript、PHP、ASP和Python等語言。1.1計算機編程基礎1.1.3高級語言的執(zhí)行機制編譯是一次性將完整的源程序轉換成目標程序的過程。源程序是高級語言代碼,目標程序是機器語言代碼,執(zhí)行編譯的計算機程序稱為編譯器。1.1計算機編程基礎1.1.3高級語言的執(zhí)行機制解釋指將源代碼逐條轉換成目標代碼同時逐條運行目標代碼的過程。執(zhí)行解釋的計算機程序稱為解釋器。1.1計算機編程基礎1.1.3高級語言的執(zhí)行機制編譯是一次性地翻譯所有源程序,所以目標代碼執(zhí)行速度更快。目標代碼不需要編譯器就可以運行,在同類型操作系統(tǒng)上使用靈活。解釋在程序運行時每次都需要逐條解釋源代碼然后運行,所以效率比編譯形式低。但程序糾錯、修改和維護十分方便。只要存在解釋器,源代碼可以在任何操作系統(tǒng)上運行,可移植性好。1.1計算機編程基礎1.1.3高級語言的執(zhí)行機制Python語言是一種被廣泛使用的高級通用腳本編程語言,采用解釋方式執(zhí)行,但它的解釋器也保留了編譯器的部分功能,隨著程序運行,解釋器也會生成一個完整的目標代碼。這種將解釋器和編譯器結合的新解釋器是現(xiàn)代腳本語言為了提升計算性能的一種有益演進。1.2Python語言概述1.2.1Python語言的誕生和發(fā)展Python語言1989年12月由荷蘭數(shù)學和計算機科學研究學會的吉多·范羅蘇姆GuidovanRossum創(chuàng)建。自Python2于2000年10月16日發(fā)布,穩(wěn)定版本是Python2.7。Python3于2008年12月3日發(fā)布。1991年Python的第一個公開發(fā)行版問世,從2004年以后,python的使用率呈線性增長。2000年10月,Python2.0版本發(fā)布,開啟了Python廣泛應用的新時代。2020年1月Python2.x系列停止維護。2008年12月,Python3.0版本發(fā)布。Python2.x是遺產(chǎn),Python3.x是這個語言的現(xiàn)在和未來。2011年1月,Python被TIOBE編程語言排行榜評為2010年度語言。2020年,IEEESpectrum的年度排行榜語言中,Python已經(jīng)連續(xù)4年奪冠。1.2Python語言概述1.2.2Python語言的特點(1)語法簡潔(2)生態(tài)豐富(3)多語言集成(4)可移植性,開源,平臺無關(5)通用靈活(6)強制可讀(7)支持中文(8)模式多樣(9)類庫豐富(10)可嵌入性1.2Python語言概述1.2.3Python語言的應用生態(tài)(1)網(wǎng)站開發(fā)(2)數(shù)據(jù)處理和可視化(3)人工智能(4)自動化運維開發(fā)(5)云計算(6)網(wǎng)絡爬蟲(7)游戲開發(fā)1.3構建Python開發(fā)環(huán)境1.3.1Python開發(fā)環(huán)境簡介IDLEAnaconda:PyCharmVisualStudioCodeIronPython1.3構建Python開發(fā)環(huán)境1.3.2下載Python安裝包第一步:打開官網(wǎng)。在瀏覽器地址欄輸入python官網(wǎng)網(wǎng)址,打開官網(wǎng)第二步:在downloads導航條選擇操作系統(tǒng)第三步:進入Python的windows版頁面,選擇python版本選擇合適的python安裝包版本。(1)32/64位系統(tǒng)區(qū)別(2)設備區(qū)別(3)Stable和Pre-Releases區(qū)別(4)Windows版本的影響1.3構建Python開發(fā)環(huán)境1.3.3Python安裝和驗證(1)選擇已下載的安裝包文件python-3.11.4-amd64.exe,右鍵選擇“以管理員身份運行”;(2)打開安裝界面,勾選:“管理員身份”(已默認),勾選“加載Python.exe到路徑(Addpython.exetoPATH)”,(3)選擇“自定義安裝”??勺远x設置Python安裝位置,比如選擇安裝在D盤根目錄“D:\Python”。(4)在下一個頁面,默認選擇所有項,繼續(xù)Next,選擇“為所有的用戶安裝”。(5)單擊“安裝”,系統(tǒng)開始初始化并安裝,直接顯示“Setupwassuccessful”頁面時,安裝成功完成。1.3構建Python開發(fā)環(huán)境1.3.3Python安裝和驗證1.3構建Python開發(fā)環(huán)境1.3.3Python安裝和驗證1.3構建Python開發(fā)環(huán)境1.3.3Python安裝和驗證1.3構建Python開發(fā)環(huán)境1.3.3Python安裝和驗證開始菜單會增加Python3.11項目,其下有四個子項目:1.3構建Python開發(fā)環(huán)境1.3.4Python編程和運行Python成功安裝就搭建好了Python的開發(fā)環(huán)境。之后,可以編寫Python程序,運行,得到結果。Python有兩種編程和運行方式:交互命令式和文件式。(1)交互命令式Python解釋器也簡稱為交互式。(2)腳本文件式PythonIDLEIDLE是一個Python的集成開發(fā)環(huán)境,提供圖形開發(fā)用戶界面,以腳本文件形式編寫Python程序,可重用代碼,重復運行,提高開發(fā)效率。1.3構建Python開發(fā)環(huán)境1.3.4Python編程和運行例1-1:編寫程序:選擇菜單“Run”下的“RunModule”或者直接按F5運行程序:首次運行前要求保存文件??勺孕性O置路徑,然后運行。關閉該文件后,可再次打開文件、編輯和運行。1.3構建Python開發(fā)環(huán)境1.3.4Python編程和運行表1-1Python編程快捷方式快捷鍵功能說明使用環(huán)境F1打開幫助文檔PythonIDLE文件/shell交互式窗口Alt+P瀏覽歷史命令(上一條)Pythonshell交互式窗口Alt+N瀏覽歷史命令(下一條)Pythonshell交互式窗口Alt+/自動補全前面出現(xiàn)過的單詞PythonIDLE文件/shell交互式窗口Alt+3注釋代碼塊

Alt+4取消代碼塊注釋

Ctrl+Z撤消一步操作PythonIDLE文件/shell交互式窗口Ctrl+Shift+Z恢復上一次的撤消操作PythonIDLE文件/shell交互式窗口Ctrl+S保存文件PythonIDLE文件/shell交互式窗口Ctrl+]縮進代碼塊

Ctrl+[取消代碼塊縮進1.4Python程序及編寫規(guī)范1.4.1IPO程序編寫方法每個程序都有統(tǒng)一的運算模式:輸入(Input)數(shù)據(jù)、處理(Process)數(shù)據(jù)和輸出(Output)數(shù)據(jù),取三個詞匯的首字母,簡稱此法為IPO方法。輸入(Input)數(shù)據(jù)是一個程序的開始。程序要處理的數(shù)據(jù)有多種來源,包括多種輸入方式,如:文件輸入、網(wǎng)絡輸入、控制臺輸入、交互界面輸出、隨機數(shù)據(jù)輸入、內(nèi)部參數(shù)輸入等。處理(Process)數(shù)據(jù)指程序對輸入的數(shù)據(jù)進行各種計算和變化產(chǎn)生輸出結果的過程。輸出(Output)是程序展示處理成果的方式。程序有多種輸出方式,如:控制臺輸出、圖形輸出、文件輸出、網(wǎng)絡輸出、操作系統(tǒng)內(nèi)部變量輸出等。1.4Python程序及編寫規(guī)范1.4.2一個完整的Python程序例1-2:一個完整的python程序。'''@1-2.py@作者:小明@版本:1.0'''#詩歌欣賞name=input('你的名字是?')print('你好,{}同學!你想看誰的詩歌?1-李白,2-王維'.format(name))#輸入1或2wr=eval(input(''))ifwr==1:poem="\t春夜宴\n夫天地者,萬物之逆旅也;\n光陰者,百代之過客也。"else:poem="\t畫\n遠看山有色,近聽水無聲。\n春去花還在,人來鳥不驚。"print(poem)1.4Python程序及編寫規(guī)范1.4.2一個完整的Python程序例1-2:一個完整的python程序。按Run|RunModule或F5運行,結果為:第一次的運行結果:第二次的運行結果:1.4Python程序及編寫規(guī)范1.4.3Python的注釋規(guī)則注釋是在代碼中的說明性文字,用于解釋程序或語句的功能,目的是幫助程序員或維護人員更方便地理解程序,Python解釋器會略過這些內(nèi)容,所以注釋里的內(nèi)容不用考慮是否符合python語法。python程序中通常包括單行注釋和多行注釋兩種。(1)單行注釋單行注釋,簡稱為行注釋,符號是#。從符號#開始直到換行為止,其后面的內(nèi)容都是注釋內(nèi)容。(2)多行注釋多行注釋,也稱為段注釋,指有連續(xù)的多行文字都是注釋內(nèi)容。符號是一對三引號,三個單引號('''注釋內(nèi)容''')或雙引號("""注釋內(nèi)容""")。1.4Python程序及編寫規(guī)范1.4.5Python的縮進規(guī)則Python語言使用縮進和冒號來區(qū)分代碼之間的層次??s進可以使用空格或者Tab鍵實現(xiàn)。python對代碼的縮進要求非常嚴格,同一個級別的程序段(代碼塊)的縮進量必須相同。通書情況下建議采用Tab鍵進行縮進,便于對齊。起始位不對齊的語句會被理解成縮進程度不同,會被理解成不同的語法層次,容易出錯。1.4Python程序及編寫規(guī)范1.4.6Python程序編寫規(guī)則(1)每個import語句只導入一個模執(zhí),盡量避免一次導入多個模塊。(2)Python通常每一行寫一條語句,多條語句放一行時,語句之間用分號;分隔,但規(guī)范的寫法寫一行寫一條語句。(3)一條Python語句建議不要超過80字符。如果過長,建議使用圓括號()將多行連接起來,不推薦使用”\”。這里的”\”是連接符,指下一行與本行是同一句。(4)使用必要的空行和空格來增加代碼的可讀性。(5)使用異常處理結構可提高程序容錯性,但不能完全依賴異常處理結構,需要適當?shù)娘@式判斷。1.4Python程序及編寫規(guī)范1.4.7命名規(guī)范命名規(guī)范在編寫代碼中起到很重要的作用,規(guī)范的命名可以更加直觀地了解代碼所代表的含義。Python中常用的一些命名規(guī)范:(1)函數(shù)名、模塊名、變量名盡量短小,并且使用全部小寫字母,可以使用下劃線分隔多個單詞,如get_name。(2)常數(shù)命名時采用全部大寫字母,可以使用下畫線,如MAX_LEN。例1-3.py已知長方形的長和寬,求長方形的面積。length=5width=4print('area=',length*width)運行結果:area=20本章小結了解了計算機的編程過程和計算機編程語言的發(fā)展歷程,介紹了Python的誕生和發(fā)展及使用生態(tài),詳細學習了Python的安裝和設置,最后用一個完成示例介紹了Python程序的編寫過程和編程規(guī)范。學習完本章,讀者可熟悉計算機編程的步驟,了解Python語言在計算機編程中的地位,并能夠依據(jù)規(guī)范實現(xiàn)簡單Python程序的編寫和運行。第2章

Python語法基礎python程序設計基礎教程2.1python對象

2.1.1Python中的對象常見的Python對象類型及示例對象類型示例數(shù)字類型

整型123,-456浮點型3.14,-0.123e2復數(shù)型3+1j,2-8J布爾型True(1),F(xiàn)alse(0)字符串(str)'cczu',"Python"列表(list)[10,20,30,40,50]元組(tuple)(10,20,30,40,50)對象類型示例集合(set){10,20,30,40,50}字典(dict){'name':'小明','age':19}空類型None文件f=open('file1.txt','r')函數(shù)使用def定義模塊使用前用import導入類使用class定義2.1python對象

2.1.1Python中的對象Python3中有六個標準的數(shù)據(jù)類型:Number(數(shù)字):包括整型、實型、復數(shù)、布爾類型,如x=1.2,y=3-2jString(字符串):引號標記的信息。單引號、雙引號、三單引號都可以。List(列表):方括號[]標記的信息。各信息類型可以不同。Tuple(元組):圓括號()標記的信息。各信息類型可以不同。Set(集合):花括號{}標記的信息。各信息類型可以不同,沒有重復值。Dictionary(字典):花括號{}標記的信息對,信息對之間冒號:分隔。說明:Number(數(shù)字)、String(字符串)、Tuple(元組)三種類型數(shù)據(jù)值不可變。List(列表)、Dictionary(字典)、Set(集合)三種類型數(shù)據(jù)值可變。String(字符串)、List(列表)、Tuple(元組)、Dictionary(字典)、Set(集合)因為包含多個成員也稱為容器類型。本章學習數(shù)字數(shù)據(jù)類型。第3章學習容器類型:字符串、元組、列表、字典、集合。2.2數(shù)字數(shù)據(jù)類型

Python的數(shù)字類型也稱為數(shù)值數(shù)據(jù)類型。Python的數(shù)字類型包括:整型、實型、復數(shù)和布爾類型。整型,類型名是int。浮點型,即數(shù)學中的實型,類型名是float。復數(shù)型,類型名是complex。布爾型,也被稱為邏輯型,類型名是bool。也有說法將布爾型單列出來,數(shù)字類型僅包括整型、浮點型和復數(shù)型。本教材按照將布爾類型歸到數(shù)字類型來講解。2.2數(shù)字數(shù)據(jù)類型2.2.1整數(shù)類型數(shù)制形式前導符號合法的整型常數(shù)不合法的整型常數(shù)十進制無默認情況100,-234100.,-23.4二進制0b或0B0、1構成0b1010,0B10111211,11.021八進制0o或0O0-7構成0o123,0O7250O128,231十六進制0x或0X0-9,a(A)-f(F)構成0x12ab,0X12BD1213,0x5EGH2.2數(shù)字數(shù)據(jù)類型2.2.2浮點數(shù)類型浮點數(shù)類型形式合法浮點型常數(shù)舉例非法浮點型常數(shù)舉例浮點數(shù)類型形式小數(shù)形式123.1,-3.、-0.54567,-80小數(shù)形式科學計數(shù)法形式3e-6、-2.56E53.6e,7.2E-0.5科學計數(shù)法形式2.2數(shù)字數(shù)據(jù)類型2.2.3復數(shù)類型復數(shù)類型:用于表示數(shù)學中的復數(shù)。含虛數(shù)單位j的數(shù)是復數(shù),j=。復數(shù)表示為:實部+虛部j(J)實數(shù)部分和虛數(shù)部分默認都是浮點型,就像是兩個二元組(a,b)注意:1j中的1不能省略,否則會被系統(tǒng)認為是變量名。示例:復數(shù)的表示。合法的復數(shù):1.2-5.2J,3.7+2e-8j,-1J,.123J,8e-11J非法的復數(shù):1+i,2-j,(-2+6),3e-0.5j2.2數(shù)字數(shù)據(jù)類型2.2.3復數(shù)類型示例:復數(shù)簡單應用。>>>j=3>>>a=1-j#j被看做是變量名>>>a-2>>>type(a)<class'int'>>>>a=1-1j#j被看做是復數(shù)虛部的表示>>>a(1-1j)>>>type(a)<class'complex'>變量名。2.2數(shù)字數(shù)據(jù)類型2.2.4邏輯類型邏輯類型bool:也稱為布爾類型,表達是非、對錯、真假。只有兩個值:True和FalsePython中的邏輯型值可以作為整數(shù)來運算,True為1,F(xiàn)alse為0。布爾值邏輯值數(shù)值解析True真1非空值False假0空字符串('''')、None、空的List[]空的Tuple()、空的Dict{}2.3運算符2.3.1算術運算符運算符描述實例結果+

1.兩數(shù)相加2+352.兩個序列對象合并(擴展)'123'+'abc''123abc'-1.取負-(-1)12.兩數(shù)相減3-21*1.兩數(shù)相乘2*362.字符串被重復若干次(擴展)'do'*3'dododo'/兩數(shù)相除(浮點除)3/21.5//整數(shù)整除,商向下取整7//23

浮點數(shù)整除,商向下取整(擴展)-4.5//2-3.0%整數(shù)取模,即求余數(shù)3%21

浮點數(shù)取模(擴展)5.5%21.5**冪運算2**3,即2的3次冪82.3運算符2.3.1算術運算符(1)算術運算符/,///表示實型除??捎糜谡麛?shù)和浮點數(shù);//表示整型除,獲取不大于商的整數(shù)(向下取整)。可以對整數(shù)進行運算,也可以對浮點數(shù)進行運算,此時商是整數(shù),余數(shù)是浮點數(shù),這是使用上的一個難點。示例:實型除/。>>>12/101.2>>>-12/10-1.2示例:整數(shù)整除,商向下取整。>>>12//101>>>-12//10-22.3運算符2.3.1算術運算符(2)算術運算符%'%'取模運算,得到兩個數(shù)的余數(shù),也稱為求余運算。運算規(guī)則:余數(shù)=被除數(shù)-除數(shù)*商Python語言非常特別,除了傳統(tǒng)的整數(shù)求余,浮點數(shù)也可以求余,但商總是為整數(shù)。那么整數(shù)相除時,余數(shù)為整;浮點數(shù)相除時,余數(shù)為小數(shù)。示例:浮點數(shù)求余。>>>8.0%32.0>>>4.5%20.5>>>5.5%21.5示例:負數(shù)求余。>>>-134%106分析:-134%10=-134-10*(-134//10)=-134-10*(-14)=62.2數(shù)字數(shù)據(jù)類型2.3.1算術運算符(3)算術運算符·優(yōu)先級算符運算符的運算規(guī)則:1)先算優(yōu)先級高的,再算優(yōu)先級低的。2)同樣的優(yōu)先級,從左到右。3)可以加圓括號()來提升優(yōu)先級。運算符描述由高到低

**指數(shù)

(最高優(yōu)先級)-一元負號*/%//乘(重復串),除,求余和向下取整除+-二元加法(串連接),減法2.3運算符2.3.2賦值運算符賦值運算符有兩種:簡單的賦值運算符和復合的賦值運算符。(1)簡單的賦值運算符=a=3讀作:把3賦給a賦值號=的左邊只能是變量名,右邊是表達式。(2)復合的賦值運算符:由算術運算符和賦值號組合而成。設a=7,b=2,c=4,那么有:運算符描述實例語義結果=賦值運算符a=b+ca=b+ca=6+=加法賦值運算符a+=ba=a+ba=9-=減法賦值運算符a-=ba=a-ba=5*=乘法賦值運算符a*=ba=a*ba=14/=除法賦值運算符a/=b-ca=a/(b-c)a=-3.5%=取模賦值運算符a%=ba=a%ba=1**=冪賦值運算符a**=ba=a**ba=49//=取整除賦值運算符a//=ba=a//ba=32.3運算符2.3.3關系運算符關系運算符,也稱為比較運算符或條件運算符,包括大于(>)、大于等于(>=)、小于(<)、小于等于(<=)、等于(==)和不等于(!=)六個,和左右兩邊的操作數(shù)一起構成判斷的條件。比較(關系)運算符屬同一優(yōu)先級,運算結果是邏輯值,條件滿足時為真True,不滿足為假False。設a=7,b=2,那么有:運算符描述實例結果==判等a==b,判斷a是否等于bFalse!=不等于a!=b,判斷a是否不等于bTrue>大于a>b,判斷a是否大于bTrue<小于a<b,判斷a是否小于bFalse>=大于等于a>=b,判斷a是否大于等于bTrue<=小于等于a<=b,判斷a是否小于等于bFalse==判等a==b,判斷a是否等于bFalse!=不等于a!=b,判斷a是否不等于bTrue2.3運算符2.3.3關系運算符比較規(guī)則:(1)數(shù)值按大小比較。(2)字符串按字符的ASCII碼進行比較。(3)列表、元組等序列對象按順序比較。(4)多比較運算符時,依次比較,均為真,則結果為真。示例:數(shù)值按大小比較>>>3>5False示例:大小比較>>>a!=b<c>5False分析:做a!=c,做b<c,做c>52.3運算符2.3.4邏輯運算符邏輯運算符包括非not、與and、或or三個。優(yōu)先級由高到低依次是:非not、與and、或or運算符描述實例not非nota,如果a為False,返回True;否則返回Falseand與aandb,a、b均為真時結果為真如果a為False,不計算b的值,直接返回a;否則返回bor或aorb,a、b有一個為真時結果就為真如果a為True,不計算b的值,直接返回a;否則返回b2.3運算符(1)邏輯運算示例:設a=1,b=2,c=3>>>a<c>bTrue分析:相當于a<cand(c>b)>>>a==c>bFalse分析:相當于(a==c)and(c>b)2.3運算符(2)難點:“and”和“or”運算符,在python中的結果不一定為False或True。aandb:a、b均為真時結果為真,如果a為False,不計算b的值,直接返回a;否則返回baorb:a、b有一個為真時結果就為真,如果a為True,不計算b的值,直接返回a;否則返回b示例:邏輯表達式中的難點分析。>>>a=10>>>b=20>>>Falseandb#因為左側為False,結果直接為FalseFalse>>>Falseorb#因為左側為False,結果直接為右側的對象202.3運算符(3)邏輯表達式的構造a可以被3和5整除。表示為:a%3==0anda%5==0a是課程成績,要求在0到100之間。表示為:0<=a<=100等價于:a>=0anda<=100

ch是小寫字母。表示為:'a'<=ch<='z'ch是字母。表示為:'a'<=ch<='z'or'A'<=ch<='Z'2.3運算符2.3.5身份運算符isPython中,is是一個身份運算符,用于比較兩個對象的身份是否相同,即兩個對象是否引用同一個內(nèi)存地址。Python中的每個對象都有一個唯一的身份標識,可以通過id()函數(shù)來獲取。當使用is運算符進行比較時,它會檢查兩個對象的身份標識是否相同,如果相同則返回True,否則返回False。示例:身份運算符is。>>>a=1;b=2>>>a=c>>>aisb#False,a和b是不同的對象False>>>aisc#True,a和c是同一個對象的不同引用True2.3運算符2.3.6位運算符計算機內(nèi)的數(shù)是以二進制補碼表示的,位運算符是針對每一個二進制位進行的運算。位運算符:按數(shù)值對應的二進制來進行的計算。運算符描述實例結果分析&按位與a&ba與b相應位都為1,則該位的結果為1,否則為0|按位或a|ba與b相應位有一個為1,則該位的結果為1,否則為0^按位異或a^ba與b相應位相異,則該位的結果為1,否則為0~按位取反~aa的相應位1變?yōu)?,0變?yōu)?<<左移a<<2a的各二進位整體左移2位,高位丟棄,低位補0。>>右移a>>2a的各二進位整體右移2位,低位丟棄,正數(shù)高位補0,負數(shù)高位補1。2.3運算符2.3.7運算符的優(yōu)先級表達式指將不同類型的數(shù)據(jù)(常量、變量、函數(shù))用運算符按照一定的規(guī)則連接起來的式子。表達式由常量、變量、函數(shù)和運算符等組成。如x=a+b。在表達式中存在多個運算符時,將按照預先確定的順序計算各個組成部分,這個順序就是運算符的優(yōu)先級。Python運算符優(yōu)先級順序從高到低依次為算術運算符>位運算符>比較運算符>布爾運算符>賦值運算符。同一級別的運算符從左到右進行計算,且要考慮結合方向決定求值順序。算術運算符中,冪運算優(yōu)先級最高,乘除法、取余、這幾個運算符的優(yōu)先級是一致的法,高于加減法。比較運算符之間優(yōu)先級相同,多個同時出現(xiàn)時按照從左往右的順序執(zhí)行計算。邏輯運算符優(yōu)先級順序從高到低分別為not、and、or。賦值運算符優(yōu)先級最低,永遠最后執(zhí)行。圓括號也看做運算符,可以改變運算次序,有最高的優(yōu)先級。2.3運算符2.3.7運算符的優(yōu)先級優(yōu)先級運算符描述由高到低

()圓括號(最高優(yōu)先級)**冪運算~,+,-按位取反,正號,取負*,/,%,//乘(串重復),除,求余數(shù),整除+,-加法(串連接),減法<<,>>左移、右移位運算符&按位與^按位異或|按位或>,>=,<,<=,==,!=is,isnot,in,notin比較運算符身份運算符,成員運算符

not邏輯非

and邏輯與

or邏輯或

=%=/=//=-=+=*=**=賦值運算符2.3運算符2.3.7運算符的優(yōu)先級示例:運算符優(yōu)先級。>>>a=1;b=2;d=3>>>d+=a<b>>>d#先關系運算再賦值運算4>>>d+=aandb#先邏輯運算再賦值運算>>>d62.4輸入輸出語句一個完整的程序總會用到輸入和輸出操作。通過鍵盤輸入數(shù)據(jù),在顯示屏上顯示運行結果,稱為標準輸入/輸出。本節(jié)學習Python的標準輸入函數(shù)input()和標準輸出函數(shù)print()。print()函數(shù)構成輸出語句,可輸出執(zhí)行的結果,可以輸出任意類型的對象。如果輸出時需要符合某種格式化要求,可以搭配格式化輸出。input()函數(shù)用來獲取用戶輸入的數(shù)據(jù),將輸入的內(nèi)容以字符形式接收。如果要得到其他類型的數(shù)據(jù),可輸入后將數(shù)據(jù)進行類型轉換。2.4輸入輸出語句2.4.1輸出函數(shù)print()python提供內(nèi)置的print()函數(shù)用于在顯示屏上輸出各種對象。print()函數(shù)的語法格式如下:print(object,...,sep='',end='\n',file=sys.stdout,flush=False)示例:print()函數(shù)輸出>>>print()#輸出一個空行>>>print(1)1>>>a=10>>>print("a=",a)#輸出多個對象a=102.4輸入輸出語句2.4.1輸出函數(shù)print()>>>print(12,34,56,78)12345678#默認多個數(shù)以空格分隔>>>print(12,34,56,78,sep='@')#指定"@"作為輸出分隔符12@34@56@78示例:print()函數(shù)輸出結束符>>>print("score");print(95)#省略end默認換行輸出score95#以“=”結尾,輸出在一行>>>print(“score”,end=“=”);print(95)score=952.4輸入輸出語句2.4.2格式化輸出print()函數(shù)中允許對輸出結果設置格式。通常支持有兩種格式化方法:“%字符”格式化輸出和format方法格式化輸出。(1)“%字符”格式化輸出含%字符的print()函數(shù)的輸出語法格式如下:print("%[-][+][0][m][.n]格式化文本"%(表達式1,表達式2,…表達式n))說明:1)格式化文本可以用“%字符”代表輸出格式。2)多個變量時,變量須用括號括起來,之間用逗號隔開。3)輸出可固定打印字符的個數(shù)和浮點數(shù)的位數(shù),讓輸出的數(shù)據(jù)排列整齊。格式化符號功能說明%格式標志,表示格式開始%d按十進制整數(shù)輸出%o按八進制整數(shù)輸出%x按十六進制整數(shù)輸出%s按字符串輸出%f%F按浮點數(shù)輸出%e浮點數(shù)按指數(shù)形式輸出,基底寫e%E浮點數(shù)按指數(shù)形式輸出,基底寫E2.4輸入輸出語句2.4.2格式化輸出示例:指定格式輸出。print("%6s的2月份工資:%8.2f元"%("Tom",6580))print("%6s的2月份工資:%8.2f元"%("Marry",5658.3))print("%6s的2月份工資:%8.2f元"%("Jone",10012.18))執(zhí)行結果:Tom的2月份工資:6580.00元Marry的2月份工資:5658.30元Jone的2月份工資:10012.18元說明:%6s表示字符串的寬度為6,右對齊。%8.2f表示浮點數(shù)的寬度為8,小數(shù)占2位,小數(shù)點占1位,右對齊。格式化符號功能說明-可選項,指定左對齊輸出+可選項,數(shù)據(jù)加正負號輸出0可選項,指定空位填0輸出m可選項,指定最小寬度輸出.n可選項,指定精度輸出2.4輸入輸出語句2.4.2格式化輸出(2)format方法格式化輸出所謂“方法”是指把要輸出的字符串看做是一個對象,format就是這個對象的一個方法。含format方法的print()函數(shù)語法格式如下:print("{}格式化文本".format(表達式1,表達式2,…表達式n))說明:1)格式用花括號{}表示,{}內(nèi)用format方法里的表達式替換。2)可以包含多個表達式。{0}表示使用第一個自變量,{1}表示使用第二個自變量,以此類推??梢杂胒ormat函數(shù)里面的自變量名稱取代數(shù)字編號。如果{}內(nèi)省略,則按照自變量的順序填入。示例:format方法格式化輸出。>>>print("{}的成立時間是{}年".format("中華人民共和國",1949))>>>print("{0}的成立時間是{1}年".format("中華人民共和國",1949))>>>print("{1}的成立時間是{0}年".format(1949,"中華人民共和國"))>>>print("{name}的成立時間是{year}年".format(name="中華人民共和國",year=1949))執(zhí)行結果均為:中華人民共和國的成立時間是1949年2.4輸入輸出語句2.4.2格式化輸出3)在數(shù)字編號后面加上冒號可以指定參數(shù)格式。示例:format方法格式化的輔助輸出形式。>>>print("{0:.2f}".format(3.1415926))#取2位小數(shù)3.14>>>print("{0:.2f}{0:.4f}{0:.6f}".format(3.1415926))3.143.14163.141593>>>print("{0:12.2f}{0:12.4f}{0:12.6f}".format(3.1415926))3.143.14163.141593格式功能說明數(shù)字m.nm表示總寬度(左對齊),n表示小數(shù)位數(shù)f設置浮點數(shù)格式+輸出正負號b、o、x設置輸出的進制形式#顯示進制標記e、E設置指數(shù)形式%將參數(shù)的輸出形式設置為百分數(shù)2.4輸入輸出語句2.4.2格式化輸出4)冒號后可搭配符號進行寬度和對齊設置示例:format方法格式化的冒號對齊輸出。>>>"{:>10}".format("hello")#按寬度10右對齊'hello'>>>"{:<10}".format("hello")#按寬度10左對齊'hello'>>>"{:^10}".format("hello")#按寬度10居中對齊'hello'格式功能說明<按寬度左對齊^按寬度居中對齊>按寬度右對齊=數(shù)值的符號與數(shù)值兩端對齊未指定填充字符以空格填充指定填充字符以指定字符作為填充2.4輸入輸出語句2.4.3輸入函數(shù)input()及擴展python提供內(nèi)置input()函數(shù)用于從鍵盤獲取用戶的輸入數(shù)據(jù)。函數(shù)中可指定提示文字,輸入數(shù)據(jù)以字符串類型存儲在指定的變量中。input()函數(shù)的基本語法格式:變量=input("[提示性文字]")說明:(1)提示性文字和變量均可以省略。(2)輸入數(shù)據(jù)以字符串類型返回。(3)擴展1:eval()函數(shù)可計算字符串中表達式的值并存入變量。(4)擴展2:加eval()函數(shù)后,可以一次分別給多個變量賦值。(5)擴展3:可使用內(nèi)置的int()或float()函數(shù)將輸入的字符串轉換為數(shù)值類型,一次僅限一個變量。2.4輸入輸出語句2.4.3輸入函數(shù)input()及擴展示例:input()函數(shù)應用。>>>input()23#用戶輸入'23'#顯示結果注意:是字符示例:帶提示符的input()函數(shù)應用。>>>a=input("a=")a=23#a=是系統(tǒng)顯示的提示符,23是用戶鍵盤輸入>>>a#a的值'23'>>>type(a)#a的類型是字符串<class'str'>>>>a=eval(input("a="))#eval()函數(shù)將字符串變成整型數(shù)a=23>>>a#a的值23>>>type(a)#a的類型是整型<class'int'>2.4輸入輸出語句2.4.3輸入函數(shù)input()及擴展示例:eval()函數(shù)的運算應用。>>>x=input("請輸入數(shù)據(jù):")請輸入數(shù)據(jù):123+567>>>x'123+567'>>>type(x)<class'str'>>>>x=eval(input("請輸入數(shù)據(jù):"))請輸入數(shù)據(jù):123+456>>>x579>>>type(x)<class'int'>示例:eval()函數(shù)可一次分別給多個變量賦值。>>>x,y,z=eval(input("輸入x,y,z:"))輸入x,y,z:1.5,6.78,9.23>>>x1.5>>>y6.78>>>z9.232.5常用內(nèi)置函數(shù)函數(shù)是組織好的、可重復使用的、用來實現(xiàn)單一、或相關聯(lián)功能的代碼段。函數(shù)能提高應用的模塊性和代碼的重復利用率。Python語言從誕生之初就致力于開源開放,建立了全球最大的編程計算生態(tài),利用函數(shù)庫編程是Python非常大的優(yōu)點。python提供了多種使用函數(shù)的方式:內(nèi)置(built-in)函數(shù)Python標準庫Python第三方庫。Python解釋器提供了數(shù)字、字符串、列表、字典、文件等常見類型的68個內(nèi)置函數(shù),可直接使用。本節(jié)學習其中常用的部分。2.5常用內(nèi)置函數(shù)2.5.1對象操作函數(shù)函數(shù)名意義實例結果eval(x)計算字符串表達式的值并返回eval('1+2')3type(x)返回對象的類型type(10)<class'int'>id(x)返回對象的唯一標識(地址)id(3)1383457584len(x)返回對象包含的元素個數(shù)len([1,3,5])3help(x)調(diào)用系統(tǒng)內(nèi)置的幫助系統(tǒng)help(eval)

2.5常用內(nèi)置函數(shù)2.5.2數(shù)學函數(shù)內(nèi)置的數(shù)學函數(shù)可完成一些常規(guī)的數(shù)學運算。函數(shù)名意義實例結果abs(x)求x的絕對值,或復數(shù)的模abs(-5)5divmod(x,y)x除以y的商和余數(shù)構成的數(shù)對divmod(1,3)(0,1)pow(x,y)獲得x的y次方pow(2,3)8round(number[,ndigits])根據(jù)指定精度獲取數(shù)據(jù)的四舍五入值。number代表浮點數(shù),ndigits代表精度round(3.14159,2)3.14range([start,]stop[,step])生成一個start到stop的數(shù)列,左閉右開。步長step,默認為1list(range(1,5))[1,2,3,4]max(x)x是一個序列,求序列最大值a=(1,3,7,9,5)max(a)9min(x)x是一個序列,求序列最小值a=(1,3,7,9,5)min(a)1sum(x)x是一個序列,求序列和值a=(1,3,7,9,5)sum(a)252.5常用內(nèi)置函數(shù)2.5.3數(shù)據(jù)轉換函數(shù)(1)python提供了非常豐富的數(shù)據(jù)類型之間轉換的方法。函數(shù)名意義實例結果int(x,base)數(shù)2轉換為int型字符串數(shù)x看做base進制,轉成十進制int(12.9)int(int('10',16)1216float(x)將int型或字符型轉換為浮點型float('3')3.0str(x)將int型轉換為字符型str(3)'3'bool(x)將int型轉換為布爾類型bool(0)bool(None)FalseFalsecomplex(real[,imag])轉換為復數(shù)類型complex(3,4)(3+4j)bin(x)轉換為2進制,字符串類型bin(1024)'0b10000000000'oct(x)轉換為8進制,字符串類型oct(1024)'0o2000'hex(x)轉換為16進制,字符串類型hex(1024)'0x400'2.5常用內(nèi)置函數(shù)2.5.3數(shù)據(jù)轉換函數(shù)(2)python提供了非常豐富的數(shù)據(jù)類型之間轉換的方法。函數(shù)名意義實例結果chr(x)轉換編碼數(shù)字為相應字符chr(65)'A'ord(x)轉換字符為相應編碼數(shù)字ord('A')65list(iterable)轉換為listlist((1,2,3))[1,2,3]tuple(iterable)轉換為tupletuple([1,2,3])

(1,2,3)dict(iterable)轉換為dictdict([('a',1),('b',2),('c',3)]){'a':1,'b':2,'c':3}2.6Python標準庫python的安裝包當中包含有一部分可重用的計算資源,用戶可隨時使用import加載使用,稱為python標準庫。Python擁有一個強大的標準庫,提供了關于系統(tǒng)管理、網(wǎng)絡通信、文本處理、數(shù)據(jù)庫接口、圖形系統(tǒng)、XML處理等的功能。受限于python安裝包設定大小,安裝包一般會有270個左右。標準庫在Windows系統(tǒng)的默認安裝目錄在python的lib目錄下。標準庫中的模塊,使用時先做導入:import模塊名本節(jié)學習兩類標準庫:math模塊和random模塊。2.6Python標準庫2.6.1math模塊(1)標準庫中的math模塊提供的是數(shù)學函數(shù)。該模塊中的函數(shù)均不適用于復數(shù)運算。math模塊包括4個數(shù)學常數(shù)和44個函數(shù)。44個函數(shù)分4類:16個數(shù)值運算相關、8個冪對數(shù)運算相關、16個三角函數(shù)相關和4個特殊函數(shù)。數(shù)學常數(shù)說明應用示例結果pi圓周率math.pi3.141592653589793e自然常量math.e2.718281828459045inf,-inf正負無窮大math.inf>5Truenan返回一個浮點數(shù)type(math.nan)<class'float'>2.6Python標準庫2.6.1math模塊(2)數(shù)學常數(shù)說明應用示例結果sqrt(x)返回x的平方根math.sqrt(2)1.4142135623730951exp(x)返回e的x的冪math.exp(3)20.085536923187668fabs(x)返回x的絕對值math.fabs(-3.5)3.5pow(x,y)返回x的y次方math.pow(3,4) 81.0copysign(x,y)返回x的值和y的符號構成的數(shù)math.copysign(-1,2) 1.0factorial(x)返回x的階乘math.factorial(5)120gcd(x,y)返回x,y的最大公約數(shù)math.gcd(35,75)5modf(x)返回x的小數(shù)和整數(shù)部分math.modf(3.45) (0.4500000000000002,3.0)fmod(x,y)返回x/y的余數(shù),符號隨xmath.fmod(134,10)4.02.6Python標準庫2.6.1math模塊(3)數(shù)學常數(shù)說明應用示例結果trunc(x)返回x的整數(shù)部分math.trunc(1.985)1fsum(x1,x2…)對迭代器里的元素求和math.fsum([1,2,3,4,5])15.0ceil(x)返回x的上限整數(shù)math.ceil(3.4)4floor(x)返回x的下限整數(shù)math.floor(-3.5)-4radians(x)將角x從角度轉換成弧度math.radians(90) 1.5707963267948966degrees(x)將角x從弧度轉換成角度math.degrees(math.pi) 180.0sin(x)cos(x)返回x弧度的正弦值math.sin(math.radians(30))math.sin(30*math.pi/180)0.499999999999999940.49999999999999994tan(x)返回x弧度的正切值math.tan(math.radians(30))0.57735026918962572.6Python標準庫2.6.1math模塊(4)數(shù)學常數(shù)說明應用示例結果acos(x)返回x的反余弦弧度值math.degrees(math.acos(0.5))

60.00000000000001atan(x)返回x的反正切弧度值math.degrees(math.atan(1))45.0hypot(x,y)返回原點(0,0)到坐標點(x,y)的距離math.hypot(1,1)

1.4142135623730951log(x)返回以e為底的自然對數(shù)math.log(2.718282)1.0000000631063886log(x,base)返回以y為基數(shù)的x的對數(shù)math.log(2.718282,math.e)math.log(5,10)1.00000006310638860.6989700043360187log10(x)返回以10為基數(shù)的x的對數(shù)math.log10(5) 0.6989700043360189log2(x)返回以2為基數(shù)的x的對數(shù)math.log2(16) 4.02.6Python標準庫2.6.2random模塊Python的random庫用于產(chǎn)生各種分布的偽隨機數(shù)序列函數(shù)說明示例uniform(x,y)隨機產(chǎn)生[x,y]范圍內(nèi)的一個實數(shù)random.uniform(0,1)randint(a,b)隨機產(chǎn)生[a,b]范圍內(nèi)的一個整數(shù),a>=brandom.randint(0,100)random()隨機產(chǎn)生[0,1)范圍內(nèi)的實數(shù)random.random()choice(seq)從序列中隨機取一個元素random.choice([1,3,5,7,9])randrange(start,stop[,step])從指定范圍內(nèi),按增量獲取一個隨機數(shù),增量默認為1random.randrange(0,100,2)表示從0~100取一個偶數(shù)shuffle(lst)將序列的所有元素打亂隨機排序random.shuffle([1,4,9,16])sample(population,k)從序列或集合中返回隨機提取k個不重樣元素的列表random.sample('abcdef',3)表示從absdef中提取任意3個字母2.7綜合示例1.數(shù)學計算問題。例2-1:輸入圓半徑,求圓的周長、面積。輸出圓半徑,圓的周長、面積值,并精確到小數(shù)點后2位有效數(shù)字。算法實現(xiàn):importmathr=eval(input('請輸入圓半徑(厘米):'))c=2*math.pi*rs=math.pi*r*rprint('圓半徑=%.2f,周長=%.2f,面積=%.2f'%(r,c,s))運行結果:請輸入圓半徑(厘米):1圓半徑=1.00,周長=6.28,面積=3.14擴展:求面積的語句也可以寫成:s=math.pi*r**2輸出格式可以寫成:print('圓半徑={0:.2f},周長={1:.2f},面積={2:.2f}'.format(r,c,s))2.7綜合示例2.靈活使用各類函數(shù)實現(xiàn)處理過程。例2-2:生成兩個100以內(nèi)的隨機整數(shù),將兩數(shù)交換。分別輸出交換前后兩數(shù)的值。算法實現(xiàn):importrandoma=random.randint(0,100)b=random.randint(0,100)print('交換前:a=%d,b=%d'%(a,b))a,b=b,aprint('交換后:a=%d,b=%d'%(a,b))運行結果:交換前:a=50,b=93交換后:a=93,b=502.7綜合示例例2-3:給定平面兩點坐標(x1,y1)和(x2,y2),求這兩點之間的距離。算法:importmathx1,y1=eval(input('輸入第一個點的坐標(x1,y1):'))x2,y2=eval(input('輸入第二個點的坐標(x2,y2):'))dist=math.hypot(x2-x1,y2-y1)print('兩點的坐標=(%.2f,%.2f),(%.2f,%.2f)'%(x1,y1,x2,y2))print('兩點間的距離=%.2f'%(dist))運行結果:輸入第一個點的坐標(x1,y1):1,3輸入第二個點的坐標(x2,y2):2,5兩點的坐標=(1.00,3.00),(2.00,5.00)兩點間的距離=2.24擴展:dist=math.hypot(x2-x1,y2-y1)一句也可以用dist=math.sqrt((x2-x1)**2+(y2-y1)**2)來實現(xiàn)。本章小結本章學習了python的基本語法、輸入輸出語句、常用內(nèi)置函數(shù)和兩個標準庫。學習完本章,可掌握python合法標識符的定義,熟悉常量和變量的定義和使用,掌握python輸入和輸出的方法,熟悉和掌握常用內(nèi)置函數(shù)的使用功能方法,熟悉math、random兩個標準函數(shù)庫的使用,能夠編寫順序結構的程序來解決一些簡單的問題。第3章

容器數(shù)據(jù)類型python程序設計基礎教程3.1概述類型標記特點示例序列“”、[]、()數(shù)據(jù)元素之間有先后關系s='Iamok!‘L=['a','b','c','d',3,4]season=('春','夏','秋','冬')映射{Key:value…}元素由key和value成對組成,字典中key不重復dict={'姓名':'張三','年齡':'20'}集合{}元素無序且不重復set={1,3,5}容器:每一個數(shù)據(jù)都包含多個數(shù)據(jù)元素,稱為成員。按照特性分為:序列類型、映射類型和集合類型。容器類型數(shù)據(jù):字符串,列表,元組,字典,集合。3.2序列的操作字符串:由若干字符構成,兩端用英文單引號或雙引號標記;列表:成員可以是各種數(shù)據(jù)類型數(shù)據(jù),兩端用“[]”標記;元組與列表類似,但兩端用“()”標記,并且屬于不可變類型。序列:一組數(shù)據(jù)元素之間有先后關系,通過索引(下標)訪問Python的序列。常見序列類型:字符串、列表和元組。類型標記值示例值類型字符串(str)‘‘或“”'cczu',"Python"不可變類型列表(list)[][10,20,[1,4],50]可變類型元組(tuple)()(10,(2,3,4),50)不可變類型3.2.1、常用的序列操作3.2.2、常用的序列函數(shù)和方法3.2序列的操作3.2.1序列的操作-常用序列操作常用的序列操作:功能操作創(chuàng)建[1,2,3],(1,2,3),"helloworld"序列的索引seq[i]序列的切片seq[startindex:remainindex:stepvalue]是否序列成員elemin/notinseq連接合并seq1+seq2,.join,extend序列的重復seq*n3.2序列的操作(1)序列的操作-創(chuàng)建序列的創(chuàng)建通過對變量直接賦值來創(chuàng)建該序列類型。>>>list1=[1,2,3] ##創(chuàng)建了一個列表類型對象list1>>>str1="helloworld" ##創(chuàng)建了一個字符串類型對象str1>>>tuple1=(10,32,20,16) ##創(chuàng)建了一個元組類型對象tuple13.2序列的操作(2)序列的操作-索引索引:指序列中元素的下標。格式為:seq[i]正向索引i:0,1,2,3……n-1反向索引i:-n,-(n-1),……-3,-2,-13.2序列的操作序列的索引:正向,反向>>>season=('春','夏','秋','冬')>>>season('春','夏','秋','冬')season'春''夏''秋''冬'正向索引0123反向索引-4-3-2-1>>>season[3]‘冬’>>>season[-1]'冬’>>>season[0]'春'>>>season[-4]‘春'3.2序列的操作(2)序列的操作-索引>>>L=[10,11,12,13,14,15,16,17,18]>>>L[0]#L[-9]10>>>L[-1]#L[8]18>>>L[3]]#L[-6]13>>>L[-3]#L[6]163.2序列的操作(3)序列的操作-切片切片:訪問一定范圍內(nèi)的元素格式為:seq[startindex:remainindex:stepvalue]即:seq[起始下標:終止下標:步長],終止下標不包含startindex和remainindex:可選,默認0~-1startindex:開始的索引位置remainindex:結束+1的索引位置操作取到該索引前一個數(shù)為止,不包含該索引值stepvalue(步長):默認是1,即逐個切取步長為正數(shù)時,表示從左向右取如果為負數(shù),表示從右向左取,如-1為倒著取步長不能為03.2序列的操作(3)序列的操作-切片>>>L=['a','b','c','d','e','f']

>>>L[0:3][‘a(chǎn)’,’b’,’c’]>>>L[2:-1:2]['c','e']3.2序列的操作(3)序列的操作-切片>>>L=[10,11,12,13,14,15,16,17,18]>>>L[:]#取所有元素L,L[::]

,L[0:],L[0:len(L)][10,11,12,13,14,15,16,17,18]>>>L[::-1]#等價于L[-len(L)::-1][18,17,16,15,14,13,12,11,10]步長省略時默認是1步長>0時,省略起始下標默認是0,省略終止下標默認到最后一個元素步長<0時,省略起始下標默認是最后一個元素,

省略終止下標默認到0位置元素3.2序列的操作>>>L=['a','b','c','d','e','f']#L是個列表>>>L[0:-1:2]#遍歷所有元素,每隔兩個取一個[‘a(chǎn)’,’c’,’e’]>>>L[::2]#

同L[0:len(L):2]['a','c','e']>>>L[0::2]#

同L[0:len(L):2]['a','c','e']>>>L[:2]#從第0位始,取第0,1位,省略步長['a','b']>>>L[-2:]#倒數(shù)2位到結束['e','f']>>>L[1:3]#取第1,2位['b','c']>>>L[1]#取第1位,不是切片‘b'>>>L[-2]#取倒數(shù)第2位,不是切片'e'(3)序列的操作-切片3.2序列的操作(3)序列的操作-切片-增加元素使用切片為列表增加元素>>>La=[3,5,7]>>>La[len(La):][]>>>a=List[len(La):]=[9]#在列表尾部增加元素>>>La[:0]=[1,2]#在列表頭部插入多個元素>>>La[3:3]=[4]#在列表中間位置插入元素>>>La[1,2,3,4,5,7,9]3.2序列的操作序列的操作-關系操作in/notin關系運算符in/notin:對象是否是序列成員格式為:elemin/notinseqseq是字符串:判斷是否成員;判斷是否子串(4)>>>s="helloworld">>>“x"ins##判斷“h”字符是否是字符串序列s的成員,##結果為False>>>"world"ins##判斷“world”字符串是否是字符串序列s的子串,##結果為True3.2序列的操作(4)序列的操作-in/notin>>>L=[11,13,17,19]>>>12notinL##判斷12是否是列表序列L的成員True>>>[11,13]inL##判斷[11,13]是否是列表L的成員False>>>L=[[11,13],17,19]##判斷[11,13]是否是列表L的成員>>>[11,13]inLTrueelemin/notinseqseq是列表或者元組:判斷是否成員,不能判斷子序列

3.2序列的操作(4)序列的操作-in/notin>>>t=(1,2,3)>>>3int##判斷3是否是元組序列t的成員True>>>(2,3)int##判斷(2,3)是否是元組序列t的成員False>>>5notintTrueelemin/notinseqseq是列表或者元組:判斷是否成員,不能判斷子序列

3.2序列的操作(5)序列的操作-連接合并1+>>>“Hello”+“World”#字符串'HelloWorld‘>>>[1,2,3]+[2,3,4]#列表[1,2,3,2,3,4]>>>(1,2)+(‘a(chǎn)’,‘b’,‘c’)#元組(1,2,'a','b','c')連接合并操作1:seq1+seq2適合于各種序列對象3.2序列的操作(5)序列的操作-連接合并2.join適合于字符串:連接合并操作2:joinchar.join(stringlist)>>>"".join(['wel','come'])'welcome'>>>"".join(["Hello","World"])'HelloWorld'>>>"*".join(["Happy","New","Year"])'Happy*New*Year'3.2序列的操作(5)序列的操作-連接合并3適用于列表連接合并操作3:list1.extend(list2)>>>L1=[1,2,3]>>>L1.extend([2,3,4])>>>L1[1,2,3,2,3,4]>>>L1.extend('123')>>>L1[1,2,3,2,3,4,'1','2','3']>>>L1.extend((1,2,3))>>>L1[1,2,3,2,3,4,'1','2','3‘,1,2,3]3.2序列的操作(6)序列的操作-重復重復操作:將序列重復多次,生成新序列格式:seq*n>>>s="hello">>>s*3'hellohellohello'>>>L=[1,2]>>>L*4[1,2,1,2,1,2,1,2]>>>T=(1,2,3)>>>T*2(1,2,3,1,2,3)3.2序列的操作3.2.2序列的操作-函數(shù)和方法格式含義len(seq)求序列中的元素個數(shù)max(seq,key=func)按要求求序列最大值min(seq,key=func)按要求求序列最小值sum(seq)求序列元素之和s.index(elem,x,y)根據(jù)序列元素找到位置s.count(elem,x,y)計算序列元素在序列中出現(xiàn)的次數(shù)sorted(seq)序列排序,不改變原序列

s.sort(key=func)序列排序,改變原序列

del(seq)刪除序列3.2序列的操作(1)序列的操作-求長獲取長度len(seq)##創(chuàng)建了一個列表類型對象list_example>>>list1=[1,[1,2,3],'a',(1,2),4]

>>>list1[1,[1,2,3],'a',(1,2),4]>>>len(list1)53.2序列的操作(2)序列的操作-函數(shù)max最大值函數(shù)max:求序列最大值。格式:max(seq,key=func)序列元素是數(shù)值:直接比較大小。序列元素是字符、中文漢字:依次比較Unicode。序列元素是序列:依次比較序列中的每一個值序列元素是邏輯值:返回第一個最大值,True或者1key參數(shù)指定比較依據(jù)。3.2序列的操作(2)序列的操作-函數(shù)max序列元素是數(shù)值:直接比較大小。序列元素是字符、中文漢字:比較ASCII。>>>max([10,39,34,26,30])#比較大小39>>>s=“HelloWorld”#比較Unicode碼>>>max(s)‘r'>>>ord('我')25105>>>ord('們')20204>>>max('我們')#比較Unicode碼'我'3.2序列的操作(2)序列的操作-函數(shù)max最大值函數(shù)max:求序列最大值。格式:max(seq,key=func)序列元素是序列:依次比較序列中的每一個值序列元素是邏輯值:返回第一個最大值,True或者1>>>max([10,20],[20,30],[10,20,30])[20,30]>>>max(1,True,False)1>>>max(True,1,False)True3.2序列的操作(2)序列的操作-函數(shù)max最大值函數(shù)max:max(seq,key=func)通過key參數(shù)可以指定比較依據(jù)。常使用lambda函數(shù)。>>>L=[[1,2],"abcdef",(10,20,30)]>>>max(L,key=lambdaitem:len(item))##按L中的每個序列元素中的元素個數(shù)排序##結果為'abcdef’>>>L=[('a',20),('b',30),('c',15)]>>>max(L,key=lambdaitem:len(item))#比較各序列長度('a',20)>>>max(L,key=lambdaitem:item[0])#比較各序列第一項('c',15)>>>max(L,key=lambdaitem:item[1])#比較各序列第二項('b',30)3.2序列的操作(3)序列的操作-min函數(shù)最小值函數(shù)

溫馨提示

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

評論

0/150

提交評論