




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
Python數(shù)據(jù)結(jié)構(gòu)的應(yīng)用"智慧旅游網(wǎng)絡(luò)預(yù)約系統(tǒng)"設(shè)計(jì)知識目標(biāo):了解Python內(nèi)置數(shù)據(jù)結(jié)構(gòu)能力目標(biāo):掌握數(shù)據(jù)結(jié)構(gòu)操作與類型轉(zhuǎn)換方法項(xiàng)目五《Python語言程序設(shè)計(jì)》2/15Python數(shù)據(jù)結(jié)構(gòu)概述Python定義了可以表示混合數(shù)據(jù)的組合數(shù)據(jù)類型,可將多個相同或不同類型的數(shù)據(jù)組織成一個整體。使用組合數(shù)據(jù)類型定義和記錄數(shù)據(jù)能使數(shù)據(jù)表示更為清晰,同時簡化開發(fā)人員的工作,提升開發(fā)效率。列表(List)基本的數(shù)據(jù)結(jié)構(gòu),類似于數(shù)組,使用[]表示元組(Tuple)不可修改的列表,使用()表示字典(Dict)鍵值對集合,使用{}表示集合(Set)無序不重復(fù)元素序列字符串(Str)文本序列,使用引號表示數(shù)據(jù)結(jié)構(gòu)的優(yōu)勢數(shù)據(jù)表示更為清晰簡化開發(fā)人員工作提升開發(fā)效率3/15
列表(List)詳解基本概念列表是Python中基本的數(shù)據(jù)結(jié)構(gòu),和其他編程語言(C語言、C++、Java)中的數(shù)組類似。列表中的每個元素都被分配一個ID,這個ID表示對應(yīng)元素的位置或索引,第一個索引是0,第二個索引是1,依此類推。在Python中使用中括號[]來表示列表,并用英文逗號分隔其中的元素。基本操作創(chuàng)建列表直接創(chuàng)建或使用range()函數(shù):訪問元素通過索引訪問:修改列表添加、刪除或修改元素:列表切片獲取列表的部分元素:列表結(jié)構(gòu)可視化01234-5-4-3-2-1Python列表支持正向索引(0開始)和反向索引(-1開始)實(shí)例代碼fruits=['apple','banana']nums=list(range(5))first=fruits[0]last=fruits[-1]fruits.append('mango')fruits.remove('banana')fruits[0]='pear'subset=fruits[1:3]first_three=fruits[:3]last_two=fruits[-2:]蘋果香蕉櫻桃橙子獼猴桃#創(chuàng)建一個水果列表fruits=['蘋果','香蕉','櫻桃']#訪問列表元素print(fruits[0])#輸出:蘋果#添加新元素fruits.append('橙子')print(fruits)#['蘋果','香蕉','櫻桃','橙子']#使用range()創(chuàng)建數(shù)字列表numbers=list(range(1,6))print(numbers)#[1,2,3,4,5]元組(Tuple)詳解什么是元組?元組是一種特殊的列表。與列表不同的是,元組內(nèi)的元素不會發(fā)生改變,并且也不能添加和刪除元素。當(dāng)開發(fā)者需要創(chuàng)建一組不可改變的數(shù)據(jù)時,通常會把這些數(shù)據(jù)放到一個元組中。創(chuàng)建并訪問元組創(chuàng)建元組的基本形式是用小括號"()"將元素括起來,各元素之間用逗號","隔開。#創(chuàng)建空元組empty_tuple=()#創(chuàng)建只有一個元素的元組(需要加逗號)single_element=(5,)#創(chuàng)建多元素元組my_tuple=(1,2,3,"Python",True)元組與列表類似,下標(biāo)索引從0開始,可以進(jìn)行截取和組合操作。#訪問元組元素first_element=my_tuple[0]#結(jié)果:1sliced_tuple=my_tuple[1:4]#結(jié)果:(2,3,"Python")修改元組元組一旦創(chuàng)建是不可被修改的。但是在現(xiàn)實(shí)程序應(yīng)用中,可以對元組進(jìn)行連接組合。#嘗試修改元組元素(會引發(fā)錯誤)my_tuple=(1,2,3)#my_tuple[0]=5#TypeError:'tuple'objectdoesnotsupportitemassignment#元組連接tuple1=(1,2,3)tuple2=('a','b','c')combined=tuple1+tuple2#結(jié)果:(1,2,3,'a','b','c')刪除元組雖然Python不允許刪除元組中的元素,但是可以使用del語句來刪除整個元組。#刪除整個元組my_tuple=(1,2,3)delmy_tuple#print(my_tuple)#NameError:name'my_tuple'isnotdefined元組vs列表元組使用小括號
()5/15元組的內(nèi)置函數(shù)在Python程序中,可以使用內(nèi)置函數(shù)來操作元組,提高開發(fā)效率len(tuple)計(jì)算元組中的元素個數(shù)numbers=(10,20,30,40,50)print(len(numbers))結(jié)果:5max(tuple)返回元組中元素的最大值numbers=(10,20,30,40,50)print(max(numbers))結(jié)果:50min(tuple)返回元組中元素的最小值numbers=(10,20,30,40,50)print(min(numbers))結(jié)果:10tuple(seq)將列表轉(zhuǎn)換為元組my_list=[1,2,3,4]my_tuple=tuple(my_list)print(my_tuple)結(jié)果:(1,2,3,4)注意:
這些內(nèi)置函數(shù)可以應(yīng)用于多種數(shù)據(jù)類型,但在元組上使用時具有特定的行為。例如,max()和min()函數(shù)要求元組中的元素可比較。6/15
字典(Dictionary)詳解字典的基本概念字典是一種特殊的數(shù)據(jù)類型,它是由大括號"{}"包圍,并且以鍵值對的方式聲明和存在的數(shù)據(jù)集合。字典與列表相比,最大的不同在于字典是無序的,其元素位置只是象征性的,要通過"鍵"來訪問對應(yīng)元素,而不能通過其位置來訪問該元素。字典的創(chuàng)建字典可以存儲任意類型的對象,鍵值對"key:value"之間必須用冒號":"分隔,每個鍵值對之間用逗號","分隔,整個字典包含在大括號"{}"中。字典的訪問在Python程序中,可以通過訪問鍵的方式來顯示對應(yīng)的值。字典結(jié)構(gòu)可視化'name''張三''age'30'interests'['旅游','攝影']'is_vip'True
字典是無序的,鍵必須是唯一的,值可以是任何數(shù)據(jù)類型#創(chuàng)建字典user_info={'name':'張三','age':30,'interests':['旅游','攝影']}#創(chuàng)建空字典empty_dict={}#訪問字典元素user_info={'name':'張三','age':30}#獲取name對應(yīng)的值name=user_info['name']#結(jié)果:'張三'7/15
字典元素的操作添加字典元素字典是一種動態(tài)結(jié)構(gòu),可以隨時添加鍵值對。在添加鍵值對時,首先指定字典名,然后用中括號將鍵括起來,最后寫明這個鍵的值。#創(chuàng)建空字典user_info={}#添加鍵值對user_info['name']='張三'user_info['age']=30user_info['interests']=['旅游','攝影']修改字典元素在Python程序中,要想修改字典中的元素,首先要指定字典名,然后用中括號把將要修改的鍵和新值對應(yīng)起來。#原字典user_info={
'name':'張三',
'age':30}#修改age值user_info['age']=31刪除字典元素在Python程序中,對于字典中不再需要的信息,可以使用del語句將相應(yīng)的鍵值對徹底刪除。在使用del語句時,必須指定字典名和對應(yīng)的鍵。#原字典user_info={
'name':'張三',
'age':30,
'interests':['旅游','攝影']}#刪除鍵值對deluser_info['interests']
在智慧旅游預(yù)約系統(tǒng)中的應(yīng)用可以使用字典存儲和管理用戶預(yù)約信息、景點(diǎn)信息等動態(tài)添加、更新預(yù)約狀態(tài)、刪除過期預(yù)約字典的動態(tài)特性使其成為存儲變化數(shù)據(jù)的理想選擇便于系統(tǒng)進(jìn)行數(shù)據(jù)的快速查詢和修改集合(Set)詳解集合是無序、不重復(fù)元素的序列。集合的基本功能是進(jìn)行元素關(guān)系測試和刪除重復(fù)的元素。創(chuàng)建集合注意:創(chuàng)建空集合必須使用set()#使用大括號創(chuàng)建集合attractions={'長城','故宮','頤和園','天壇'}#使用set()函數(shù)創(chuàng)建集合cities=set(['北京','上海','廣州','深圳'])#創(chuàng)建空集合empty_set=set()#不能使用{}9/15
字符串(String)詳解字符串簡介字符串是Python中常用的數(shù)據(jù)類型之一,可以使用引號(單引號或雙引號)來創(chuàng)建字符串。創(chuàng)建Python字符串的方法非常簡單,為變量分配一個值即可。基本字符串創(chuàng)建使用單引號或雙引號創(chuàng)建字符串:#使用雙引號創(chuàng)建字符串greeting="歡迎使用智慧旅游網(wǎng)絡(luò)預(yù)約系統(tǒng)"#使用單引號創(chuàng)建字符串name='游客'
單引號和雙引號創(chuàng)建的字符串在功能上完全相同字符串特點(diǎn)字符串是不可變的序列類型可以通過索引訪問單個字符支持切片操作獲取子串三重引號字符串Python中還有一種用三重引號表示的特殊字符串,保留準(zhǔn)確格式:#使用三重雙引號description="""智慧旅游網(wǎng)絡(luò)預(yù)約系統(tǒng)
提供便捷的旅游預(yù)約服務(wù)
支持多種預(yù)約方式"""#使用三重單引號message='''感謝您使用我們的服務(wù)
祝您旅途愉快!'''三重引號字符串特點(diǎn)如果字符串占據(jù)了幾行,想讓Python保留輸入時使用的準(zhǔn)確格式,可以使用三重引號:保留行與行之間的回車符保留引號、制表符等格式可將整個段落作為單個字符串處理10/15字符串的基本操作字符串元素讀取使用索引可以直接訪問字符串中的元素,方法為:字符串名[索引]string="abcde"print(string[1])#輸出:b字符串切片從字符串中分離出部分字符,采取"字符串名[起始索引:結(jié)束索引:步長]"的方法string="abcde"print(string[1:3])#輸出:bcprint(string[::2])#輸出:ace字符串連接使用運(yùn)算符"+"將兩個字符串對象連接起來,得到一個新的字符串對象first="Python"last="編程"full=first+""+lastprint(full)#輸出:Python編程注意:將字符串和數(shù)字連接時,需要使用str()函數(shù)將數(shù)字轉(zhuǎn)換成字符串字符串重復(fù)使用運(yùn)算符"*"進(jìn)行字符串重復(fù)操作,構(gòu)建一個由字符串自身重復(fù)連接而成的字符串對象string="Python"repeated=string*3print(repeated)#輸出:PythonPythonPython字符串的關(guān)系運(yùn)算字符串按照字符的ASCII值進(jìn)行比較,支持<,>,<=,>=,==,!=等運(yùn)算符"abc"<"abd"
#返回:True"Python"=="python"
#返回:False字符串的成員運(yùn)算使用in或notin運(yùn)算符判斷一個字符串是否包含另一個字符串,返回值為True或Falsestring="abcde"print("bc"instring)#輸出:Trueprint("xy"notinstring)#輸出:True11/15字符串處理函數(shù)大小寫轉(zhuǎn)換函數(shù)capitalize()將字符串的第一個字母大寫title()將字符串中的單詞首字母大寫upper()將字符串中的所有字母轉(zhuǎn)換為大寫字母lower()將字符串全部轉(zhuǎn)換為小寫字母swapcase()將大寫字母轉(zhuǎn)為小寫,小寫字母轉(zhuǎn)為大寫查找與計(jì)數(shù)函數(shù)count()獲得字符串中某個子串的數(shù)目find()獲得字符串中某個子串的起始位置,沒有則返回-1字符串操作函數(shù)join()連接字符串split()分割字符串字符類型檢測函數(shù)isalnum()檢測字符串是否只包含0~9、A~Z、a~zisalpha()檢測字符串是否只包含A~Z、a~zisdigit()檢測字符串是否只包含數(shù)字islower()檢測字符串是否只包含小寫字母isspace()檢測字符串中所有字符是否均為空白字符istitle()檢測字符串中的單詞是否首字母大寫isupper()檢測字符串是否只包含大寫字母應(yīng)用示例text="welcometosmarttourism"print(text.capitalize())#Welcometosmarttourismprint(text.count("t"))#2print(text.find("tourism"))#13print(text.title())#WelcomeToSmartTourismprint("ABC".islower())#Falsewords=text.split()print("-".join(words))#welcome-to-smart-tourism12/15字符串高級操作Python提供了多種強(qiáng)大的字符串高級操作方法,可以實(shí)現(xiàn)子串查找、替換、分割和連接等功能。子串查找(?nd)在主串中查找子串,返回子串在主串中的位置,找不到則返回-1#子串查找示例text="智慧旅游網(wǎng)絡(luò)預(yù)約系統(tǒng)"position=text.find("網(wǎng)絡(luò)")print(position)#輸出:4not_found=text.find("酒店")print(notfound)#輸出:-1字符串替換(replace)使用replace()函數(shù)可進(jìn)行字符串替換,可指定最大替換次數(shù)#字符串替換示例text="智慧旅游網(wǎng)絡(luò)預(yù)約系統(tǒng)"new_text=text.replace("網(wǎng)絡(luò)","在線")print(new_text)#輸出:"智慧旅游在線預(yù)約系統(tǒng)"#可指定最大替換次數(shù)s="aaa"字符串分割(split)將字符串分割成多個子串組成的列表,可指定分隔符#字符串分割示例text="北京,上海,廣州,深圳"cities=text.split(",")print(cities)#輸出:['北京','上海','廣州','深圳']sentence="歡迎
使用
智慧旅游
系統(tǒng)"words=sentencesplit()#默認(rèn)以空格分割字符串連接(join)將列表、元組中的元素以指定的字符(分隔符)連接生成新字符串#字符串連接示例cities=['北京','上海','廣州']result="、".join(cities)print(result)#輸出:"北京、上海、廣州"path_parts=['user','data','config.ini']path="/"join(pathparts)實(shí)際應(yīng)用這些字符串高級操作方法在智慧旅游網(wǎng)絡(luò)預(yù)約系統(tǒng)中可用于處理用戶輸入、格式化顯示信息、解析數(shù)據(jù)和構(gòu)建響應(yīng)信息等場景,能夠大幅提高文本處理效率。13/15數(shù)據(jù)類型轉(zhuǎn)換在項(xiàng)目開發(fā)過程中,可能會面臨對不同類型的數(shù)據(jù)進(jìn)行操作的問題。Python內(nèi)置的數(shù)據(jù)類型轉(zhuǎn)換函數(shù)能夠返回一個新的對象,該對象用來表示轉(zhuǎn)換后的值。int(x[,base])將對象x轉(zhuǎn)換為整數(shù)"123"
→
123float(x)將對象x轉(zhuǎn)換為浮點(diǎn)數(shù)5
→
5.0complex(real[,imag])創(chuàng)建一個復(fù)數(shù)1,2
→
1+2jstr(x)將對象x轉(zhuǎn)換為字符串123
→
"123"eval(str)計(jì)算字符串中有效的Python表達(dá)式,并返回一個對象"1+2"
→
3tuple(s)將序列s轉(zhuǎn)換為元組[1,2,3]
→
(1,2,3)list(s)將序列s轉(zhuǎn)換為列表(1,2,3)
→
[1,2,3]set(s)將序列s轉(zhuǎn)換為可變集合[1,2,2,3]
→
{1,2,3}dict(d)創(chuàng)建一個字典,d必須是一個序列[('a',1),('b',2)]
→
{'a':1,'b':2}frozenset(s)將序列s轉(zhuǎn)換為不可變集合[1,2,3]
→
frozenset({1,2,3})chr(x)將整數(shù)轉(zhuǎn)換為字符ord(x)將字符轉(zhuǎn)換為對應(yīng)的整數(shù)hex(x)/oct(x)將整數(shù)轉(zhuǎn)換為十六/八進(jìn)
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 工地建設(shè)安全知識培訓(xùn)課件
- 臨床醫(yī)學(xué)概論試題藥學(xué)及答案2025版
- 工地安全知識培訓(xùn)課件課報(bào)道
- 鄭州中牟人文220千伏輸變電工程(線路變更)環(huán)境影響報(bào)告表
- 工器具及儀器儀表課件
- 2025年西南地區(qū)公務(wù)員錄用考試銀監(jiān)財(cái)經(jīng)類專業(yè)試卷解析
- 2025年事業(yè)單位招聘考試人力資源類綜合能力測試試卷(廣州地區(qū))
- 工廠鉚釘機(jī)安全知識培訓(xùn)課件
- 2025大力弘揚(yáng)偉大抗戰(zhàn)精神做到“四個必須”(含文字稿)
- 2025年武漢市事業(yè)單位招聘考試教師生物學(xué)科專業(yè)知識試卷
- 婦女維權(quán)法律知識講座
- 2025年內(nèi)蒙古自治區(qū)中考語文真題含答案
- 2025版危險(xiǎn)貨物道路運(yùn)輸綜合預(yù)案(電石)
- 2025年中醫(yī)確有專長考試試題及答案
- DB32∕T 4553-2023 醫(yī)療機(jī)構(gòu)醫(yī)療器械不良事件監(jiān)測工作指南
- 2025年機(jī)關(guān)事業(yè)單位技能資格考試-政工歷年參考題庫含答案解析(5套共100道單選合輯)
- 關(guān)于工勤人員管理辦法
- 傳統(tǒng)喪事流程安排方案
- 婦產(chǎn)科學(xué)-第十二章-正常分娩課件
- 腓腸神經(jīng)皮瓣課件
- 1【L】系列離心式冷水機(jī)組技術(shù)手冊
評論
0/150
提交評論