日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

手把手教你学Python:一文看懂字符串基本操作

發(fā)布時間:2025/3/15 python 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 手把手教你学Python:一文看懂字符串基本操作 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.


導(dǎo)讀:很多程序員處理文本而不是數(shù)字。文本包含字符:字母、數(shù)字、標(biāo)點(diǎn)符號、空格等。字符串是一系列字符。例如,字符串"Hello"是一個包含5個字符的序列。


作者:凱·霍斯特曼(Cay Horstmann),蘭斯·尼塞斯(Rance Necaise)

如需轉(zhuǎn)載請聯(lián)系大數(shù)據(jù)(ID:hzdashuju)




01 字符串類型


你在輸出語句的介紹中已經(jīng)見過字符串了,例如


print("Hello")?


字符串可以保存在變量中


greeting?=?"Hello"


然后就可以在需要的時候像數(shù)字值一樣來訪問:


print(greeting)


字符串常量表示一個特定的字符串(例如"Hello"),就像數(shù)字常量(例如2)表示一個特定的數(shù)字一樣。在Python中,字符串常量由包含在一對單引號或雙引號中的字符序列來指定。


print("This?is?a?string.",?'So?is?this.')?'So?is?this.')?


因?yàn)樵试S使用兩種界定符,Python可以很容易地在字符串中包含撇號或者引號。


message?=?'He?said?"Hello"?'?


們使用雙引號來包含字符串,因?yàn)檫@在很多其他編程語言中是一個通用的約定。然而,在交互式Python解釋器環(huán)境中總是使用單引號來顯示字符串。


字符串中字符的數(shù)量稱作字符串的長度。例如,"Harry"的長度是5。你可以使用Python內(nèi)置函數(shù)len來計(jì)算一個字符串的長度:


length?=?len("World!")???#?長度為6#?長度為6


長度為0的字符串稱作空字符串,它不包含字符,寫作:


""


或者


''



02 連接與重復(fù)


給定兩個字符串,例如"Harry"和"Morgan",你可以把它們連接成一個字符串,結(jié)果中包含兩個字符串中的所有字符,其中第一個字符串中的字符在前,第二個字符串中的字符在后。在Python中,你可以使用+運(yùn)算符連接兩個字符串。例如:


firstName?=?"Harry"?lastName?=?"Morgan"?name?=?firstName?+?lastName
lastName?=?"Morgan"?
name?=?firstName?+?lastName


結(jié)果字符串為


"HarryMorgan"?


如果你想在名和姓之間使用空格進(jìn)行分隔該怎么做?沒問題:


name?=?firstName?+?"?"?+?lastName


這個語句連接了3個字符串:firstName、字符串常量" "和lastName。結(jié)果是


"Harry?Morgan"


如果+運(yùn)算符的左側(cè)或右側(cè)的表達(dá)式是字符串,那么另一側(cè)的表達(dá)式也必須是字符串,否則會導(dǎo)致語法錯誤。你不能把字符串和數(shù)字連接到一起。


你也可以通過對一個字符串進(jìn)行多次重復(fù)來產(chǎn)生字符串。例如,假設(shè)你需要打印一行破折線。不需要指定一個包含50個破折線的字符串常量,你可以使用*運(yùn)算符來創(chuàng)建一個包含50個"-"字符的字符串。例如,


dashes?=?"-"?*?5050


結(jié)果是字符串


"-------------------------------------------------"


任意長度的字符串都可以使用*運(yùn)算符進(jìn)行重復(fù)。例如,語句


message?=?"Echo..."?print(message?*?5)?
print(message?*?5)?


顯示


Echo...Echo...Echo...Echo...Echo...


與字符串相乘的因子必須是整數(shù)值,并且可以出現(xiàn)在*運(yùn)算符的任意一側(cè),但是習(xí)慣上把字符串放在左側(cè)而整數(shù)因子放在右側(cè)。



03 轉(zhuǎn)換數(shù)字和字符串


有時候需要把數(shù)字轉(zhuǎn)換為字符串。例如,假設(shè)你需要在字符串尾部追加一個數(shù)字。你不能連接字符串和數(shù)字:


