版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
PYTHON語言程序設(shè)計——字符串操作學(xué)會利用字符串格式化進行輸入輸出操作,會使用切片方式訪問字符串中的值,掌握一些常見的內(nèi)置函數(shù)的使用方法。format格式化輸出,字符串查找、替換、分割、拼接常用內(nèi)置函數(shù)的用法。字符串的切片方法及字符串排版。學(xué)習(xí)目標學(xué)習(xí)重點學(xué)習(xí)難點知識導(dǎo)圖5.1字符串格式化format格式化在format()函數(shù)中,使用“{}”符號來當作格式化操作符。
基本使用格式:<模板字符串>.format(<逗號分隔的參數(shù)>)
槽的內(nèi)部樣式:
{<參數(shù)序號>:<格式控制標記>},其中格式控制標記包括:<填充><對齊><寬度><,
><.精度><類型>6個字段設(shè)置項選項值說明<填充>“*“,”=“,”+“等單個字符,默認為空格<對齊>“^”,”<”,”>”分別代表居中對齊、左對齊、右對齊<寬度>一個整數(shù)形式,格式化后整個字符串的字符個數(shù)<,>整數(shù)或浮點數(shù)千位分隔符<.精度>浮點數(shù)小數(shù)部分的精度或字符串的最大輸出長度<類型>整數(shù)類型:b、c、d、o、x、X,浮點類型:e、E、f、%5.1字符串格式化5.1字符串格式化【例5-4】format()方法中默認順序與指定順序的使用。>>>'{}{}'.format('hello','JmsUniversity')‘helloJmsUniversity’>>>'{0}{1}{2}'.format('hello','Jms','University')‘helloJmsUniversity’>>>'{1}{2}{0}'.format('hello','Jms','University')'JmsUniversityhello'5.1字符串格式化【例5-5】format()方法對字符串的格式化。>>>'{:*^20}'.format('Pyhton')'*******Pyhton*******'>>>'{:=>20}'.format('Pyhton')'==============Pyhton'>>>'{1:*^10}{0:=>10}'.format('Hello','Pyhton')'**Pyhton**=====Hello'5.1字符串格式化【例5-6】format()方法對整數(shù)實數(shù)的設(shè)置。>>>'{:.3f}'.format(3.1415926)'3.142'>>>'{:+^20.3f}'.format(3.1415926)'+++++++3.142++++++++'>>>'{:+^10d}'.format(88)'++++88++++'5.1字符串格式化4.F-string格式化f-string在形式上是以
f
或
F
修飾符引領(lǐng)的字符串(f‘xxx’
或
F‘xxx’),以擴號
{}
標明被替換的字段;f-string在本質(zhì)上并不是字符串常量,而是一個在運行時運算求值的表達式。5.1字符串格式化【例5-7】F-string格式化演示。>>>name="Mike">>>age=20>>>f'Mynameis{name},andIam{age}yearsold.''MynameisMike,andIam20yearsold.'>>>pi=3.1415926>>>r=5>>>f'周長:{2*pi*r},面積:{pi*r*r}''周長:31.415926,面積:78.539815'01234567891011Python程
序
設(shè)
計
語
言-12-11
-10
-9
-8-7-6-5-4-3-2-15.2字符串的索引與切片操作字符串是一個序列,訪問字符串中的一個或多個字符可以通過索引和切片操作來完成。5.2字符串的索引與切片操作Python中字符串采用[頭下標:尾下標]的方式,這種訪問方式稱為“切片”。若有字符串s,s[頭下標:尾下標]表示在字符串s中取索引值從頭下標到尾下標(不包含尾下標)的子字符串。若頭下標缺省,表示從開始取子串;若尾下標缺省,表示取到最后一個字符;若頭下標和尾下標均缺省,則取整個字符串。5.2字符串的索引與切片操作【例5-8】字符串的索引訪問方式。>>>s='HelloPython'>>>s[0],s[-1],s[8],s[-2]('H','n','t','o')5.2字符串的索引與切片操作【例5-9】字符串的簡單切片訪問。>>>s='HelloPython'>>>s[0:5],s[6:-1]('Hello','Pytho')>>>s[:5],s[6:],s[:]('Hello','Python','HelloPython')5.2字符串的索引與切片操作字符串切片還可以設(shè)置取子串的順序
基本格式:[頭下標:尾下標:步長]。當步長值大于0的時候,表示從左向右取字符;當步長值小于0的時候,表示從右向左取字符。步長的絕對值減1,表示每次取字符的間隔是多少。5.2字符串的索引與切片操作【例5-10】字符串的復(fù)雜切片訪問。>>>s='HelloPython'>>>s[0:5:1],s[0:6:2]('Hello','Hlo')>>>s[0:6:-1],s[4:0:-1]('','olle')>>>s[4::-1],s[::-1],s[::-3]('olleH','nohtyPolleH','ntl')頭下標小于尾下標,無法反向取,返回空5.3內(nèi)置字符串常用操作方法1.字符串查找相關(guān)方法:find()、rfind()find()和rfind()方法分別用來查找一個字符串在另一個字符串指定范圍(默認是整個字符串)中首次和最后一次出現(xiàn)的位置,如果不存在則返回-1?!纠?-11】相關(guān)示例。>>>s='red,orange,yellow,green,blue,purple'>>>s.find('orange')4>>>s.find('e')1>>>s.rfind('e’)34>>>s.find('white')-15.3內(nèi)置字符串常用操作方法5.3內(nèi)置字符串常用操作方法2.字符串替換方法:replace()replace()方法用來替換字符串中指定字符或子字符串,每次只能替換一個字符或子串。該方法不修改原字符串,而是返回一個新字符串。
>>>s='東京奧運會中國體育代表團收獲38金32銀18銅'
>>>s.replace('東京','第32屆夏季')
'第32屆夏季奧運會中國體育代表團收獲38金32銀18銅’
>>>s'東京奧運會中國體育代表團收獲38金32銀18銅'5.3內(nèi)置字符串常用操作方法3.字符分隔方法:split()、rsplit()split()和rsplit()方法分別用來以指定字符為分隔符,從原字符串左端和右端開始將其分隔成多個字符串,也可以指定最大分隔次數(shù)(maxsplit),并返回包含分隔結(jié)果的列表。默認按空白符號分隔字符串,如空格,換行符,制表符等。5.3內(nèi)置字符串常用操作方法【例5-12】相關(guān)示例。>>>s='red,orange,yellow,green,blue,purple'>>>s.split(',')['red','orange','yellow','green','blue','purple']>>>t='Iamachineseboy'>>>t.split()['I','am','a','chinese','boy']>>>t.split(maxsplit=2)['I','am','achineseboy']>>>t.rsplit(maxsplit=2)['Iama','chinese','boy']5.3內(nèi)置字符串常用操作方法4.字符串連接方法:join()字符串的join()方法用來將列表中多個字符串進行連接,并在相鄰兩個字符串之間插入指定字符,返回新字符串。
>>>s=['I','am','a','chinese','boy']
>>>''.join(s)
'Iamachineseboy'
>>>'_'.join(s)
'I_am_a_chinese_boy'5.3內(nèi)置字符串常用操作方法4.字符串連接方法:join()字符串的join()方法用來將列表中多個字符串進行連接,并在相鄰兩個字符串之間插入指定字符,返回新字符串。
>>>s=['I','am','a','chinese','boy']
>>>''.join(s)
'Iamachineseboy'
>>>'_'.join(s)
'I_am_a_chinese_boy'5.3內(nèi)置字符串常用操作方法5.大小寫字符轉(zhuǎn)換方法:lower()、upper()、capitalize()、title()、swapcase()lower()、upper()方法將字符串轉(zhuǎn)換成小寫字符串和大寫字符capitalize()方法將字符串首字母大寫;title()方法將字符串中的每個單詞首字母大寫;swapcase()方法將字符串中的字符大小寫互換。5.3內(nèi)置字符串常用操作方法6.判斷類字符串相關(guān)方法:isupper()、islower()、isdigit()、isalnum()、isalpha()方法用來判斷字符串是否為大寫字母、小寫字母、數(shù)字、有效字符或數(shù)字、字母組成。7.其它字符串相關(guān)方法:strip()、rstrip()、lstrip()strip()、rstrip()、lstrip()方法分別用來刪除兩端、右端、左端連續(xù)的空字符或指定字符。5.3內(nèi)置字符串常用操作方法【例5-16】相關(guān)示例。>>>s='HelloPython'>>>s.strip()'HelloPython'>>>s.lstrip()'HelloPython'>>>s.rstrip()'HelloPython'>>>'aabbccddeeffgg'.strip('af')'bbccddeeffgg'>>>'aabbccddeeffgg'.strip('afg')'bbccddee'5.3內(nèi)置字符串常用操作方法1.內(nèi)置字符串運算符“+”、“*”、“in”運算符分別對字符串進行拼接、復(fù)制、判斷是否事字串。>>>'aaa'+'bbb''aaabbb'>>>'ab'*3'ababab'>>>'lo'in'Hellopython'True5.4內(nèi)置字符串運算符及處理函數(shù)5.4內(nèi)置字符串運算符及處理函數(shù)函數(shù)描
述len(x)返回字符串x的長度str(x)將任意類型x所轉(zhuǎn)換為字符串類型chr(x)返回Unicode編碼為x的字符ord(x)返回字符x的Unicode編碼值hex(x)將整數(shù)x轉(zhuǎn)換為十六進制數(shù),并返回其小寫字符串形式oct(x)將整數(shù)x轉(zhuǎn)換為八進制數(shù),并返回其小寫字符串形式2.內(nèi)置字符串處理函數(shù)5.4內(nèi)置字符串運算符及處理函數(shù)【例5-17】字符串處理函數(shù)示例。>>>len('中國驕傲!')5>>>str(123)'123'>>>hex(15)'0xf'>>>oct(15)'0o17'>>>chr(97)'a'>>>ord('A')655.5經(jīng)典案例分析【例5-18】給定英文原句"HelloJmsUniversity"將給定的英文字符串按單詞反轉(zhuǎn)后生成新順序單詞字符串:"UniversityJmsHello"。分析:1)拆分每個單詞split()
s1=s.split()['Hello','Jms','University’]2)逆序切片s2=s1[::-1]['University','Jms','Hello']3)連接單詞join()s3="".join(s2)'UniversityJmsHello'5.5經(jīng)典案例分析【例5-18】給定英文原句"HelloJmsUniversity"將給定的英文字符串按單詞反轉(zhuǎn)后生成新順序單詞字符串:"UniversityJmsHello"。s="HelloJmsUniversity"s1=s.split()s2=s1[::-1]s3="".join(s2)print(s3)5.5經(jīng)典案例分析【例5-19】輸入一個小于等于12的整數(shù)n,逐個輸出字符串'人生苦短,我用python'中前n個字符,每個字符后輸出一個英文狀態(tài)下的逗號。分析:5.5經(jīng)典案例分析【例5-19】輸入一個小于等于12的整數(shù)n,逐個輸出字符串'人生苦短,我用python'中前n個字符,每個字符后輸出一個英文狀態(tài)下的逗號。分析:1)輸入整數(shù)并轉(zhuǎn)換成整型input()eval()
n=eval(input())2)賦值
s='人生苦短,我用python'4)循環(huán)打印for、print()
foriinrange(n):print(s[i],end=',')5.5經(jīng)典案例分析【例5-19】輸入一個小于等于12的整數(shù)n,逐個輸出字符串'人生苦短我用python'中前n個字符,每個字符后輸出一個英文狀態(tài)下的逗號。n=eval(input())s='人生苦短我用python'foriinrange(n):print(s[i],end=',')5.5經(jīng)典案例分析【例5-20】輸入一個字符串,將字符串中所有的數(shù)字字符取出來產(chǎn)生一個新的字符串str1='ui87uf+.34kfj490WD&*'str2=''forxinstr1:if'0'<=x<='9':str2+=xprint(str2)5.5經(jīng)典案例分析【例5-21】輸入兩個字符串,從第一字符串中刪除第二個字符串中所有的字符。例如,輸入”Iamachineseboy.”和”abc”,輸出“Imhineseoy.”s1=input('s1:')s2=input('s2:')foriins1:ifiins2:s1=s1.replace(i,'')print(s1)5.5經(jīng)典案例分析【例5-22】輸入注冊名稱,判斷注冊名稱是否合法(用注冊名必須包含且只能包含數(shù)字和字母,并且第一個字符必須是大寫字母)name=input('請輸入用戶名:')flag=flag1=flag2=Falseforxinname:if'a'<=x<='z':flag=Trueelif'A'<=x<='Z':flag1=Trueelif'0'<=x<='9':flag2=Trueelse:print('數(shù)據(jù)不合法!')breakifflag==flag1==flag2==True:print('數(shù)據(jù)合法')else:print('數(shù)據(jù)不合法!')5.5經(jīng)典案例分析【例5-23】英文分詞:對任意英文文章進行分詞統(tǒng)計,輸出出現(xiàn)頻率最高的前十個單詞。假設(shè)有英文文章OneLife.txt。具體要求:1)使用open()函數(shù)和read()方法實現(xiàn)2)將所有的大寫字母都轉(zhuǎn)換為小寫字母,使用lower()方法3)將短文中的標點符號用空格代替,為后面的分詞作準備。標點符號如下:"《》,.;!?"4)進行英文單詞分割成列表5)定義字典用來存放統(tǒng)計的單詞get()方法6)對統(tǒng)計的單詞進行排序(降序)7)前十的單詞按格式輸出,輸出格式'{:8}{:2}'.format(key,value)5.5經(jīng)典案例分析【例5-23】英文分詞:對任意英文文章進行分詞統(tǒng)計,輸出出現(xiàn)頻率最高的前十個單詞。假設(shè)有英文文章OneLife.txt。
分析:{}'you’:0'have’:0'only’:0,,,5.5經(jīng)典案例分析【例5-23】英文分詞:對任意英文文章進行分詞統(tǒng)計,輸出出現(xiàn)頻率最高的前十個單詞。假設(shè)有英文文章OneLife.txt。
分析:{}'you’:1'have’:0'only’:0,,,5.5經(jīng)典案例分析【例5-23】英文分詞:對任意英文文章進行分詞統(tǒng)計,輸出出現(xiàn)頻率最高的前十個單詞。假設(shè)有英文文章OneLife.txt。分析:{}'you’:1'have’:1'only’:0,,,5.5經(jīng)典案例分析【例5-23】英文分詞:對任意英文文章進行分詞統(tǒng)計,輸出出現(xiàn)頻率最高的前十個單詞。假設(shè)有英文文章OneLife.txt。分析:{}'you’:2'have’:1'only’:0,,,5.5經(jīng)典案例分析分析:1)使用open()函數(shù)和read()方法實現(xiàn)
fp=open('OneLife.txt','r',encoding='utf-8’)txts=fp.read()fp.close()2)將所有的大寫字母都轉(zhuǎn)換為小寫字母,使用lower()方法
txts=txts.lower()3)將短文中的標點符號用空格代替,為后面的分詞作準備。標點符號如下:"《》,.;!?“chars="《》,.;!?"forcharinchars:txts=txts.replace(char,'')5.5經(jīng)典案例分析4)進行英文單詞分割成列表lstxt=txts.split()5)定義字典用來存放統(tǒng)計的單詞get()方法newchar={}foriteminlstxt:newchar[item]=newchar.get(item,0)+16)對統(tǒng)計的單詞進行排序(降序)items=list(newchar.items())items.sort(key=lambdax:x[1],reverse=True)7)前十的單詞按格式輸出,輸出格式'{:8}{:2}'.format(key,value)foriinrange(10):key,value=items[i]print('{:8}{:2}'.format(key,value))5.5經(jīng)典案例分析fp=open('OneLife.txt','r',encoding='utf-8')#讀取文件,fp數(shù)據(jù)類型為字符串txts=fp.read()#讀取數(shù)據(jù)fp.close()txts=txts.lower()#將大寫字母全部轉(zhuǎn)換成小寫字母#將標點符號去掉chars="《》,.;!?"forcharinchars:txts=txts.replace(char,'')lstxt=txts.split()#進行分割形成列表newchar={}#空字典foriteminlstxt:newchar[item]=newchar.get(
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年佛山市投資促進中心招聘招商工作人員的備考題庫及完整答案詳解一套
- 2025年重慶機床(集團)有限責任公司招聘40人備考題庫附答案詳解
- 2025年廣州市花都區(qū)新雅街嘉行學(xué)校臨聘教師招聘備考題庫及參考答案詳解一套
- 2025年勞務(wù)派遣人員招聘(派遣至浙江大學(xué)物理學(xué)院)備考題庫及1套參考答案詳解
- 2025年武義縣婦幼保健院招聘護理、康復(fù)技師、B超室打字員及導(dǎo)醫(yī)備考題庫及一套答案詳解
- 2025年北京積水潭醫(yī)院貴州醫(yī)院赴省外知名高校引才48人備考題庫及一套完整答案詳解
- 2025年青海新泉財金投資管理有限公司招聘備考題庫及參考答案詳解一套
- 西安電子科技大學(xué)通信工程學(xué)院2025年外聘人員一般崗位招聘備考題庫有答案詳解
- 2025年河南醫(yī)學(xué)高等專科學(xué)校公開招聘高層次人才備考題庫完整答案詳解
- 2025年北京老年醫(yī)院面向應(yīng)屆畢業(yè)生公開招聘43人備考題庫及完整答案詳解1套
- 2025內(nèi)蒙古鄂爾多斯東勝區(qū)消防救援大隊招聘鄉(xiāng)鎮(zhèn)(街道)消防安全服務(wù)中心專職工作人員招聘3人考試筆試模擬試題及答案解析
- 2025濟寧市檢察機關(guān)招聘聘用制書記員(31人)筆試考試參考試題及答案解析
- 2025年安全總監(jiān)年終總結(jié)報告
- 安順市人民醫(yī)院招聘聘用專業(yè)技術(shù)人員筆試真題2024
- 廚師專業(yè)職業(yè)生涯規(guī)劃與管理
- 2025年10月自考00688設(shè)計概論試題及答案
- 六西格瑪設(shè)計實例
- 海南檳榔承包協(xié)議書
- 工業(yè)交換機產(chǎn)品培訓(xùn)
- 2025浙江溫州市龍港市國有企業(yè)招聘產(chǎn)業(yè)基金人員3人筆試歷年備考題庫附帶答案詳解試卷3套
- 《十五五規(guī)劃》客觀測試題及答案解析(二十屆四中全會)
評論
0/150
提交評論