版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第三章算法的程序?qū)崿F(xiàn)1.Python是一種面向?qū)ο?、解釋型的?jì)算機(jī)程序設(shè)計(jì)高級(jí)語(yǔ)言,其語(yǔ)法簡(jiǎn)潔清晰,方便對(duì)數(shù)據(jù)進(jìn)行組織和處理使用Python語(yǔ)言編程解決問(wèn)題時(shí),需要嚴(yán)格遵守Python語(yǔ)言的語(yǔ)法規(guī)則,并選擇合理的程序運(yùn)行環(huán)境運(yùn)行程序。用于編寫(xiě)Python程序的IDE較多,如IDLE、Spyder、Wing、PyCharm等。數(shù)據(jù)按照其本身特征可以分為若干種不同的類(lèi)型,常見(jiàn)的Python基本數(shù)據(jù)類(lèi)型如圖3.1所示圖3.1Python的基本運(yùn)算包括算術(shù)運(yùn)算(圖3.2)、關(guān)系運(yùn)算(圖3.3)和邏輯運(yùn)算(圖3.4)三大類(lèi)。Python中的算術(shù)運(yùn)算存在著優(yōu)先級(jí)順序,優(yōu)先程度最高級(jí)別為1,級(jí)別數(shù)字越大,優(yōu)先級(jí)越低。在同一個(gè)表達(dá)式中,如果有一個(gè)及以上的運(yùn)算符,那么先執(zhí)行優(yōu)先級(jí)高的運(yùn)算,同優(yōu)先級(jí)的基本運(yùn)算按照自左向右的順序執(zhí)行圖3.2關(guān)系運(yùn)算符中in"運(yùn)算符用來(lái)檢查一個(gè)值是否包含在指定的序列中,例如“a”in“aaa”為T(mén)rue,”b”in“aaa”為false。注意in運(yùn)算符要求符號(hào)左右兩邊都是字符型。例如3in333左右兩邊都是數(shù)值型,就會(huì)報(bào)錯(cuò)圖3.3(關(guān)系運(yùn)算符)邏輯運(yùn)算符經(jīng)常用于描述復(fù)雜情況的判斷。圖3.4(邏輯運(yùn)算符)程序設(shè)計(jì)時(shí),有些數(shù)據(jù)是未知或可變的,為了更靈活地使用這些數(shù)據(jù),可以使用變量來(lái)存儲(chǔ)。為了能對(duì)變量進(jìn)行訪問(wèn),需要對(duì)變量進(jìn)行命名。變量名作用c、cnt、count統(tǒng)計(jì)個(gè)數(shù)cur當(dāng)前f、flag標(biāo)識(shí)i,j循環(huán)變量n、num數(shù)量p位置(當(dāng)前)pre上一個(gè)q位置(上一個(gè))r、res結(jié)果s、str字符串t、temp臨時(shí)變量Python變量命名要求:1.不能是數(shù)字開(kāi)頭、2.不能是系統(tǒng)關(guān)鍵字、3.不能重復(fù)、4.不能有特殊字符(下劃線(xiàn)_除外)。Python變量命名規(guī)范:在正常開(kāi)發(fā)中,我們對(duì)變量命名一般有兩種方法,一種是匈牙利命名法(將單詞中的元音字母去除)例如count簡(jiǎn)寫(xiě)成cnt,另一種是駝峰規(guī)則(首字母大寫(xiě))例如用戶(hù)數(shù)量UserCount在實(shí)際解題中,部分題目也會(huì)使用拼音首字母(例如用戶(hù)數(shù)量:yhsl)或者拼音首字母+匈牙利命名法實(shí)現(xiàn)(例如用戶(hù)數(shù)量:yhcnt)常見(jiàn)變量名詳見(jiàn)上表字符串(String)和列表(List):字符串、列表中的元素都是通過(guò)索引來(lái)定位的。如圖3.5所示,第一個(gè)元素的索引是0,第二個(gè)元素的索引是1,以此類(lèi)推不斷遞增(圖3.5)。圖3.5字符串或列表中的元素可以通過(guò)索引進(jìn)行訪問(wèn),如圖3.6所示:圖3.6字典和列表類(lèi)似,可包含多個(gè)元素。字典中的每個(gè)元素包含兩部分內(nèi)容:鍵和值。鍵通常用字符串或數(shù)值來(lái)表示,值可以是任意類(lèi)型的數(shù)據(jù)。鍵和值兩者一一對(duì)應(yīng),且每個(gè)鍵只能對(duì)應(yīng)一個(gè)值。鍵和值在字典中以成對(duì)的形式出現(xiàn),并以如下方式標(biāo)記:d={keyl:valuel,key2:value2,…}。鍵-值對(duì)用冒號(hào)分隔,各個(gè)對(duì)之間用逗號(hào)分隔,所有這些都包括在花括號(hào)“{}"中。字典中的元素是沒(méi)有順序的,引用元素時(shí)以鍵為索引。注釋?zhuān)鹤⑨尵褪菍?duì)代碼的解釋和說(shuō)明,其目的是讓人們能夠更加輕松地了解代碼。注釋是編寫(xiě)程序時(shí),寫(xiě)程序的人給一個(gè)語(yǔ)句、程序段、函數(shù)等的解釋或提示,能提高程序代碼的可讀性。注釋只是為了提高可讀性,不會(huì)被計(jì)算機(jī)編譯。Python中注釋標(biāo)識(shí)符為#,例圖3.7圖3.7常見(jiàn)內(nèi)置函數(shù)見(jiàn)下表(下表中s:字符串,f:實(shí)數(shù),i:整數(shù),[]:數(shù)組)函數(shù)名樣例備注函數(shù)名樣例備注Int(s)Int(“3”)將String型整數(shù)轉(zhuǎn)為Int型Len([])Len(“1”)字符串?dāng)?shù)組的長(zhǎng)度Int(f)Int(3.9)取整Round(f,1)Round(2.1,1)四舍五入保留n位Float(s)Float(“3.9”)將String型實(shí)數(shù)轉(zhuǎn)為Float型Max([])Max([1,2,3])求數(shù)組中的最大值Float(i)Float(3)將int型實(shí)數(shù)轉(zhuǎn)為Float型Min([])Min([1,2,3])求數(shù)組中的最小值Str(f)Str(3.9)將Float型實(shí)數(shù)轉(zhuǎn)為String型Sort([])Sort([1,2,3])對(duì)數(shù)組進(jìn)行排序Str(i)Str(3)將Int型整數(shù)轉(zhuǎn)為String型Abs(i)Abs(1)取絕對(duì)值Ord(s)Ord(“A”)字符轉(zhuǎn)為ASC碼Print()Print(“A”)輸出函數(shù),Chr(i)Chr(65)ASC碼轉(zhuǎn)為字符Input()Intpu()輸入函數(shù),返回字符串?dāng)?shù)據(jù)結(jié)構(gòu)字典的內(nèi)置函數(shù)(表3.1)假設(shè)有一個(gè)字典型變量dic={"書(shū)名":"滿(mǎn)分計(jì)劃","作者":"陶小波"}方法名示例說(shuō)明cleardic.clear清空字典變量getdic.get(“書(shū)名”)根據(jù)key得到值updatedic.update({“頁(yè)數(shù)”:”100”})往字典內(nèi)添加一項(xiàng)/dic[“書(shū)名”]根據(jù)key得到值/dic[“書(shū)名”]=”必考滿(mǎn)分”如果字典中有該Key,則會(huì)更新對(duì)應(yīng)的Value值,即dic={"書(shū)名":"必考滿(mǎn)分","作者":"陶小波"}/dic[“版本”]=1如果字典中有沒(méi)有該Key,則會(huì)增加對(duì)應(yīng)的鍵值對(duì),即dic={"書(shū)名":"必考滿(mǎn)分","作者":"陶小波",“版本”:1}popdic.pop(“書(shū)名”)傳入鍵刪除。表3.1數(shù)據(jù)結(jié)構(gòu)列表的內(nèi)置函數(shù)(表3.2)假設(shè)有一個(gè)列表型變量ls=["滿(mǎn)分計(jì)劃",1234567,true]方法名示例說(shuō)明結(jié)果appendls.append(“陶”)向列表中追加一項(xiàng)ls=["滿(mǎn)分計(jì)劃",1234567,true,”陶”]countls.count(“滿(mǎn)分計(jì)劃”)統(tǒng)計(jì)列表中某項(xiàng)的數(shù)量1indexls.index(‘滿(mǎn)分計(jì)劃’)指定內(nèi)容在列表中的位置0popls.pop(1)刪除指定項(xiàng)ls=["滿(mǎn)分計(jì)劃",true,”陶”]sortls.sort()排序,默認(rèn)升序insertls.insert(1,"張")插入到指定位置['滿(mǎn)分計(jì)劃','張',1234567,True]表3.2數(shù)據(jù)類(lèi)型字符串的內(nèi)置函數(shù)假設(shè)有字符串s=”thisisningboiszhenhai”方法名示例說(shuō)明結(jié)果splits.split(“”)根據(jù)指定符號(hào)分割,如不傳入?yún)?shù),即s.split()等價(jià)于s.split(“”)['this','is','ningbo','is','zhenhai']uppers.upper()將所有字母轉(zhuǎn)換為大寫(xiě)THISISNINGBOISZHENHAIlowers.lower()將所有字母轉(zhuǎn)換為小寫(xiě)thisisningboiszhenhaicounts.count(“is”)獲取指定字符在字符串中出現(xiàn)的次數(shù)3strips.strip()去掉字符串中最后的\n(回車(chē))thisisningboiszhenhai分支結(jié)構(gòu):If語(yǔ)句常見(jiàn)有4種結(jié)構(gòu)。詳見(jiàn)下表if條件:ifx==1:執(zhí)行代碼print(“1”)說(shuō)明:只有一個(gè)分支的情況,條件滿(mǎn)足執(zhí)行代碼if條件:ifx==1:代碼1print(“1”)else:else:代碼2print(“2”)說(shuō)明:有兩個(gè)分支的情況,條件滿(mǎn)足執(zhí)行代碼1條件不滿(mǎn)足執(zhí)行代碼2if條件1:ifx==1:代碼1print(“1”)elif條件2:elifx==2:代碼2print(“2”)說(shuō)明:有兩個(gè)分支的情況,條件1滿(mǎn)足執(zhí)行代碼1條件2滿(mǎn)足執(zhí)行代碼2if條件1:ifx==1:代碼1print(“1”)elif條件2:elifx==2:代碼2print(“2”)else:else:代碼3print(“3”)說(shuō)明:有兩個(gè)分支的情況,條件1滿(mǎn)足執(zhí)行代碼1條件2滿(mǎn)足執(zhí)行代碼2,兩個(gè)都不滿(mǎn)足執(zhí)行代碼3循環(huán)結(jié)構(gòu)for循環(huán)格式:for變量名inrange(初始值,終止值,步長(zhǎng)):其中循環(huán)范圍為[初始值,終止值)。當(dāng)步長(zhǎng)為1的時(shí)候可以不寫(xiě)例如求10!x=1Foriinrange(2,11):x=x*ifor循環(huán)(遍歷)格式:for變量名in變量:其中變量需要是數(shù)組、字符串等例如:x=”123”Foriinx:Print(i)結(jié)果:123while循環(huán)格式while循環(huán)條件:條件滿(mǎn)足進(jìn)入循環(huán),條件不滿(mǎn)足退出循環(huán)例如求10!x=1cnt=1Whilecnt!=10:x=x*cntcnt=cnt+1其他循環(huán)結(jié)構(gòu)其他寫(xiě)法(for):foriinrange(10):print("a")沒(méi)有break,for循環(huán)結(jié)束后else:會(huì)執(zhí)行else之后的代碼print("b")即print(“b”)foriinrange(10):print("a")有break,for循環(huán)結(jié)束后break不會(huì)執(zhí)行else之后的代碼else:print("b")字符串和列表取值范圍:假設(shè)有字符串s=”滿(mǎn)分計(jì)劃是由陶小波編寫(xiě)的”。代碼結(jié)果說(shuō)明s[0]“滿(mǎn)”取字符串/列表的第一個(gè)s[0:2]“滿(mǎn)分”從字符串第0個(gè)取到第1個(gè)(注意:[0,2],左邊是閉區(qū)間,右邊是開(kāi)區(qū)間)s[0:]“滿(mǎn)分計(jì)劃是由陶小波編寫(xiě)的”取字符串/列表的所有值s[0::]“滿(mǎn)分計(jì)劃是由陶小波編寫(xiě)的”取字符串/列表的所有值s[::1]“滿(mǎn)分計(jì)劃是由陶小波編寫(xiě)的”取字符串/列表的所有值s[::1]“的寫(xiě)編波小陶由是劃計(jì)分滿(mǎn)”取反字符串s[::2]“滿(mǎn)計(jì)是陶波寫(xiě)”間隔兩位取值表3.3部分特殊代碼列表代碼等價(jià)代碼說(shuō)明a=b=0a=0b=0定義變量a,b=0,1a=0b=1定義變量a,b=b,aa=a+bb=aba=aba,b兩變量值交換ls=input().split(",")k=[int(i)foriinls]/將字符串型的列表轉(zhuǎn)換為數(shù)值型,并賦值給kPrint("%.2f"%123.45678)/浮點(diǎn)數(shù)四舍五入輸出,2f表示保留兩位小數(shù)Print("%.2d"%1)/按格式輸出,2d表示兩位,位數(shù)不足,值前面補(bǔ)0Print(num,end="")end="",表示將print()函數(shù)的結(jié)束值設(shè)置為一個(gè)空格,這樣下一次對(duì)print()的調(diào)用結(jié)果將會(huì)從空格右邊開(kāi)始。(即不換行)Python自定義函數(shù)1)函數(shù)代碼塊以
def
關(guān)鍵詞開(kāi)頭,后接函數(shù)標(biāo)識(shí)符名稱(chēng)和圓括號(hào)()。2)任何傳入?yún)?shù)和自變量必須放在圓括號(hào)中間。圓括號(hào)之間可以用于定義參數(shù)。3)函數(shù)的第一行語(yǔ)句可以選擇性地使用文檔字符串—用于存放函數(shù)說(shuō)明。4)函數(shù)內(nèi)容以冒號(hào)起始,并且縮進(jìn)。5)return[表達(dá)式]
結(jié)束函數(shù),選擇性地返回一個(gè)值給調(diào)用方。不帶表達(dá)式的return相當(dāng)于返回None樣例如下表所示def方法名(參數(shù)列表):return結(jié)果自定義函數(shù)格式defpra(x):Ifx%2==0:returnTrueelse:returnFalse自定義函數(shù)樣例Python第三方庫(kù)導(dǎo)入方法。導(dǎo)入方法1Import庫(kù)名導(dǎo)入整個(gè)庫(kù)導(dǎo)入方法2Import庫(kù)名as別名導(dǎo)入整個(gè)庫(kù),并定義別名導(dǎo)入方法3From庫(kù)名import方法名導(dǎo)入庫(kù)中的某些方法常見(jiàn)Python第三方庫(kù)庫(kù)名備注Random隨機(jī)數(shù)Math數(shù)學(xué)包Pandas數(shù)據(jù)分析Matplotlib繪圖工具Python文件讀寫(xiě)。其中open函數(shù)需要傳入兩個(gè)參數(shù),第一個(gè)是文件路徑,第二個(gè)是方法其中r:表示讀入,w:表示覆蓋寫(xiě)入,a+:表示追加寫(xiě)入。假設(shè)有1.txt文件#一次性輸出所有值f=open("1.txt","r")print(f.read())#f.read():#讀取全部f.close()#關(guān)閉文件流#覆蓋寫(xiě)入值f=open("1.txt","w")print(f.write("11111"))#f.write()#寫(xiě)入全部f.close()#關(guān)閉文件流#循環(huán)輸出每一行f=open("1.txt","r")Forlineinf.readlines():Print(line.strip())#循環(huán)輸出每一行,并去掉末尾\nf.close()#關(guān)閉文件流#追加值f=open("1.txt","a+")print(f.write("11111"))#f.write()#寫(xiě)入全部f.close()#關(guān)閉文件流隨機(jī)數(shù)(Random)方法(下表中的Ls為:Ls=[1,2,3,4])方法名說(shuō)明使用樣例randint生成指定區(qū)間內(nèi)的隨機(jī)數(shù)整數(shù)random.randint(1,
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025中國(guó)啟源工程設(shè)計(jì)研究院限公司招聘66人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025中國(guó)人民財(cái)產(chǎn)保險(xiǎn)股份限公司廈門(mén)市南山支公司(央企)招聘15人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025下半年貴州安順市西秀區(qū)事業(yè)單位招聘101人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025下半年湖北省潛江市事業(yè)單位招聘歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025下半年浙江嘉興南湖區(qū)衛(wèi)生系統(tǒng)招聘事業(yè)單位工作人員31人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025下半年江蘇南京市雨花臺(tái)區(qū)衛(wèi)健委所屬部分事業(yè)單位招聘3人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025下半年四川古藺縣事業(yè)單位招考報(bào)到高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025下半年四川樂(lè)山市馬邊彝族自治縣教師招聘6人歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025上海浦東新區(qū)房地產(chǎn)(集團(tuán))限公司招聘46人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2025上半年黑龍江伊春市事業(yè)單位招聘工作人員94人歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2021多特瑞領(lǐng)袖高峰會(huì)活動(dòng)策劃方案-99P
- 《經(jīng)濟(jì)學(xué)導(dǎo)論》考試復(fù)習(xí)題庫(kù)(含答案)
- 急性肺水腫應(yīng)急預(yù)案與流程
- 農(nóng)田水利渠道灌溉與排水課件
- 康復(fù)評(píng)定步態(tài)分析
- 六棱塊護(hù)坡施工方案
- 電子產(chǎn)品裝配與調(diào)試教材課件匯總完整版ppt全套課件最全教學(xué)教程整本書(shū)電子教案全書(shū)教案課件合集
- 《行政組織學(xué)小抄》word版
- 交通管理與控制課件(全)全書(shū)教學(xué)教程完整版電子教案最全幻燈片
- 模態(tài)比例因子
- 破產(chǎn)法PPT課件
評(píng)論
0/150
提交評(píng)論