name?=?"Agent?"?+?1729???#?錯誤:只能連接字符串1729???#?錯誤:只能連接字符串


因?yàn)樽址B接只能在兩個字符串之間進(jìn)行,我們必須首先把數(shù)字轉(zhuǎn)換為字符串。


為了生成數(shù)字值的字符串表示,使用函數(shù)str。語句


str(1729)


把整數(shù)1729轉(zhuǎn)換為"1729",函數(shù)str解決了我們的問題:


id?=?1729?name?=?"Agent?"?+?str(id)?
name?=?"Agent?"?+?str(id)?


函數(shù)str也可以用來把浮點(diǎn)數(shù)轉(zhuǎn)換為字符串。


反過來,為了把包含數(shù)字的字符串轉(zhuǎn)換為數(shù)字值,可以使用函數(shù)int或float:


id?=?int("1729")?price?=?float("17.29")?
price?=?float("17.29")?


當(dāng)字符串來自于用戶輸入時,這個轉(zhuǎn)換很重要。


傳遞給函數(shù)int或float的字符串只能包含隱含類型的常量。例如,語句


value?=?float("17x29")


會產(chǎn)生運(yùn)行時錯誤,因?yàn)樽帜?#34;x"不是浮點(diǎn)數(shù)常量的一部分。


前面和后面的空白字符會被忽略:


int(" 1729 ")


仍然是1729。



04 字符串與字符


字符串是Unicode字符的序列。你可以使用字符串和位置來訪問單個字符,這個位置稱作字符的索引


第1個字符的索引是0,第2個的索引是1,以此類推。



通過特殊的下標(biāo)記號可以訪問單個字符,位置被放置在方括號中。例如,變量name定義如下:


name?=?"Harry"?


語句


first?=?name[0]last?=?name[4]
last?=?name[4]


從字符串中提取了兩個不同的字符。第一個語句提取出字符串的第一個字符"H"并存入變量first。第二個語句提取位置4上面的字符,也就是最后一個字符,然后存入變量last。



索引值必須位于字符位置的合法范圍,否則會在運(yùn)行時拋出下標(biāo)越界異常。函數(shù)len可以用來確定最后一個索引,或者字符串的最后一個字符。


pos?=?len(name)?-?1???#?"Harry"的長度是5?last?=?name[pos]??????#?last被設(shè)置為"y"?#?"Harry"的長度是5?
last?=?name[pos]??????#?last被設(shè)置為"y"?


下面的程序演示了上面概念的用法,程序使用字符串初始化了兩個變量,一個使用你的名字,另一個使用你認(rèn)為比較重要的人的,然后輸出首字母。


操作first[0]得到包含first第一個字母的字符串,second[0]獲取第二個名字的首字母。最后,使用字符串"&"連接兩個單字母的字符串得到長度為3的字符串initials(見圖2-4)。


▲圖2-4 創(chuàng)建首字母字符串


##?#??本程序用來輸出一對首字母#?#?設(shè)置兩個名字first?=?"Rodolfo"?second?=?"Sally"?#?計(jì)算和顯示首字母initials?=?first[0]?+?"&"?+?second[0]?print(initials)
#??本程序用來輸出一對首字母
#?

#?設(shè)置兩個名字
first?=?"Rodolfo"?
second?=?"Sally"?

#?計(jì)算和顯示首字母
initials?=?first[0]?+?"&"?+?second[0]?
print(initials)


字符串運(yùn)算示例見表2-7。


語句

結(jié)果

說明

string = "Py"

string = string + "thon"

string被設(shè)置位”Python”

當(dāng)作用于字符串時,+表示連接。

print("Please" + " enter your name: ")

打印

Please enter your name:

使用續(xù)行符打斷無法在一行內(nèi)編寫的字符串。

team = str(49) + "ers"

team被設(shè)置為”49ers”

因?yàn)?9是一個整數(shù),必須被轉(zhuǎn)換位字符串。

greeting = "H & S"

n = len(greeting)

n被設(shè)置為5

在統(tǒng)計(jì)數(shù)量時每個空格都作為一個字符。

string = "Sally"

ch = string[1]

ch被設(shè)置為"a"

