版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
任務(wù)14
Python序列結(jié)構(gòu)程序設(shè)計(jì)基礎(chǔ)(Python語(yǔ)言)CONTENTS目錄01任務(wù)背景與目標(biāo)02序列概述03有序序列案例04無序序列案例05任務(wù)測(cè)試與總結(jié)任務(wù)背景與目標(biāo)01一、任務(wù)背景1.提升編程能力掌握Python序列結(jié)構(gòu),能有效提升編程技能。它可以增強(qiáng)邏輯思維,讓開發(fā)者在面對(duì)問題時(shí)更有條理;同時(shí)也能提高問題解決能力,在處理數(shù)據(jù)相關(guān)任務(wù)時(shí)更加高效。2.學(xué)習(xí)基礎(chǔ)鋪墊Python序列結(jié)構(gòu)分為有序序列(字符串、元組、列表)和無序序列(集合、字典)。了解這些分類,能為后續(xù)學(xué)習(xí)序列結(jié)構(gòu)的操作方法以及實(shí)際應(yīng)用打下堅(jiān)實(shí)基礎(chǔ)。二、任務(wù)目標(biāo)明晰Python序列結(jié)構(gòu)的分類依據(jù)及各類別特點(diǎn),能準(zhǔn)確區(qū)分有序序列和無序序列的概念與差異。1.掌握序列結(jié)構(gòu)分類及區(qū)分方法會(huì)列舉各類序列結(jié)構(gòu)的常見應(yīng)用場(chǎng)景及適用情況,增強(qiáng)對(duì)Python數(shù)據(jù)結(jié)構(gòu)的整體認(rèn)知和理解能力。2.了解序列應(yīng)用及提升數(shù)據(jù)結(jié)構(gòu)認(rèn)知序列概述02一、序列概述Python中常見的序列結(jié)構(gòu)有字符串、元組、列表、集合、字典等5種類型。
序列的有序性是指在序列集中的元素之間是否存在排列順序上的前后關(guān)系,如果存在則為有序序列,否則為無序序列。
按照元素是否有順序可分為有序序列和無序序列;
按照序列定義后其中數(shù)據(jù)是否可以改變分為可變序列和不可變序列。
Python的序列結(jié)構(gòu)與其它語(yǔ)言的結(jié)構(gòu)數(shù)據(jù)類似但更靈活多變。
二、有序序列與無序序列1.有序序列Python中常見的有序序列有:字符串、列表、元組。
有序序列集的元素之間位置上有順序關(guān)系,操作時(shí)可以使用位置即下標(biāo)進(jìn)行訪問。圖4-1
有序序列集中元素與位置的對(duì)應(yīng)關(guān)系二、有序序列與無序序列2.無序序列:
(1)集合、字典都是無序序列,其包含的元素間不存在順序關(guān)系,
不能使用位置下標(biāo)進(jìn)行訪問。
圖4-2
序列的分類**兩種分類角度結(jié)合,序列分為:可變有序序列、可變無序序列、不可變有序序列、不可變無序序列。有序序列案例03【案例14-1】使用有序序列記錄任務(wù)日志一、案例描述
小@的任務(wù)日志記錄中,使用字符串來存儲(chǔ)任務(wù)執(zhí)行信息,使用元組來表示一些固定配置信息,使用列表來存儲(chǔ)小@一次任務(wù)執(zhí)行中采集到序列型數(shù)據(jù)。通過有序序列結(jié)構(gòu)存儲(chǔ)數(shù)據(jù)可方便后期的分析和處理,為“數(shù)字中國(guó)”的研究提供數(shù)據(jù)基礎(chǔ)。二、案例數(shù)據(jù)分析
(1)字符串存儲(chǔ)任務(wù)執(zhí)行信息。
小@的任務(wù)執(zhí)行信息(任務(wù)名稱)通常是描述性文本,不能頻繁修改,保持穩(wěn)定才能便于記錄和查詢。字符串創(chuàng)建后不會(huì)被意外修改,非常適合于記錄歷史數(shù)據(jù)和日志信息。
(2)元組存儲(chǔ)固定配置信息。小@的固定配置信息(傳感器類型及相關(guān)數(shù)據(jù))在小@初始化時(shí)確定且通常不再改變。元組做為有序列表且不可變,適用存儲(chǔ)不會(huì)改變的數(shù)據(jù),保障數(shù)據(jù)采集的準(zhǔn)確性和可靠性。
(3)列表存儲(chǔ)采集數(shù)據(jù)點(diǎn)。小@采集的環(huán)境溫度、濕度等按時(shí)間形成序列,需要后續(xù)的分析和處理。列表為有序序列且數(shù)據(jù)可變。三、案例步驟詳解1.數(shù)據(jù)初始化初始化所需的所有數(shù)據(jù),例如任務(wù)執(zhí)行信息、配置信息、數(shù)據(jù)點(diǎn)信息等基礎(chǔ)數(shù)據(jù)信息。2.存儲(chǔ)數(shù)據(jù)存儲(chǔ)并輸出采集到的數(shù)據(jù)到對(duì)應(yīng)的變量中三、代碼示例及顯示結(jié)果 #使用字符串存儲(chǔ)任務(wù)執(zhí)行信息 task_log="任務(wù)名稱:環(huán)境監(jiān)測(cè)任務(wù),開始時(shí)間:2025-01-1508:00:00,結(jié)束時(shí)間:2025-01-1510:00:00" #使用元組表示固定配置信息 sensor_config=("溫度傳感器","濕度傳感器"),(25,60)#分別為傳感器類型和參數(shù) #使用列表存儲(chǔ)任務(wù)執(zhí)行過程中采集到的數(shù)據(jù)點(diǎn) data_points=[] #假設(shè)模擬采集數(shù)據(jù) foriinrange(10): temperature=20+i humidity=50+i data_point=(f"2025-01-1508:0{i}:00",temperature,humidity) data_points.append(data_point) #打印信息 print("任務(wù)日志:",task_log) print("傳感器配置:",sensor_config) print("采集的數(shù)據(jù)點(diǎn):",data_points)案例顯示結(jié)果:無序序列案例04【案例14-2】使用無序序列設(shè)計(jì)一個(gè)資源管理數(shù)據(jù)結(jié)構(gòu)一、案例描述
小@的資源管理程序中使用集合存儲(chǔ)可用的工具和設(shè)備名稱,使用字典來建立傳感器數(shù)據(jù)類型與對(duì)應(yīng)的處理函數(shù)之間的映射關(guān)系。二、案例數(shù)據(jù)分析
(1)集合用于存儲(chǔ)可用的工具和設(shè)備名稱。
小@執(zhí)行任務(wù)時(shí)的工具和設(shè)備名稱等數(shù)據(jù)唯一且不重復(fù)。
集合作為存儲(chǔ)無序且不重復(fù)元素的容器,可使小@快速判定某個(gè)工具是否可用,避免不必要的重復(fù)操作。
(2)字典用于建立傳感器數(shù)據(jù)類型與處理函數(shù)之間的映射關(guān)系。
小@的傳感器數(shù)據(jù)類型與處理函數(shù)之間的映射關(guān)系,符合字典的鍵值對(duì)特點(diǎn)??捎脗鞲衅鲾?shù)據(jù)為鍵、處理函數(shù)為值,存儲(chǔ)映射關(guān)系。
當(dāng)接收到新的傳感器數(shù)據(jù)時(shí),通過映射迅速確定對(duì)應(yīng)的處理函數(shù),提高數(shù)據(jù)處理的效率和準(zhǔn)確性。三、案例步驟詳解1.初始化各項(xiàng)數(shù)據(jù)初始化所需的所有數(shù)據(jù),例如任務(wù)執(zhí)行信息、配置信息、數(shù)據(jù)點(diǎn)信息等基礎(chǔ)數(shù)據(jù)信息。2.存儲(chǔ)數(shù)據(jù)存儲(chǔ)并輸出采集到的數(shù)據(jù)到對(duì)應(yīng)的變量中3.數(shù)據(jù)展示將輸出采集到的所有數(shù)據(jù)進(jìn)行收集和展示三、代碼示例及顯示結(jié)果#使用集合存儲(chǔ)可用的工具和設(shè)備名稱available_tools={'扳手','螺絲刀','錘子'}#檢查某個(gè)工具是否可用defcheck_tool_availability(tool_name):returntool_nameinavailable_tools#使用字典建立傳感器數(shù)據(jù)類型與處理函數(shù)之間的映射關(guān)系defprocess_temperature_data(data):print(f"處理溫度數(shù)據(jù):{data}")defprocess_humidity_data(data):print(f"處理濕度數(shù)據(jù):{data}")sensor_data_processors={'溫度':process_temperature_data,'濕度':process_humidity_data}#模擬接收到新的傳感器數(shù)據(jù)并處理defprocess_sensor_data(data_type,data):ifdata_typeinsensor_data_processors:processor=sensor_data_processors[data_type]processor(data)else:print(f"未找到處理{data_type}數(shù)據(jù)的函數(shù)")#測(cè)試工具可用性檢查print(check_tool_availability('扳手'))print(check_tool_availability('電鋸'))#測(cè)試傳感器數(shù)據(jù)處理process_sensor_data('溫度',25)process_sensor_data('光照強(qiáng)度',100)案例顯示結(jié)果任務(wù)測(cè)試與總結(jié)05一、選擇題1.在Python中,以下不屬于序列類型的是()A.列表 B.元組 C.字典 D.字符串2.關(guān)于Python序列結(jié)構(gòu)的可變性,以下說法正確的是()A.列表是不可變序列 B.元組是可變序列C.字符串是不可變序列 D.字典是可變序列3.在Python中,以下序列類型不支持索引和切片操作的是()A.字符串 B.列表 C.字典 D.元組4.以下哪一個(gè)不是Python中的有序序列類型?()A.列表(List) B.字典(Dictionary)C.元組(Tuple) D.字符串(String)文件處理庫(kù)8.以下關(guān)于Python元組的描述,哪一項(xiàng)是錯(cuò)誤的?()A.元組是不可變的 B.元組可以包含不同類型的元素C.元組的元素可以被修改 D.元組可以通過索引訪問元素10.在Python中,以下操作不可以用于有序序列類型的有()A.連接操作 B.重復(fù)操作
C.成員關(guān)系操作 D.索引賦值操作CCCBCDTHEEND謝謝任務(wù)15
Python字符串程序設(shè)計(jì)基礎(chǔ)(Python語(yǔ)言)CONTENTS目錄01任務(wù)背景與目標(biāo)02字符串概述03字符串創(chuàng)建及輸出04字符串常見方法及操作05字符串應(yīng)用案例06任務(wù)測(cè)試與總結(jié)任務(wù)背景與目標(biāo)01一、任務(wù)背景
數(shù)字化時(shí)代,文本信息十分普遍。無論是聊天軟件對(duì)話、新聞文章,還是數(shù)據(jù)庫(kù)中的記錄,幾乎所有應(yīng)用程序都離不開文本數(shù)據(jù)。
Python在處理字符串方面具備顯著優(yōu)勢(shì),它提供了豐富的內(nèi)置功能,能夠高效地對(duì)文本數(shù)據(jù)進(jìn)行各種操作。?
二、任務(wù)目標(biāo)認(rèn)識(shí)Python字符串的基本概念、特點(diǎn)和適用場(chǎng)景;1.認(rèn)識(shí)Python字符串熟練掌握字符串的相關(guān)方法及操作,能夠進(jìn)行運(yùn)用字符串處理和轉(zhuǎn)換。2.掌握字符串操作3.掌握完成字符串格式化掌握字符串格式化方法并能靈活應(yīng)用,根據(jù)不同的輸出需求選擇進(jìn)行合適的格式化。字符串概述02一、字符串特點(diǎn)
字符串擁有的有序和不可變的兩個(gè)特點(diǎn)。
有序是指字符串里的字符間有序,可用下標(biāo)訪問;不可變是指字符串一旦被創(chuàng)建,內(nèi)容不可修改。Python提供豐富的字符串處理方法(如查找、替換、分割、連接、大小寫轉(zhuǎn)換等);
二、字符串適用場(chǎng)景
字符串主要用于文本處理、用戶交互、文本型數(shù)據(jù)及文件處理等場(chǎng)合。在用戶輸入輸出、文本分析、文本挖掘、自然語(yǔ)言處理等眾多環(huán)節(jié)發(fā)揮著重要作用。三、字符串編碼格式1.Unicode編碼
字符串類型(str)默認(rèn)采用的編碼,能夠表示世界上所有的字符。2.ASCII編碼
最基礎(chǔ)的字符編碼標(biāo)準(zhǔn),可表示英文字符、數(shù)字和一些特殊符號(hào),支持128個(gè)字符。
Python的字符串默認(rèn)兼容ASCII。
但只有是全部由ASCII字符組成的字符串才能直接以ASCII編碼進(jìn)行存儲(chǔ)和傳輸。
3.UTF-8、UTF-16和UTF-32編碼
能夠向后兼容ASCII碼,能表示世界上大多數(shù)語(yǔ)言的字符,在互聯(lián)網(wǎng)上最為常用,
但需要明確指定字節(jié)序(大端或小端)。UTF-8:變長(zhǎng)字符編碼,1個(gè)Unicode字符編碼占1到4個(gè)字節(jié);UTF-16:1個(gè)Unicode字符編碼占2或4個(gè)字節(jié);UTF-32:1個(gè)Unicode字符編碼占4個(gè)字節(jié)。4.GBK、GB2312和GB18030編碼專門用于表示中文字符。GB2312最早,GBK是GB2312的擴(kuò)展(支持更多的漢字和符號(hào));GB18030是GBK的超集(支持更多的字符和更廣泛的Unicode字符集)。四、轉(zhuǎn)義字符和原始字符
轉(zhuǎn)義字符:無法直接輸入的字符或具有特殊含義的字符。
它們以反斜杠(\)開始。下表是一些常見的轉(zhuǎn)義字符:格式含義格式含義\n換行符\v垂直制表\t制表符(Tab)\0空字符(NULL)\\反斜杠本身\xXX一個(gè)ASCII字符,其中XX是兩位十六進(jìn)制數(shù)\'單引號(hào)\"雙引號(hào)\uXXXX一個(gè)Unicode字符,其中XXXX是四位十六進(jìn)制數(shù)\r回車符\b退格符\UXXXXXXXX一個(gè)Unicode字符,其中XXXXXXXX是八位十六進(jìn)制數(shù)\f換頁(yè)符實(shí)例1:打印輸出中英文字符串。代碼print("Hello\n小@!")print("I\'mahumanoidrobot.")結(jié)果Hello小@!I'mahumanoidrobot.四、轉(zhuǎn)義字符和原始字符
原始字符(RawString):前面附加’r’或’R’的字符串。
原始字符串不做轉(zhuǎn)義字符處理,所有字符都是普通字符。
實(shí)例1:關(guān)于文件路徑的兩個(gè)寫法代碼#普通字符串中的反斜杠會(huì)被解釋為轉(zhuǎn)義字符path="C:\\Users\\Name\\Documents";print(path)#使用原始字符串,反斜杠不會(huì)被解釋raw_path=r"C:\Users\Name\Documents";print(raw_path)結(jié)果C:\Users\Name\DocumentsC:\Users\Name\Documents字符串創(chuàng)建及輸出03一、字符串創(chuàng)建
1.直接賦值創(chuàng)建
字符串定界符:?jiǎn)我?hào)、雙引號(hào)、三單引號(hào)或者三雙引號(hào)。直接使用“=”將一個(gè)字符串常量賦值給字符串變量。實(shí)例3:打印輸出以下代碼。代碼str1="Hello,小@!";str2='';print(str1,str2)結(jié)果Hello,小@!一、字符串創(chuàng)建
2.使用str()構(gòu)建字符串
通過str()函數(shù)將其他數(shù)據(jù)類型轉(zhuǎn)換為字符串,即可創(chuàng)建字符串對(duì)象。實(shí)例4:將數(shù)值數(shù)據(jù)和列表數(shù)據(jù)轉(zhuǎn)換為字符串。代碼num=123;str_num=str(num)print(str_num)my_list=['a','b','c']str_list=str(my_list)print(str_list)結(jié)果123['a','b','c']二、字符串輸出格式化
1.使用%操作符進(jìn)行格式化
實(shí)例5:使用%輸出。代碼x=1234.567print('%8.2f'%x)name='小@'major='人形機(jī)器人'score=466.46print('%3s'%name)print('%12s'%major)print('%5.1f'%score)結(jié)果1234.57
小@
人形機(jī)器人466.5圖4-5
使用%進(jìn)行字符格式化注意:①%前后都有空格,%前的格式串必須用引號(hào)引起來。②格式描述部分均要在英文半角狀態(tài)輸入。③當(dāng)實(shí)際寬度小于設(shè)置的最小寬度時(shí),在前面補(bǔ)空格。二、字符串輸出格式化
2.使用format()方法進(jìn)行格式化
實(shí)例5:使用%輸出。代碼name='小@';major='人形機(jī)器人';score=266.5print('我的名字:{0:8s},類別:{1:8s},智商值:{2:8.1f}分'.format('小@','人形機(jī)器人',266.5))print('我的名字:{0:3s},類別是:{1:2s},智商值:{2:5.1f}分'.format(name,major,score))print('我的名字:{name},類別:{major},智商值:{score}分'.format(name='小@',major='人形機(jī)器人',score=266.5))print('我的名字:{name:3s},類別:{major:2s},智商值:{score:5.1f}分'.format(name='小@',major='人形機(jī)器人',score=266.5))結(jié)果我的名字:小@,類別:人形機(jī)器人,智商值:266.5分我的名字:小@,類別:人形機(jī)器人,智商值:266.5分我的名字:小@,類別:人形機(jī)器人,智商值:266.5分我的名字:小@,類別:人形機(jī)器人,智商值:266.5分注意:①設(shè)置長(zhǎng)度有余量時(shí),輸出時(shí)數(shù)值前補(bǔ)空格、字符串后補(bǔ)空格,實(shí)現(xiàn)按指定長(zhǎng)度輸出。②
格式串中數(shù)據(jù)項(xiàng)的編號(hào)(冒號(hào)前的數(shù)字)須從0遞增逐項(xiàng)編號(hào)。③
格式描述部分均要在英文半角狀態(tài)輸入。格式描述部分均要在英文半角狀態(tài)輸入。二、字符串輸出格式化
3.Python3.6.x后新增的字符串格式化實(shí)例7:使用f進(jìn)行字符串格式化。代碼name='小@';major='人形機(jī)器人';score=266.5print(f'我的名字:{name},類別是:{major},智商值:{score}分')print(f'我的名字:{name:6s},類別:{major:2s},智商值:{score:8.1f}分')結(jié)果我的名字:小@,類別:人形機(jī)器人,智商值:266.5分我的名字:小@,類別:人形機(jī)器人,智商值:266.5分注意:①格式描述部分均要在英文半角狀態(tài)輸入。②設(shè)置長(zhǎng)度有余量時(shí),輸出時(shí)數(shù)值前補(bǔ)空格、字符串后補(bǔ)空格,實(shí)現(xiàn)按指定長(zhǎng)度輸出。字符串常用方法及操作04二、字符串切片
格式:
start為該段首字符下標(biāo),start默認(rèn)取字符串首字符;end為該段尾字符的下標(biāo)+1,end默認(rèn)取字符串最后一個(gè)字符(也設(shè)為-1);step即步長(zhǎng)即間隔,step默認(rèn)為1(可正可負(fù),不可為0)實(shí)例9字符串切片的獲取。代碼str='Hello!同學(xué)們好,我是人形機(jī)器人小@!'print(str[0:20:3],';',str[:20:3],';',str[0::3],';',str[::3],';',str[::-3])結(jié)果Hl同好是機(jī)小;Hl同好是機(jī)小;Hl同好是機(jī)小;Hl同好是機(jī)小;!人形我們!l作用:
從字符串的某一段中按固定間隔提取出若干字符構(gòu)新字符串。str[start:end:step]說明:三、字符串支持的運(yùn)算符表4-2
字符串運(yùn)算符注意:①字符串的比較是按照字典序的,。②常見類別的順序:"0"<"1"<...<"9"<"A"<"B"<...<"Z"<"a"<"b"<...<"z"<漢字四、字符串常用的方法及操作命令表4-3
字符串常見方法列表方法返回結(jié)果str.lower()將字符串中的所有大寫字符轉(zhuǎn)換為小寫字符str.upper()將字符串中的所有小寫字符轉(zhuǎn)換為大寫字符str.capitalize()把字符串的第一個(gè)字符大寫str.title()將字符串中的每個(gè)單詞的首字母大寫str.swapcase()把字符串中的大小寫互換str.strip([chars])去除字符串首尾的空白字符(或指定的字符)str.lstrip([chars])去除字符串左側(cè)的空白字符(或指定的字符)str.rstrip([chars])去除字符串右側(cè)的空白字符(或指定的字符)str.split([sep,maxsplit])根據(jù)指定的分隔符將字符串分割成列表str.join(iterable)將可迭代對(duì)象的元素連接成一個(gè)字符串,元素間用str分隔str.replace(old,new,count)將字符串中的舊子串替換為新子串,最多替換指定次數(shù)str.translate(table)根據(jù)一個(gè)轉(zhuǎn)換表替換字符str.find(sub[,start[,end]])返回子串在字符串最低索引(找不到返回-1)str.index(sub[,start[,end]])返回子串在字符串中最低索引(找不到引發(fā)異常ValueError)str.startswith(prefix[,start[,end]])檢查字符串是否以指定的前綴prefix開始str.endswith(suffix[,start[,end]])檢查字符串是否以指定的后綴suffix結(jié)束四、字符串常用的方法及操作命令表4-3
字符串常見方法列表方法返回結(jié)果str.isdigit()字符串中所有字符都是數(shù)字返回True,否則返回False。str.isalpha()字符串中所有字符都是字母返回True,否則返回False。str.isalnum()字符串中所有字符都是字母或數(shù)字返回True,否則返回False。str.isspace()字符串中所有字符都是空白字符返回True,否則返回False。str.islower()檢查字符串是否全部為小寫字母str.isupper()檢查字符串是否全部為大寫字母str.isidentifier()判斷字符串是否為合法的標(biāo)識(shí)符(變量名)str.isnumeric()判斷字符串是否為數(shù)字類型(整數(shù)或浮點(diǎn)數(shù))。str.zfill(width)用0填充字符串左側(cè),直到字符串的總長(zhǎng)度為指定的寬度。str.count(sub[,start[,end]])返回子串在字符串中出現(xiàn)的次數(shù)。str.center(width,fillchar='')字符串居中對(duì)齊寬度為width,用fillchar填充空白str.ljust(width,fillchar='')`字符串左對(duì)齊,寬度為width,用fillchar填充空白str.rjust(width,fillchar='')字符串右對(duì)齊,寬度為width,用fillchar填充空白str.zfill(width)字符串左對(duì)齊,用0填充空白到寬度width字符串實(shí)例案例05【案例15-1】使用字符串顯示提示信息和接收用戶輸入一、案例描述
小@與用戶的交互中使用字符串顯示提示信息和接收用戶輸入。例如當(dāng)用戶查詢小@的狀態(tài)時(shí),可得到一個(gè)包含狀態(tài)信息的字符串,如“當(dāng)前電量為80%,正在執(zhí)行數(shù)據(jù)采集任務(wù),已采集數(shù)據(jù)50組”等。通過字符串的切片、拼接等操作還可以對(duì)用戶輸入的指令進(jìn)行解析和處理,實(shí)現(xiàn)更加智能的交互。二、案例步驟詳解1.顯示提示信息使用字符串正確并完整的顯示相關(guān)的提示信息2.接受并解析用戶輸入使用字符串對(duì)用戶輸入進(jìn)行解析三、代碼示例及顯示結(jié)果#獲取小@的初始狀態(tài)status_message="當(dāng)前電量為80%,正在執(zhí)行數(shù)據(jù)采集任務(wù),已采集數(shù)據(jù)50組"#接收用戶輸入并解析user_input=""whileTrue:user_input0=input("請(qǐng)輸入您的指令(按Q/q鍵停止):")ifuser_input0.lower()=='q':breakuser_input+=user_input0print(f"您輸入的指令為:“{user_input}”,正在為您解析....")user_input=user_input.strip()parsed_input=user_input.startswith("查詢狀態(tài)")ifparsed_input==True:parsed_input=user_inputelse:parsed_input="未知命令!"print("解析后的指令:",parsed_input)ifparsed_input=="查詢狀態(tài)":print(status_message)else:print("未知指令,請(qǐng)重新輸入")案例顯示結(jié)果任務(wù)測(cè)試與總結(jié)06一、選擇題1.對(duì)于字符串`s="programming"`,如何獲取字符串中的第5個(gè)字符?()A.s.charAt(4) B.s[5] C.s[4] D.s.charAt(5)2.執(zhí)行代碼“pythons="python"print(s[1:4])”后輸出結(jié)果是?()A."pyt" B."yth" C."tho" D."pto“3.以下關(guān)于Python字符串的說法,錯(cuò)誤的有()A.字符串是不可變對(duì)象,一旦創(chuàng)建就不能被修改。B.可以使用方括號(hào)`[]`通過索引訪問字符串中的單個(gè)字符。C.字符串可以使用`%`運(yùn)算符進(jìn)行拼接。D.字符串的切片操作`s[a:b]`會(huì)返回一個(gè)新的字符串。4.下列哪個(gè)運(yùn)算符用于連接兩個(gè)字符串?
()A.+ B.- C.* D./5.下列哪個(gè)方法用于將字符串中的所有字符轉(zhuǎn)換為大寫?()A.capitalize() B.lower() C.upper() D.title()6.下列哪個(gè)方法用于去除字符串兩端的空白字符?()A.lstrip() B.strip() C.rstrip() D.trim()CBCACBTHEEND謝謝任務(wù)16
Python列表(一)程序設(shè)計(jì)基礎(chǔ)(Python語(yǔ)言)CONTENTS目錄01任務(wù)背景與目標(biāo)02列表概述03列表的創(chuàng)建與刪除04列表元素的訪問與遍歷05列表常用方法及操作06列表實(shí)例案例07任務(wù)測(cè)試與總結(jié)任務(wù)背景與目標(biāo)01一、任務(wù)背景
列表功能強(qiáng)大且靈活,可存儲(chǔ)不同類型數(shù)據(jù)。Python提供豐富的內(nèi)置函數(shù)和方法,能高效組織和管理數(shù)據(jù)。
本任務(wù)通過“小@巡航路線規(guī)劃”的實(shí)現(xiàn)學(xué)習(xí)列表:建立列表存儲(chǔ)巡航位置坐標(biāo),通過列表操作記錄路徑,提升小@在復(fù)雜環(huán)境中的移動(dòng)性能,為“數(shù)字中國(guó)”的智能物流、自動(dòng)化生產(chǎn)等提供思路。二、任務(wù)目標(biāo)1、理解Python列表的基本概念、特點(diǎn)和適用場(chǎng)景。2、熟練掌握列表的相關(guān)方法及操作。3、熟練掌握列表推導(dǎo)式的應(yīng)用。列表概述02一、列表概述
列表是由一系列按特定順序排列的元素組成,是Python中內(nèi)置的可變序列。
列表適用于存儲(chǔ)大量數(shù)據(jù),應(yīng)用非常廣泛。二、列表特點(diǎn)及適用場(chǎng)景1.列表具備有序性、可變性、可擴(kuò)展性等特點(diǎn)。可變性是指列表中的元素可以添加、刪除或修改;有序性是列表中的元素間具有固定的順序,可以通過索引訪問和操作;可擴(kuò)展性是指列表存儲(chǔ)的元素?cái)?shù)量不限,并可以增加新元素、自動(dòng)擴(kuò)展存儲(chǔ)空間。
2.列表常用于存儲(chǔ)和管理需頻繁進(jìn)行增刪改查的數(shù)據(jù)集,也是Python中的棧、隊(duì)列等數(shù)據(jù)結(jié)構(gòu)的基礎(chǔ)。列表創(chuàng)建及刪除03一、列表創(chuàng)建
1.使用“=”直接賦值創(chuàng)建
例如:使用“=”直接賦值創(chuàng)建列表代碼list=['人形機(jī)器人','小@',1.5,['10°','45°']]print(list)#創(chuàng)建不包含任何元素的空列表a_list的指令:a_list=[]print(a_list)結(jié)果['人形機(jī)器人','小@',1.5,['10°','45°']][]
列表名=[元素1,元素2,元素3,...,元素n]格式:注意:①一個(gè)列表中可以包含多種類型的元素;②空列表用一對(duì)空的方括號(hào)表示。一、列表創(chuàng)建
2.使用list()函數(shù)創(chuàng)建
例如:使用list()創(chuàng)建列表。代碼list1=list(range(1,10,2));print(list1)list2=list('hello小@');print(list2)list3=list({'name':'小@','type':'人形機(jī)器人'});print(list3)結(jié)果[1,3,5,7,9]['h','e','l','l','o','','小','@']['name','type']
列表名=list(數(shù)據(jù))格式:說明:數(shù)據(jù)可以是range對(duì)象、字符串以及元組、字典、集合等可迭代對(duì)象。二、列表刪除當(dāng)某列表不需要時(shí)可用命令“del列表變量”刪除。如:dellist1注意刪除時(shí)若指定的對(duì)象不存在會(huì)報(bào)錯(cuò);列表元素的訪問與遍歷04一、列表的訪問
列表是有序序列,可以進(jìn)行正向訪問和反向訪問(有下標(biāo)隨機(jī)訪問列表元素)。
例如:列表的訪問代碼importrandomlist=list(range(10))random.shuffle(list)#創(chuàng)建一個(gè)10以內(nèi)的整數(shù)列表并打亂順序print('生成的列表序列為:',list)print(list[0],list[2])#使用正向索引訪問元素print(list[-1],list[-7])#使用負(fù)向索引訪問元素list[3]=7#修改索引為3的元素print('修改索引為3的元素后:',list)結(jié)果生成的列表序列為:[9,6,7,5,8,2,1,3,4,0]9705修改索引為3的元素后:[9,6,7,7,8,2,1,3,4,0]
列表名[下標(biāo)]格式:二、列表的遍歷
1.使用for循環(huán)遍歷列表例如:遍歷列表的應(yīng)用代碼print('使用for語(yǔ)句生成結(jié)果如下:')list4=['小@',3,'小小@',7]foriteminlist4:print(item,end='\t')print()print('使用enumerate(list)函數(shù)生成結(jié)果如下:')list5=list(range(5))forindex,valueinenumerate(list5):print(f'索引:{index},值:{value}')
foriteminlist:
語(yǔ)句體#item暫存每個(gè)元素供逐一處理格式:
2.使用enumerate(list)函數(shù)遍歷列表格式:
forindex,iteminenumerate(list):
語(yǔ)句體#獲取列表的索引和值圖4-9
實(shí)例運(yùn)行結(jié)果列表常用方法及操作05一、列表對(duì)象常用方法方
法結(jié)
果append(x)添加元素x到列表末尾extend(iterable)將可迭代對(duì)象添加到列表末尾insert(i,x)插入元素到指定列表索引i處remove(x)刪除列表中第一次出現(xiàn)的元素x,若x不存在,則拋出異常pop([i])刪除并返回列表末尾元素,若指定了i值,則刪除并返回該處元素clear()清空列表dellst[i]使用del語(yǔ)句刪除列表lst中索引i處的元素index(x)返回列表中首次出現(xiàn)的元素x的索引,若x不存在,則拋出異常count(x)返回列表中元素x出現(xiàn)的次數(shù)sort(key=None,reverse=False)對(duì)原列表進(jìn)行排序,key指定排序依據(jù),reverse為True時(shí)表示降序sorted(iterable,key=None,reverse=False)返回一個(gè)新的已排序的列表,且不改變?cè)斜恚渌鼌?shù)同sortreverse()就地反轉(zhuǎn)原列表的元素順序copy()返回列表的一個(gè)淺拷貝表4-1
列表對(duì)象常用方法二、列表常見操作及運(yùn)算1.切片操作。
列表名[start:end:step]格式:說明:與字符串相似,列表有+、*、in運(yùn)算和>、<、==、>=、<=等比較運(yùn)算。2.列表運(yùn)算三、列表推導(dǎo)式
[表達(dá)式
for變量in可迭代對(duì)象
if條件]
格式:說明:對(duì)一個(gè)可迭代對(duì)象(如列表、元組、字符串等)進(jìn)行遍歷、過濾或代入表達(dá)式計(jì)算,從而快速生成特定的新列表。例如:用10以內(nèi)偶數(shù)的平方值構(gòu)造新列表代碼list6=[x**2forxinrange(10)ifx%2==0]print(list6)結(jié)果[0,4,16,36,64]任務(wù)16
Python列表(二)程序設(shè)計(jì)基礎(chǔ)(Python語(yǔ)言)CONTENTS目錄01任務(wù)背景與目標(biāo)02列表概述03列表的創(chuàng)建與刪除04列表元素的訪問與遍歷05列表常用方法及操作06列表實(shí)例案例07任務(wù)測(cè)試與總結(jié)列表實(shí)例案列06【案例16-1】小@的巡航路線坐標(biāo)定位一、案例描述創(chuàng)建列表存儲(chǔ)小@任務(wù)執(zhí)行過程中經(jīng)過的所有位置的坐標(biāo)。小@移動(dòng)時(shí)列表中添加新位置坐標(biāo),以供路徑回溯和分析、導(dǎo)航,提高小@的移動(dòng)效率和準(zhǔn)確性。二、案例步驟詳解1.初始化列表使用列表初始化各項(xiàng)數(shù)據(jù)2.添加新的坐標(biāo)使用列表的增加列表元素的操作為路徑增加新的坐標(biāo)三、代碼示例及顯示結(jié)果#1.初始化列表:首先我們創(chuàng)建一個(gè)空列表來存儲(chǔ)小@的初始位置坐標(biāo)。path=[(0,0)]#假設(shè)小@的初始位置是(0,0)#2.添加新的位置坐標(biāo):隨著小@的移動(dòng),我們可以使用append()方法向列表中添加新的位置坐標(biāo)。path.append((1,0));path.append((1,1))path.append((2,1));path.append((2,2))#3.打印路徑:我們可以打印出小@的移動(dòng)路徑,查看所有經(jīng)過的位置坐標(biāo)。print("小@的移動(dòng)路徑:",path)案例結(jié)果:小@的移動(dòng)路徑:[(0,0),(1,0),(1,1),(2,1),(2,2)]【案例16-2】小@的任務(wù)調(diào)度場(chǎng)景優(yōu)先級(jí)處理一、案例描述小@的任務(wù)列表可以查看指定任務(wù)的信息、修改任務(wù)信息、增加新任務(wù)、刪除已完成或要放棄的任務(wù)等操作。在生產(chǎn)調(diào)度中,小@需要根據(jù)生產(chǎn)線的實(shí)時(shí)需求動(dòng)態(tài)調(diào)整任務(wù)列表,確保高效運(yùn)行。二、案例步驟詳解1.初始化列表使用列表初始化各項(xiàng)數(shù)據(jù)2.查看列表查看特定任務(wù)的詳細(xì)信息3.修改列表增加新的任務(wù)到列表中,刪除已經(jīng)完成或不需要的任務(wù)三、代碼示例及顯示結(jié)果defget_task_details(tasks,index):returntasks[index]defupdate_task(tasks,index,priority,execution_time):tasks[index]['priority']=prioritytasks[index]['execution_time']=execution_timedefadd_task(tasks,new_task):tasks.append(new_task)defdelete_task(tasks,index):deltasks[index]#初始化任務(wù)列表tasks=[{'name':'任務(wù)1','priority':1,'execution_time':'2025-01-1710:00'},{'name':'任務(wù)2','priority':2,'execution_time':'2025-01-1711:00'},{'name':'任務(wù)3','priority':3,'execution_time':'2025-01-1712:00'}]task2=get_task_details(tasks,1)print("第二個(gè)任務(wù)的詳細(xì)信息:",task2)#查看第二個(gè)任務(wù)的詳細(xì)信息update_task(tasks,0,2,'2025-01-1710:30')#更新第一個(gè)任務(wù)的優(yōu)先級(jí)和執(zhí)行時(shí)間print("修改后的第一個(gè)任務(wù):",tasks[0])new_task={'name':'任務(wù)4','priority':4,'execution_time':'2025-01-1713:00'}#添加新的任務(wù)add_task(tasks,new_task)print("增加新任務(wù)后的任務(wù)列表:",tasks)delete_task(tasks,1)#刪除第二個(gè)任務(wù)print("刪除任務(wù)后的任務(wù)列表:",tasks)圖4-10
任務(wù)調(diào)度處理運(yùn)行結(jié)果【案例16-3】小@的任務(wù)列表處理一、案例描述小@收集的多個(gè)傳感器數(shù)據(jù)可以合并為一個(gè)數(shù)據(jù)列表,以便統(tǒng)一分析和處理;每次任務(wù)執(zhí)行后需清空任務(wù)列表,準(zhǔn)備下一次執(zhí)行;可以列表進(jìn)行遍歷操作。這里對(duì)小@采集的所有環(huán)境數(shù)據(jù)做標(biāo)準(zhǔn)化處理。,可為“數(shù)字中國(guó)”的數(shù)據(jù)分析和決策提供可靠支持。二、案例步驟詳解1.初始化列表使用列表初始化傳感器各項(xiàng)數(shù)據(jù)2.合并列表合并數(shù)據(jù)列表,并進(jìn)行標(biāo)準(zhǔn)化處理3.清空列表任務(wù)執(zhí)行結(jié)束后清空任務(wù)列表三、代碼示例及顯示結(jié)果temperature_data=[22.5,23.0,22.8,23.2,22.7];humidity_data=[45,47,46,48,47]air_quality_data=[50,52,51,53,52]combined_data=temperature_data+humidity_data+air_quality_dataprint("合并后的綜合數(shù)據(jù)列表:",combined_data)defstandardize_data(data):min_value=min(data);max_value=max(data)range_value=max_value-min_valuereturn[(x-min_value)/range_valueforxindata]standardized_data=standardize_data(combined_data)print("標(biāo)準(zhǔn)化后的綜合數(shù)據(jù)列表:",standardized_data)temperature_data.clear();humidity_data.clear()air_quality_data.clear();combined_data.clear()print("清空后的溫度數(shù)據(jù)列表:",temperature_data)print("清空后的濕度數(shù)據(jù)列表:",humidity_data)print("清空后的空氣質(zhì)量數(shù)據(jù)列表:",air_quality_data)print("清空后的綜合數(shù)據(jù)列表:",combined_data)示例運(yùn)行結(jié)果任務(wù)測(cè)試與總結(jié)07一、選擇題1.在Python中,以下關(guān)于列表的說法正確的是()A.列表中的元素必須是相同類型 B.列表是有序且可變的序列C.列表的索引從1開始 D.列表不能嵌套2.下列不能創(chuàng)建空列表的是()。A.my_list=[] B.my_list=list()C.my_list=[None]*0 D.my_list=03.my_list=[1,2,3,4,5],要獲取列表中的最后一個(gè)元素,應(yīng)該使用(
)A.my_list[0] B.my_list[5] C.my_list[-1] D.my_list[4]4.兩個(gè)列表list1=[1,2,3]和list2=[4,5,6],將它們合并成一個(gè)新列表?()A.list3=list1+list2 B.list3=list1.append(list2)C.list3=list1.extend(list2) D.list3=list1&list25.對(duì)于列表nums=[1,2,3,4,5],以下操作結(jié)果錯(cuò)誤的是(
)A.nums.append(6)后,nums為[1,2,3,4,5]B.nums.insert(0,0)后,nums為[0,1,2,3,4,5]C.nums.remove(3)后,nums為[1,2,4,5]D.nums.pop(3)后,nums為[1,2,3,5]BDCAATHEEND謝謝任務(wù)17
Python元組程序設(shè)計(jì)基礎(chǔ)(Python語(yǔ)言)CONTENTS目錄01任務(wù)背景與目標(biāo)02元組概述03元組創(chuàng)建與訪問04元組常用方法及操作05生成器表達(dá)式06元組實(shí)例案例07任務(wù)測(cè)試與總結(jié)任務(wù)背景與目標(biāo)01一、任務(wù)背景
在Python的數(shù)據(jù)類型寶庫(kù)中,元組看似簡(jiǎn)單但以它不可變的特性守護(hù)著數(shù)據(jù)的完整性,以有序的排列清晰地呈現(xiàn)著元素的邏輯關(guān)系,以異構(gòu)的包容性將不同類型的數(shù)據(jù)完美融合,為數(shù)據(jù)組織與處理提供了精妙的解決方案。接下來讓我們跟隨小@的步伐,一起揭開Python元組的神秘面紗,深入剖析其內(nèi)在本質(zhì),掌握其強(qiáng)大功能,領(lǐng)略其在編程實(shí)踐中的獨(dú)特魅力,開啟精彩紛呈的元組探索之旅,讓元組成為我們編程路上的得力助手,助力我們書寫更優(yōu)美、高效的代碼。二、任務(wù)目標(biāo)1.理解Python元組的基本概念、特點(diǎn)和適用場(chǎng)景。2.熟練掌握元組的相關(guān)方法及操作。3.明晰元組與列表的區(qū)別。元組概述02一、元組概述
元組與列表類似,也是由一系列按特定順序排列的元素組成的數(shù)據(jù)集。從基本數(shù)據(jù)存儲(chǔ)到復(fù)雜交互,從簡(jiǎn)單的程序邏輯到龐大的系統(tǒng)架構(gòu),元組都以其獨(dú)特的方式發(fā)揮著關(guān)鍵的作用。二、元組特點(diǎn)及適用場(chǎng)景(一)元組特點(diǎn)
元組屬于不可變有序序列,具有不可變性、有序性的特點(diǎn)。
與字符串相似,元組具有不可變性。元組像是戴了“枷鎖”的列表,只可以被訪問,不能被修改。一旦元組被創(chuàng)建,其中元素將無法再被增刪和修改,從而保證數(shù)據(jù)的完整性和安全性。
元組元素按照定義的順序存儲(chǔ),可以通過索引訪問。元組可將多個(gè)元素項(xiàng)組合成一個(gè)邏輯單元。一個(gè)元組可以包括不同類型的元素,如整數(shù)、浮點(diǎn)數(shù)、字符串、元組等,具有很強(qiáng)的靈活性。
相比列表,元組在內(nèi)存占用和性能上有一定優(yōu)勢(shì),特別是在不需要甚至不準(zhǔn)頻繁修改數(shù)據(jù)的情況下。(二)適用場(chǎng)景
對(duì)于要求只做序列化方式讀取而需防止被篡改的固定數(shù)據(jù)和常量集合來講,元組是一個(gè)很好的選擇。Python函數(shù)在返回多項(xiàng)結(jié)果時(shí),可將數(shù)據(jù)以元組方式封裝,防止數(shù)據(jù)被修改,方便調(diào)用者一次性接收、處理和傳遞給其他函數(shù)或模塊,實(shí)現(xiàn)有效的保護(hù)數(shù)據(jù)。因元組是不可變序列,還常用作字典的鍵,具體將在字典章節(jié)中介紹。元組創(chuàng)建及訪問03一、元組創(chuàng)建Python中提供了多種創(chuàng)建元組的方法。元組除了擁有不可改變的顯著特征之外,在表示方式上也與列表有明顯的區(qū)別:列表用中括號(hào),而元組用小括號(hào)。使用“=”直接賦值創(chuàng)建是其中一種方式,可以直接使用“=”將一個(gè)元組常量賦值給變量來創(chuàng)建元組對(duì)象,語(yǔ)法為元組變量=(元組元素1,元組元素2,...,元組元素n)創(chuàng)建多元素元組時(shí),如果創(chuàng)建的元組所包含的元素?cái)?shù)量超過1,最后一個(gè)元素后面的逗號(hào)可以省略,例如語(yǔ)句 t1=(1,2,3,'小@','機(jī)器人',12.6)創(chuàng)建多元素元組時(shí)還可以省略圓括號(hào),例如語(yǔ)句 t2=1,2,3,'小@','機(jī)器人',12.6”創(chuàng)建單元素元組時(shí),必需在元素后加逗號(hào),否則將導(dǎo)致數(shù)據(jù)類型錯(cuò)誤。一、元組創(chuàng)建正確用法例如語(yǔ)句t4=(1,)創(chuàng)建空元組例如語(yǔ)句t3=()使用tuple()函數(shù)也能創(chuàng)建元組,該函數(shù)可以將其他可迭代對(duì)象(如range對(duì)象)轉(zhuǎn)換為元組,例如代碼t5=tuple(range(1,7,2))創(chuàng)建元組(1,3,5),又如使用列表推導(dǎo)式創(chuàng)建元組包含10以內(nèi)所有偶數(shù)的平方數(shù)的語(yǔ)句t6=tuple([x**2forxinrange(11)ifx%2==0])二、元組訪問元組的訪問是通過索引值訪問一個(gè)或多個(gè)(切片)元素,支持正向及反向索引訪問,下標(biāo)表示方法和列表相同,即與列表有著相同的訪問方式,例如t7=(240101,'計(jì)算機(jī)網(wǎng)絡(luò)專業(yè)','張三','男',15,466.5)print(t7[0],t7[2],t7[5])輸出為240101張三466.5元組常用方法及操作04一、元組常用方法及操作元組支持切片操作,但只能用于訪問元素,不能修改元素,例如t1=tuple(range(1,13,2))print(t1[1:7:2])輸出為(3,7,11)
許多情況下元組可代替列表,但元組的方法比列表少,不支持append()、insert()等修改操作,用del命令能刪除整個(gè)元組但不能用刪除元組的元素,例如刪除上例的t1元組的命令為delt1。雖然元組本身元素不可變,但如果元組中某個(gè)元素為可變序列,該可變序列的元素是可以修改的,元組保持不變的是對(duì)可變序列的引用,例如t3=(0,[1,2],3,4)print(t3[1][0])t3[1][0]='小@’t3[1].extend(range(3))print(t3)輸出結(jié)果為1(0,['小@',2,0,1,2],3,4)元組運(yùn)算操作符同列表一樣,有拼接操作符+、序列重復(fù)操作符*、成員關(guān)系操作符(in和notin)和關(guān)系運(yùn)算符。一、元組常用方法及操作常用元組方法和處理元組的函數(shù)有多種,元組對(duì)象常用方法中,count(value)用于統(tǒng)計(jì)元組中某個(gè)值出現(xiàn)的次數(shù),例如(1,2,2,3).count(2)輸出為2
index(value,[start,[end]])用于找出元組中某個(gè)值第一個(gè)匹配項(xiàng)的索引位置,例如('a','b','c','d').index('b’)輸出為1常用于元組的函數(shù)中,len(tuple)獲取元組的長(zhǎng)度,例如len(1,2,3)輸出為3一、元組常用方法及操作max(tuple)獲取元組中的最大值(元素需可比較),例如max((1,3,2))輸出為3;min(tuple)獲取元組中的最小值(元素需可比較),例如min((1,3,2))輸出為1;sum(tuple)計(jì)算元組中所有數(shù)字元素的和,例如sum((1,2,3,4))輸出為10;sorted(tuple,key=None,reverse=False)對(duì)元組中的元素進(jìn)行排序,返回新列表,例如sorted((3,1,4,1,5))輸出為[1,1,3,4,5]tuple(iterable)將其他可迭代對(duì)象轉(zhuǎn)換為元組,例如tuple([1,2,3])輸出為(1,2,3)生成器表達(dá)式05一、生成器表達(dá)概述生成器表達(dá)式是創(chuàng)建生成器對(duì)象的一種簡(jiǎn)潔、高效的方法,其語(yǔ)法類似于列表推導(dǎo)式,但使用圓括號(hào)()而不是方括號(hào)[],具體語(yǔ)法形式為(expressionforiteminiterableifcondition)
其中expression是對(duì)每個(gè)元素進(jìn)行的操作,item是從可迭代對(duì)象iterable中取出的元素,condition(可選)是篩選條件且當(dāng)其為True時(shí)才會(huì)生成元素,例如語(yǔ)句(iiforiinrange(21)ifi%2!=0)定義生成器表達(dá)式,建立一個(gè)包含20以內(nèi)所有奇數(shù)的平方數(shù)的元組。二、生成器對(duì)象生成器表達(dá)式是一種特殊的迭代器,返回生成器對(duì)象,生成器對(duì)象不能直接使用,要將生成器對(duì)象轉(zhuǎn)化為列表或元組后才能使用,例如使用生成器表達(dá)式輸出20以內(nèi)的奇數(shù)的平方t=list(iiforiinrange(21)ifi%2!=0)t1=tuple(t)t2=list(t)print(t1)print(t2)輸出結(jié)果為(1,9,25,49,81,121,169,225,289,361)
[1,9,25,49,81,121,169,225,289,361]二、生成器對(duì)象和列表推導(dǎo)式類似,生成器對(duì)象也是有序序列,其遍歷方法是用next()函數(shù)或者循環(huán)語(yǔ)句,注意當(dāng)?shù)谝淮伪闅v后如再次訪問,需重新創(chuàng)建生成器對(duì)象,例如使用生成器對(duì)象依次輸出10以內(nèi)的奇數(shù),#next()方法gen=(iforiinrange(10)ifi%2!=0)print(next(gen))print(next(gen))二、生成器對(duì)象#for循環(huán)foritemingen:print(item)生成器表達(dá)式與列表推導(dǎo)式在形式上和用法上都很相似,不同之處主要有:寫法上生成器表達(dá)式使用圓括號(hào),而列表推導(dǎo)式使用方括號(hào);結(jié)果上生成器表達(dá)式生成一個(gè)生成器對(duì)象,列表推導(dǎo)式生成一個(gè)列表;操作方法上生成器表達(dá)式的數(shù)據(jù)不一次生成而是在需要時(shí)才生成,因此生成器表達(dá)式比列表推導(dǎo)式具高效,適合大數(shù)據(jù)量的場(chǎng)合。元組實(shí)例案列06【案例17-1】使用元組存儲(chǔ)相關(guān)的位置以及輸出一、案例描述創(chuàng)建一個(gè)元組來表示人形機(jī)器人小@的初始位置坐標(biāo)和方向信息,例如(0,0,'north'),其中前兩個(gè)元素表示位置的二維坐標(biāo)、第三個(gè)元素表示方向。本元組是后面巡航定位和確定朝向的前提,為后續(xù)移動(dòng)和任務(wù)執(zhí)行提供基礎(chǔ)。二、案例步驟詳解1.初始化信息使用元組初始位置信息2.存儲(chǔ)并輸出存于元組initial_position并打印輸出三、代碼示例及顯示結(jié)果#創(chuàng)建元組表示人形機(jī)器人小@的初始位置坐標(biāo)和方向信息x=input('請(qǐng)輸入小@的初始位置的x坐標(biāo):')y=input('請(qǐng)輸入小@的初始位置的y坐標(biāo):')direction=input('請(qǐng)輸入小@的初始位置的方向:')initial_position=(x,y,direction)#打印元組print("人形機(jī)器人小@的初始位置坐標(biāo)和方向信息:",initial_position)案例輸出:【案例17-2】使用元組進(jìn)行數(shù)據(jù)的分析一、案例描述將溫度傳感器和濕度傳感器采集的數(shù)據(jù)合并,組成一個(gè)包含多種信息的新元組,實(shí)現(xiàn)環(huán)境溫濕度情況的同時(shí)分析,統(tǒng)計(jì)某項(xiàng)指標(biāo)中特定值的出現(xiàn)次數(shù),如統(tǒng)計(jì)小@在執(zhí)行在執(zhí)行一批任務(wù)過程中向各個(gè)方向移動(dòng)的次數(shù)、統(tǒng)計(jì)分析小@的運(yùn)動(dòng)模式和工作情況。這些功能都可優(yōu)化任務(wù)調(diào)度和路徑規(guī)劃提供依據(jù)。二、案例步驟詳解1.初始化元組使用元組初始化各項(xiàng)數(shù)據(jù)2.合并元組使用相關(guān)操作合并元組3.分析數(shù)據(jù)統(tǒng)計(jì)相關(guān)數(shù)據(jù),得到分析結(jié)果三、代碼示例及顯示結(jié)果#溫度傳感器數(shù)據(jù)temperature_data=(22.5,23.0,22.8,23.0,22.7,23.1,23.8,23.0,22.8)#濕度傳感器數(shù)據(jù)humidity_data=(45,47,46,48,47)#合并兩個(gè)元組combined_data=temperature_data+humidity_data#打印合并后的元組print("合并后的溫濕度數(shù)據(jù):",combined_data)#統(tǒng)計(jì)溫度23.0出現(xiàn)的次數(shù)count_23_0=temperature_data.count(23.0)#打印統(tǒng)計(jì)結(jié)果print("溫度23.0出現(xiàn)的次數(shù):",count_23_0)案例輸出:任務(wù)測(cè)試與總結(jié)07一、選擇題1.以下關(guān)于元組的說法正確的是()A.元組是可變的,可以隨意修改其中的元素
B.元組使用方括號(hào)[]來定義C.元組是不可變的序列類型
D.元組中的元素必須是相同類型的數(shù)據(jù)2.有元組t=(1,2,3),如何訪問其中的元素2?()A.T(1) B.t(2) C.t[1] D.t[2]3.在以下代碼的輸出是什么?
t1=(1,2,3);t2=(4,5,6);t3=t1+t2;print(t3)A.(1,2,3) B.(4,5,6) C.(1,2,3,4,5,6) D.空集4.以下創(chuàng)建元組的方式正確的是()A.t=1,2,3 B.t=[1,2,3] C.t={1,2,3} D.t=‘1,2,3’5.若有元組t=(1,2,[3,4]),以下說法正確的是
()A.整個(gè)元組是不可變的,包括其中的列表
B.無法訪問其中列表的元素C.元組不可變,但其中的列表元素是可變的
D.元組的訪問不受限制一、選擇題6.在Python中,元組使用什么符號(hào)來定義()A.[] B.() C.{} D.‘’7.如何獲取元組中的某個(gè)元素()A.使用切片操作,如tp1[2] B.使用get方法,如tp1.get(2)C.直接使用元素的位置,如tp1(2) D.以上都不對(duì)8.有一個(gè)元組t=(1,2,3,4,5),想要獲取從第二個(gè)元素到第四個(gè)元素的子元組,應(yīng)該怎么做()A.t[1:4] B.t.slice(1,4) C.t.substring(1,4) D.t.get_subtuple(1,4)9.以下哪種數(shù)據(jù)類型與元組最相似,但又是可變的?A.字符串 B.列表 C.集合 D.字典10.元組和列表在性能上有什么主要區(qū)別?()A.元組的創(chuàng)建速度更快,因其是不可變的
B.列表的查找速度更快C.元組占用的內(nèi)存更少
D.以上A和C都正確一、選擇題11.在Python中,為什么經(jīng)常使用元組來返回多個(gè)值?()A.因?yàn)樵M是不可變的,所以更安全
B.元組占用的內(nèi)存更少C.元組可以方便地解包賦值給多個(gè)變量
D.所有以上原因12.以下哪個(gè)選項(xiàng)可以正確創(chuàng)建一個(gè)包含三個(gè)元素的元組?()A.tp1={1,2,3} B.tp1=[1,2,3] C.tp1=(1,2,3) D.tp1=1,2,3,13.已知tp1=(1,2,3,4,5),以下哪個(gè)操作會(huì)導(dǎo)致錯(cuò)誤()A.tp1=[] B.new_tuple=tp1+(6,7,8)C.print(tp1[1:3]) D.deltp1[2]14.已知tuple1=('a','b','c','d'),執(zhí)行a,b,*c=tuple1后,變量c的值?()A.('c','d') B.['c','d'] C.('c') D.('d’)15.以下哪個(gè)選項(xiàng)不能獲取tuple1=(10,20,30,40,50)所有元素的和?()A.sum(tp1) B.tp1.sum()C.total=0;foriintp1:total+=i;total D.reduce(lambdax,y:x+y,tp1)一、選擇題16.元組tup1=(1,)與tup2=(1)在Python中的區(qū)別是什么?()A.兩者沒有區(qū)別。B.tup1是一個(gè)包含單個(gè)元素的元組,而tup2是一個(gè)整數(shù)。C.tup1是一個(gè)整數(shù),而tup2是一個(gè)包含單個(gè)元素的元組。D.tup1有兩個(gè)元素,而tup2有一個(gè)元素。17.要將列表lst=[1,2,3]轉(zhuǎn)換為元組,應(yīng)使用哪個(gè)函數(shù)?()A.tuple(lst) B.list(tup)C.convert_to_tuple(lst) D.lst.totuple()18.以下哪個(gè)表達(dá)式可以創(chuàng)建包含單個(gè)元素None的元組?()A.tup=(None) B.tup=None, C.tup=(None,) D.tup={None}19.元組tup=(1,2,[3,4])中的嵌套列表[3,4]是否可以修改?()A.可以,因?yàn)樵M是不可變的這一規(guī)則不適用于嵌套列表B.不可以,因?yàn)樵M是不可變的,包括其內(nèi)部的所有元素C.可以,但只能修改嵌套列表內(nèi)部元素,不能直接w修改嵌套列表本身D.不確定,這取決于元組是如何創(chuàng)建的20.元組是否支持索引和切片操作?()A.只支持索引操作 B.只支持切片操作C.同時(shí)支持索引和切片操作 D.都不支持二、簡(jiǎn)答題1.請(qǐng)比較字符串、列表、元組三種有序序列的區(qū)別。2.請(qǐng)說明元組的數(shù)據(jù)特征和適用場(chǎng)景。THEEND謝謝任務(wù)18
Python集合程序設(shè)計(jì)基礎(chǔ)(Python語(yǔ)言)CONTENTS目錄01任務(wù)背景與目標(biāo)02集合概述03集合創(chuàng)建與訪問04集合常用方法及操作05集合實(shí)例案例06任務(wù)測(cè)試與總結(jié)任務(wù)背景與目標(biāo)01一、任務(wù)背景Python的集合(Set)是一種獨(dú)特而強(qiáng)大的數(shù)據(jù)結(jié)構(gòu),它以其簡(jiǎn)潔、高效、靈活的特性,在眾多場(chǎng)景中發(fā)揮著不可或缺的作用。它源自數(shù)學(xué),其數(shù)據(jù)處理更加符合人類的思維習(xí)慣。在日常生活中,我們經(jīng)常會(huì)遇到需要數(shù)據(jù)去重和查找的情形。例如檢查一組數(shù)據(jù)中是否唯一存在某個(gè)元素,這時(shí)集合的不重復(fù)特性體現(xiàn)其作用。本任務(wù)以小@的避障功能實(shí)現(xiàn)為依托,帶領(lǐng)同學(xué)們掌握集合的相關(guān)知識(shí)二、任務(wù)目標(biāo)1.理解Python集合的基本概念、特點(diǎn)和適用場(chǎng)景2.熟練掌握集合的相關(guān)方法和操作3.掌握常見的并集、交集、差集等集合運(yùn)算集合概述02一、集合概述Python中的集合類似數(shù)學(xué)中的集合,是一個(gè)存儲(chǔ)無序的、不重復(fù)的元素序列的容器,可包含0個(gè)或多個(gè)數(shù)據(jù)項(xiàng),因此,集合屬于可變無序序列。集合使用一對(duì)大括號(hào)(“{”和“}”)作為定界符,元素間用逗號(hào)分隔,一個(gè)集合中的元素必須唯一的。二、集合特點(diǎn)及適用場(chǎng)景(一)特點(diǎn)
集合中的元素是可變的,即可以添加或刪除,但其類型必須是不可變類型,如可以是整數(shù)、浮點(diǎn)數(shù)、字符串、元組等,不能是列表、字典、集合等可變數(shù)據(jù)類型。集合的元素是無序的且必須唯一的,不允許重復(fù)元素存在。(二)適用場(chǎng)景
集合元素的不重復(fù)性可保證元素的唯一性,主要用于數(shù)據(jù)去重;集合的子集檢測(cè)、集合間的并集、交集、差集、對(duì)稱差集運(yùn)算,可實(shí)現(xiàn)快速找出兩個(gè)集合之間的共同部分或不同部分可是做數(shù)據(jù)集合并、去重等。集合創(chuàng)建及訪問03一、集合創(chuàng)建與訪問集合使用一對(duì)大括號(hào)(“{”和“}”)括起來,創(chuàng)建方式主要有兩種。直接賦值創(chuàng)建是其中一種,可以直接使用“=”將一個(gè)非空集合賦值給變量,如代碼student={'240101','
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 福建省考荒島求生題目及答案
- 學(xué)校學(xué)籍管理制度
- 煙草初面面試題目及答案
- 養(yǎng)老院入住退住規(guī)定制度
- 養(yǎng)老院老人入住審批制度
- 養(yǎng)老院老人健康飲食服務(wù)質(zhì)量管理制度
- 養(yǎng)老院老年人權(quán)益保障制度
- 中考自擬考試題目及答案
- 長(zhǎng)護(hù)險(xiǎn)護(hù)理人員整改制度
- 銀行的控制制度
- 醫(yī)療數(shù)據(jù)倫理治理的國(guó)際經(jīng)驗(yàn)借鑒
- 浙江省《檢驗(yàn)檢測(cè)機(jī)構(gòu)技術(shù)負(fù)責(zé)人授權(quán)簽字人》考試題及答案
- 子午流注在護(hù)理中的應(yīng)用
- 新媒體評(píng)論管理制度規(guī)范(3篇)
- 劑量反應(yīng)曲線的統(tǒng)計(jì)分析方法-洞察及研究
- 2025年高職室內(nèi)藝術(shù)設(shè)計(jì)(室內(nèi)設(shè)計(jì))試題及答案
- 2025課堂懲罰 主題班會(huì):馬達(dá)加斯加企鵝課堂懲罰 課件
- 2025年初會(huì)職稱《經(jīng)濟(jì)法基礎(chǔ)》真題匯編
- Zippo2024美版年冊(cè)完整版
- 滬教版(2024)七年級(jí)英語(yǔ)下冊(cè)單詞默寫單背誦版
- 2025年宜昌化學(xué)真題試卷及答案
評(píng)論
0/150
提交評(píng)論