資源簡(jiǎn)介 (共34張PPT)第1節(jié) 字符串(1課時(shí))第3章 字符串、隊(duì)列和棧浙教版(2019) 選修一字符串的概念與特性01字符串的基本操作02通過(guò)實(shí)際問(wèn)題,恰當(dāng)?shù)剡x擇字符串結(jié)構(gòu),并總結(jié)字符串的概念、特性及基本操作。01熟練掌握字符串連接、切片等基本操作。03體驗(yàn)用字符串解決問(wèn)題的基本流程,逐步形成運(yùn)用字符串結(jié)構(gòu)解決問(wèn)題的思維方式和學(xué)科方法。02PART 01字符串的概念與特性新課導(dǎo)入看看一擁堵的城市交通圖新課導(dǎo)入想想一在限行規(guī)則下,如何快速獲取違章車輛。問(wèn)題小組合作、討論、設(shè)計(jì)分析違章車輛的算法。1.車牌號(hào)有什么特點(diǎn)?2.以哪種方式存儲(chǔ)車牌最佳 提問(wèn)新課導(dǎo)入車牌號(hào)是由數(shù)字和字母組成的。大量的有規(guī)律數(shù)據(jù)可以用字符串來(lái)存儲(chǔ)、處理相應(yīng)的數(shù)據(jù),實(shí)現(xiàn)對(duì)應(yīng)的功能。什么是字符串?字符串的概念與特性一概念字符串是由零個(gè)或多個(gè)字符組成的有限序列。字符來(lái)自哪里?128個(gè)字符大小寫英文字母數(shù)字控制字符標(biāo)點(diǎn)符號(hào)……文字字符字符串的概念與特性一一個(gè)字符串中可以包含多種字符集字符。GB18030字符集BIG5字符集Unicode字符集常見的字符集GBK字 符集ASCII字符集GB2312字符集添加標(biāo)題字符集是多個(gè)字符的集合,種類較多。每個(gè)字符集包含的字符個(gè)數(shù)不同。字符串的概念與特性一字符串中所包含的字符個(gè)數(shù)稱為字符串的長(zhǎng)度。“Hello World”雙引號(hào)或單引號(hào)加以界定空格也是一個(gè)字符包含11個(gè)字符,不包括雙引號(hào)字符串的概念與特性一在字符串的應(yīng)用中,會(huì)涉及一些特殊的字符串。空串:空串是不包含任何字符的串,其長(zhǎng)度為零。空格串:空格串是由空格組成的字符串,其長(zhǎng)度為空格字符的個(gè)數(shù)。一個(gè)字符串中任意個(gè)連續(xù)的字符序列稱為該字符串的子串。例如,字符串S為“HelloWorld”,字符串“H”,“He”,“el”,“ell”,“World”等都是S的子串。串S也是串S的子串。除S本身外,S的其他子串稱為S的真子串。字符串的概念與特性一特性(1)STEP有限序列性 字符串是一種線性表結(jié)構(gòu)。 數(shù)據(jù)元素個(gè)數(shù)是有限的。 由零個(gè)或多個(gè)字符組成。 可使用序列切片操作除第一個(gè)和最后一個(gè)元素外,其他元素都有一個(gè)唯一的前驅(qū)和后繼,有正索引標(biāo)號(hào)和負(fù)索引標(biāo)號(hào)。字符串“Hello World”的索引標(biāo)號(hào)字符串的概念與特性一(2)STEP可比性 在排序、詞頻統(tǒng)計(jì)、查找文本等操作中,需要對(duì)字符串進(jìn)行比較。 按ASCII碼值進(jìn)行比較 根據(jù)編碼的方式進(jìn)行比較比如字符串“word”與“work”,前3個(gè)字符一樣,第4個(gè)字符“k”的ASCII碼值大于字符“d”的ASCII碼值,因此字符串“work”大于字符串“word”。當(dāng)字符串中僅有數(shù)字字符時(shí),采用同樣的比較方式,如“9”大于“10”。對(duì)于含有非ASCII字符集的字符串,需要根據(jù)編碼的方式進(jìn)行比較。字符串的概念與特性一只需知道數(shù)據(jù)之間相互鏈接的順序探討與討論一數(shù)組與字符串有哪些區(qū)別?1.定義不同:字符數(shù)組是用來(lái)存儲(chǔ)一系列字符的數(shù)組。字符串是由一系列字符組成的字符序列。2.長(zhǎng)度不同:字符數(shù)組的大小在編譯時(shí)就必須確定,大小固定不可變。字符串在編譯時(shí)并沒(méi)有確定大小,一般通過(guò)字符串長(zhǎng)度來(lái)獲取它的長(zhǎng)度。3.元素不同:字符數(shù)組的元素是字符類型。字符串的元素是字符類型,并且在使用字符串時(shí),除第一個(gè)元素外,其他元素都為'\0'。4.存儲(chǔ)方式不同:字符數(shù)組一般通過(guò)數(shù)組下標(biāo)的方式訪問(wèn)。5.功能不同:字符數(shù)組除了存儲(chǔ)字符外,還可以執(zhí)行一些字符操作。字符串除了存儲(chǔ)字符外,還可以進(jìn)行字符串的一些操作,如拼接、拷貝、截?cái)唷⑦B接等操作。字符串的基本操作二字符串的操作04030201從字符串中提取子串將字符串轉(zhuǎn)換成小寫將字符串轉(zhuǎn)換成大寫字符串匹配創(chuàng)建常用單引號(hào)()、雙引號(hào)("")和三個(gè)單引號(hào)或雙引號(hào)來(lái)創(chuàng)建。例如:var1 = 'Hello World!'var2 = "Python"字符串的基本操作二01子串判斷子串判斷用于檢查字符串a(chǎn)是否為字符串S的子串。在Python中,可以用in運(yùn)算實(shí)現(xiàn),格式為“字符串a(chǎn) in 字符串S”。當(dāng)字符串S包含字符串a(chǎn)時(shí),值為True,否則值為False。Python程序展示用in運(yùn)算字符串的基本操作二02求子串用于從字符串中取出其子串。在Python中,可以用切片實(shí)現(xiàn)。格式為“字符串[位置i:位置j]”。S[i:j]表示取字符串S的索引下標(biāo)i至j–1范圍內(nèi)的子串S[6:11]為取字符串S中第7個(gè)至第11個(gè)位置上的字符,得到子串“World”。字符串的基本操作二02求子串使用[]來(lái)截取字符串。即:序列的索引和切片操作。格式為:字符串[start:stop:step],對(duì)字符串下標(biāo)[start,stop)進(jìn)行步長(zhǎng)為step的提取例如以S=“我愛(ài)學(xué)習(xí)Python”為例變式 表達(dá)式 值S[start:stop] 步長(zhǎng)為1時(shí),其中step可省略 S[0:2] “我愛(ài)”S[:stop] start為0時(shí),可省略 S[:1] “我”S[start:] stop為序列長(zhǎng)度時(shí),可省略 S[4:] “Python”S[:] start,stop為默認(rèn)值時(shí),可省略 S[:] “我愛(ài)學(xué)習(xí)Python”字符串的基本操作二只需知道數(shù)據(jù)之間相互鏈接的順序探討與討論一已知字符串a(chǎn)"人生苦短,我用Python”,則下列說(shuō)法正確的是( )A.a[5]的值為",",a[:5]的值為"人生苦短"B.a[5]的值為"我”,a[:5]的值為"人生苦短"C.a[-5]的值為"y",a[-5:]的值為" thon "D.a[-5]的值為"用",a[-5:]的值為"ython "C字符串的基本操作二03字符串的連接用于把兩個(gè)字符串連接在一起。在Python中,用“+”號(hào)連接符實(shí)現(xiàn)。格式為“字符串S1+字符串S2”。(1)(2)直接拼接直接將兩個(gè)字符串常量緊挨著寫在一起就可以了。例如:strname = "abc" "hig"- strname = “abchig”若有變量,則需【+】運(yùn)算符拼接【+】運(yùn)算符也能拼接字符串常量例如:str1=“Python”strname = str1 +“語(yǔ)言”strname = “Python語(yǔ)言”字符串的基本操作二03字符串的連接Python程序如下字符串的基本操作二Python中內(nèi)置了非常豐富的字符串函數(shù)與方法,可直接調(diào)用。函數(shù)和方法 功能 實(shí)例len(x) 統(tǒng)計(jì)字符串x中字符的個(gè)數(shù) x="Hello!"print(len(x))輸出為:6x.find(y) 返回字符串x中子串y出現(xiàn)的首字符下標(biāo),若找不到,則輸出–1 x="Hello!"y="llo"print(x.find(y))輸出為:2x.split(str="",num=string.count(str)) 以str分隔符切片 x,如果 num有指定值,那么僅分隔 num 個(gè)子串。切片得到的值存儲(chǔ)在列表中 x="I like Python"list=x.split()print(list)輸出:['I', 'like', 'Python']字符串的基本操作二Python中內(nèi)置了非常豐富的字符串函數(shù)與方法,可直接調(diào)用。函數(shù)和方法 功能 實(shí)例x.replace(old,new[, max]) 返回字符串中的old(舊字符串)替換成new(新字符串)后生成的新字符串,如果指定第三個(gè)參數(shù)max,那么替換不超過(guò)max次 x="is is is is"print(x.replace("is", "was"))print(x.replace("is", "was", 3))輸出:was was was waswas was was isx.upper() 把字符串x中的小寫字母轉(zhuǎn)換成大寫字母 x="I like Python"y=x.upper()print(y)輸出:I LIKE PYTHONx.lower() 把字符串x中的大寫字母轉(zhuǎn)換成小寫字母 x="I like Python"y=x.lower()print(y)輸出:i like python字符串的基本操作二例一回文串從左往右讀和從右往左讀都一樣的字符串稱為回文串,比如“客上天然居,居然天上客”。輸入一個(gè)字符串,寫一個(gè)程序,判斷該字符串是否為回文串。根據(jù)回文串的特點(diǎn),只要字符串左右對(duì)稱,它就是回文串。判斷字符串的左右對(duì)稱時(shí),可以先找到中間位置,采用切片操作,取出字符串的左半部分,存儲(chǔ)到字符串變量left中;再采用切片操作,取出右半部分并反轉(zhuǎn),存儲(chǔ)到字符串變量right中。若left與right相等,則為回文串。字符串的基本操作二用Python實(shí)現(xiàn)的程序如下:字符串的基本操作二可以直接利用Python語(yǔ)言中的字符串反轉(zhuǎn)命令[::–1],直接反轉(zhuǎn)原字符串,再與原字符串比較。程序如下:字符串的基本操作二例二機(jī)動(dòng)車違章識(shí)別系統(tǒng)隨著機(jī)動(dòng)車數(shù)量的增長(zhǎng),一些城市為了緩解交通壓力,采取了錯(cuò)峰出行的措施。錯(cuò)峰出行,即劃定區(qū)域在工作日的上下班高峰時(shí)段內(nèi),禁止掛有外地車牌和車牌尾號(hào)是某些數(shù)字的本地車牌的車輛行駛。某城市(車牌城市代碼為城B)在工作日的7:00—9:00、16:30—18:30內(nèi),周一限行車牌數(shù)字尾號(hào)1和9,周二限行車牌數(shù)字尾號(hào)2和8,周三限行車牌數(shù)字尾號(hào)3和7,周四限行車牌數(shù)字尾號(hào)4和6,周五限行車牌數(shù)字尾號(hào)5和0,外地車牌全部限行。現(xiàn)有某個(gè)路口一周的車輛通行信息,部分信息如表3.1.3所示。請(qǐng)編寫程序,輸出違章車輛的車牌號(hào)碼和車主姓名。字符串的基本操作二部分車輛通行信息表1.抽象與建模(1)(2)外地車牌且行駛時(shí)間在周一至周五。本地車牌且車牌數(shù)字尾號(hào)與限行數(shù)字尾號(hào)匹配。字符串的基本操作二1252.設(shè)計(jì)算法用字符串變量car存儲(chǔ)“車牌號(hào)碼”,字符串變量name存儲(chǔ)“車主姓名”,數(shù)值變量w存儲(chǔ)“星期”。在字符串car中,取前2個(gè)字符,判斷是否為“城B”。若是“城B”,則為本地車牌,執(zhí)行③;否則,為外地車牌,執(zhí)行④。重復(fù)①、②、③、④操作,直至所有車輛處理完畢。用字符串存儲(chǔ) “車 牌號(hào)碼”,通過(guò) 索引、字符串的比較等操作,確定車輛的城市代碼。如果是本地車牌,從右往左枚舉車牌號(hào)碼,找 到第一個(gè)數(shù)字,即為該車牌的數(shù)字尾號(hào)。再根據(jù)限行規(guī)則,與“星期”數(shù)據(jù)逐一比較。從右往左掃描字符串car,找到第一個(gè)數(shù)字,存入變量num中,代表車牌的數(shù)字尾號(hào)。用week存儲(chǔ)限行的星期字符串“12345”,代表周一至周五,t存儲(chǔ)該車的數(shù)字尾號(hào)在星期幾限行。根據(jù)數(shù)字尾號(hào)的限行規(guī)則,當(dāng)num=0時(shí),t=week[4] ;當(dāng)1≤num≤5時(shí),t=week[num–1] ;當(dāng)num>5時(shí),則t=week[9–num]。再將t與w值進(jìn)行比較,若相等,則車輛違章,輸出車牌號(hào)碼和車主姓名。3若w的值為6或7,則該車輛不違章;否則,車輛違章,輸出車牌號(hào)碼和車主姓名。4字符串的基本操作二3.編寫程序字符串的基本操作二1.有如下python程序段:s=“Python3.8”ans=“ ”for ch in s:if ch.isupper( ):ans+=ch.lower( )elif ch.islower( ):ans+=ch.upper( )else:ans+=chprint(ans)則程序執(zhí)行后,輸出的結(jié)果為( )A.Python B.Python3.8C.pYTHON D.pYTHON3.8D課堂小練三1.有如下程序段:S=“2022 Hope To Get Out Of The Epidemic”t=“”for i in s:if i<“a” or i>“z”:t=””t=i+tprint(t)該程序運(yùn)行后,最后顯示的內(nèi)容是( )A.cimedipE B.cimedip C.cimed D.cime2.有如下python程序段:a=input()t,s=0,0for c in a[::-1]:if c.isdigit():t=t*10+int(c)else:s+=tt=0print(t)當(dāng)輸入“123ABC456”時(shí),程序輸出結(jié)果為:( )A.321 B.654 C.123 D.975AA小結(jié)四小 結(jié)字符串的概念與特性字符串的基本操作字符串1.子串判斷2.求子串3.字符串的連接1.字符串的概念2.字符串的特性①有限序列性②字符串的可比性謝謝觀看第1節(jié) 字符串浙教版(2019) 選修一 展開更多...... 收起↑ 資源預(yù)覽 縮略圖、資源來(lái)源于二一教育資源庫(kù)