注意,第一個下標(biāo)是0。

last = ? string[len(string) - 1]

last被設(shè)置為包含string中最后一個字符的字符串

最后一個字符的位置是len(string) ? - 1。

表2-7 字符串運(yùn)算



05 字符串方法


在計(jì)算機(jī)編程中,對象是表示具有特定行為的值的實(shí)體。值可以很簡單,像字符串。也可以很復(fù)雜,像圖形窗口或數(shù)據(jù)文件。現(xiàn)在,你需要掌握適用于字符串對象的一小部分內(nèi)容。


對象的行為通過方法來指定。方法和函數(shù)很類似,是執(zhí)行特定任務(wù)的一系列程序指令。但是與函數(shù)不同的是,方法只能用于定義好的類型的對象,而函數(shù)則是獨(dú)立的操作。例如,你可以把upper方法應(yīng)用于任何字符串,就像


name?=?"John?Smith"?uppercaseName?=?name.upper()???#?把uppercaseName設(shè)置為"JOHN?SMITH"
uppercaseName?=?name.upper()???#?把uppercaseName設(shè)置為"JOHN?SMITH"


注意,方法名緊跟在對象之后,并且使用一個圓點(diǎn)(.)分隔對象和方法名。


另一個方法lower可以用來返回一個字符串的小寫版本:


print(name.lower())???#?輸出john?smith?


至于什么時候需要調(diào)用函數(shù)(例如len(name))和什么時候調(diào)用方法(name.lower()),可能稍微有點(diǎn)武斷。你需要進(jìn)行簡單的記憶,在打印版或者在線Python參考資料中進(jìn)行查找。


像函數(shù)調(diào)用一樣,方法調(diào)用也可以有參數(shù)。例如,字符串方法replace創(chuàng)建一個新字符串,其中給定子字符串的每次出現(xiàn)都被替換為第二個字符串。下面是該方法具有兩個參數(shù)的調(diào)用:


name2?=?name.replace("John",?"Jane")???#?把name2設(shè)置為"Jane?Smith""Jane")???#?把name2設(shè)置為"Jane?Smith"


注意任何方法的調(diào)用都不能修改字符串的值。調(diào)用name.upper()之后,變量name的值仍然是"John Smith",該方法的調(diào)用返回大寫版本。類似地,replace方法返回替換后的新字符串,不會對原字符串做任何修改。


以下列出本節(jié)中介紹的字符串方法:



關(guān)于作者: 凱·霍斯特曼(Cay Horstmann) ,圣何塞州立大學(xué)計(jì)算機(jī)科學(xué)系教授,Java的倡導(dǎo)者,經(jīng)常在開發(fā)人員會議上發(fā)表演講。他是《Java核心技術(shù)》的作者,同時也關(guān)注Python、Scala、C++等語言,為專業(yè)程序員和計(jì)算機(jī)科學(xué)專業(yè)學(xué)生編寫過數(shù)十本圖書。?

蘭斯·尼塞斯(Rance Necaise) 蘭道爾夫-麥肯學(xué)院計(jì)算機(jī)科學(xué)系副教授,撰寫了《Data Structures and Algorithms Using Python》和《Python for Java Programmers》等技術(shù)書籍。

本文摘編自Python程序設(shè)計(jì)(原書第2版),經(jīng)出版方授權(quán)發(fā)布。


延伸閱讀《Python程序設(shè)計(jì)(原書第2版)

點(diǎn)擊上圖了解及購買

轉(zhuǎn)載請聯(lián)系微信:DoctorData


推薦語:專為Python初學(xué)者打造的入門教材,講解清晰實(shí)用,案例豐富有趣。



有話要說?


Q:?你常用哪些字符串操作?

歡迎留言與大家分享


猜你想看??


  • 5G元年,你最該搞懂的技術(shù)竟然是……

  • 入門干貨:Python操作Word文件經(jīng)驗(yàn)分享

  • 父親節(jié),來認(rèn)識一下這幾位“爸爸”

  • 想用Python爬小姐姐圖片?那你得先搞定分布式進(jìn)程


更多精彩??


在公眾號對話框輸入以下關(guān)鍵詞

查看更多優(yōu)質(zhì)內(nèi)容!


PPT?|?報告?|?讀書?|?書單?|?干貨?

大數(shù)據(jù)?|?揭秘?|?Python?|?可視化

AI?|?人工智能?|?5G?|?區(qū)塊鏈

機(jī)器學(xué)習(xí)?|?深度學(xué)習(xí)?|?神經(jīng)網(wǎng)絡(luò)

1024?|?段子?|?數(shù)學(xué)?|?高考


據(jù)統(tǒng)計(jì),99%的大咖都完成了這個神操作

??



覺得不錯,請把這篇文章分享給你的朋友

轉(zhuǎn)載 / 投稿請聯(lián)系:baiyu@hzbook.com

更多精彩,請?jiān)诤笈_點(diǎn)擊“歷史文章”查看

點(diǎn)擊閱讀原文,了解更多

總結(jié)

以上是生活随笔為你收集整理的手把手教你学Python:一文看懂字符串基本操作的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 97影院手机版 | 亚洲国产97| 久久噜噜噜精品国产亚洲综合 | 清纯粉嫩极品夜夜嗨av | 五月婷婷影院 | 欧美视频在线观看一区二区 | 日本欧美国产一区二区三区 | 一路向西在线看 | 一级欧美日韩 | 国模少妇一区二区 | 主人性调教le百合sm | 久久伊人av | 三级a级片| 色女孩综合 | 爱爱激情网 | 最近国语视频在线观看免费播放 | 国产精品视频一 | 天堂在线观看免费视频 | 欧美成人h版 | 亚洲第一自拍 | 亚洲免费观看高清在线观看 | 亚洲AV无码精品色 | 日本丰满少妇做爰爽爽 | 国产精品精品软件视频 | 6080一级片 | 欧美整片在线 | 日韩精品无码一区二区三区 | 国产人成在线观看 | 男人天堂2019| 波波野结衣 | 日韩一区二区不卡视频 | 原神女裸体看个够无遮挡 | 精品久久一区二区三区 | 性欧美hd调教 | 欧美久久久影院 | 热久久亚洲 | 国产精品美女久久久久av超清 | 欧美猛男gaygay | 男生女生插插插 | 韩国三色电费2024免费吗怎么看 | 亚洲精品中文字幕 | av怡红院| 亚洲一区二区日本 | 精品国产乱 | 日本69熟| www.久热 | 亚洲视频黄 | 艳妇臀荡乳欲伦交换在线看 | 一二三在线视频 | 大j8黑人w巨大888a片 | 精品久久a| 精品人妻一区二区三区日产 | 亚洲日本久久久 | 国产又爽又猛又粗的视频a片 | 精品不卡在线 | 日日干夜夜草 | 久久精品一二区 | 丁香花五月 | 国产aⅴ精品一区二区果冻 台湾性生生活1 | 蜜桃99视频一区二区三区 | 男男巨肉啪啪动漫3d | 日本中文字幕在线视频 | 欧美第五页 | 2021天天操 | 天天干夜夜夜夜 | 在线视频观看国产 | 欧美日韩亚洲国产一区 | 欧美日韩一区二区三区在线视频 | 干成人网 | 欧美亚州 | 成人免费国产 | 国产寡妇色xxⅹ交肉视频 | 久久天 | 国产裸体永久免费视频网站 | 欧美高清视频一区 | 亚洲不卡在线视频 | 一级小毛片 | 国产成人a人亚洲精品无码 在线aa | 亚洲一区二区天堂 | 免费久久 | 少妇一级淫片免费看 | 午夜影剧院 | 午夜精品久久久久久久久久久久 | 激情五月综合色婷婷一区二区 | av夜夜| 97国产成人无码精品久久久 | 色播在线观看 | 亚洲欧美精品 | 欧美日韩视频在线 | 国产艳妇疯狂做爰视频 | 爱啪啪影视 | 色妞网 | 欧美专区亚洲专区 | 久色综 | 老湿机69福利区午夜x片 | 呦呦在线视频 | 久久免费看少妇 | 精品国产一区二区三区久久久蜜月 | 精品福利一区二区三区 |