您好,登錄后才能下訂單哦!
這篇文章運(yùn)用簡(jiǎn)單易懂的例子給大家介紹Python字符串及基本操作,代碼非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。
字符串的意思就是“一串字符”,比如“Hello,Charlie”是一個(gè)字符串,“How are you?”也是一個(gè)字符串。
Python 要求字符串必須使用引號(hào)括起來,使用單引號(hào)也行,使用雙引號(hào)也行,只要兩邊的引號(hào)能配對(duì)即可。
Python字符串和轉(zhuǎn)義字符
字符串的內(nèi)容幾乎可以包含任何字符,英文字符也行,中文字符也行。
Python 3.x 對(duì)中文字符支持較好,但 Python 2.x 則要求在源程序中增加“#coding:utf-8”才能支持中文字符。
字符串既可用單引號(hào)括起來,也可用雙引號(hào)括起來,它們沒有任何區(qū)別。例如如下程序:
str1 = 'Charlie' str2 = "php中文網(wǎng)" print(str1) print(str2)
但需要說明的是,Python 有時(shí)候沒有我們期望的那么聰明。如果字符串內(nèi)容本身包含了單引號(hào)或雙引號(hào),此時(shí)就需要進(jìn)行特殊處理:
使用不同的引號(hào)將字符串括起來。
對(duì)引號(hào)進(jìn)行轉(zhuǎn)義。
先看第一種處理方式。假如字符串內(nèi)容中包含了單引號(hào),則可以使用雙引號(hào)將字符串括起來。例如:
str3 = 'I'm a coder'
由于上面字符串中包含了單引號(hào),此時(shí) Python 會(huì)將字符串中的單引號(hào)與第一個(gè)單引號(hào)配對(duì),這樣就會(huì)把 'I' 當(dāng)成字符串,而后面的 m a coder' 就變成了多余的內(nèi)容,從而導(dǎo)致語法錯(cuò)誤。
為了避免這種問題,可以將上面代碼改為如下形式:
str3 = "I'm a coder"
上面代碼使用雙引號(hào)將字符串括起來,此時(shí) Python 就會(huì)把字符串中的單引號(hào)當(dāng)成字符串內(nèi)容,而不是和字符串開始的引號(hào)配對(duì)。
假如字符串內(nèi)容本身包含雙引號(hào),則可使用單引號(hào)將字有串括起來,例如如下代碼:
str4 = '"Spring is here,let us jam!", said woodchuck.'
接下來看第二種處理方式:使用轉(zhuǎn)義字符。Python 允許使用反斜線(\)將字符串中的特殊字符進(jìn)行轉(zhuǎn)義。假如字符串既包含單引號(hào),又包含雙引號(hào),此時(shí)必須使用轉(zhuǎn)義字符,例如如下代碼:
str5 = '"we are scared,Let\'s hide in the shade",says the bird'
拼接字符串
如果直接將兩個(gè)字符串緊挨著寫在一起,Python 就會(huì)自動(dòng)拼接它們,例如如下代碼:
s1 = "Hello,"'Charlie' print(s1)
上面代碼將會(huì)輸出:
Hello,Charlie
上面這種寫法只是書寫字符串的一種特殊方法,并不能真正用于拼接字符串。Python 使用加號(hào)(+)作為字符串的拼接運(yùn)算符,例如如下代碼:
s2 = "Python " s3 = "iS Funny" #使用+拼接字符串 s4 = s2 + s3 print(s4)
repr 和字符串
有時(shí)候,我們需要將字符串與數(shù)值進(jìn)行拼接,而 Python 不允許直接拼接數(shù)值和字符串,程序必須先將數(shù)值轉(zhuǎn)換成字符串。
為了將數(shù)值轉(zhuǎn)換成字符串,可以使用 str() 或 repr() 函數(shù),例如如下代碼:
s1 = "這是數(shù)字: " p = 99.8 #字符串直接拼接數(shù)值,程序報(bào)錯(cuò) print(s1 + p) #使用str()將數(shù)值轉(zhuǎn)換成字符串 print(s1 + str(p)) #使用repr()將數(shù)值轉(zhuǎn)換成字符串 print(s1 + repr(p))
上面程序中直接拼接字符串和數(shù)值,程序會(huì)報(bào)錯(cuò)。
str() 和 repr() 函數(shù)都可以將數(shù)值轉(zhuǎn)換成字符串,其中 str 本身是 Python 內(nèi)置的類型(和 int、float 一樣),而 repr() 則只是一個(gè)函數(shù)。此外,repr 還有一個(gè)功能,它會(huì)以 Python 表達(dá)式的形式來表示值。對(duì)比如下代碼:
st = "I will play my fife" print (st) print(repr(st))
上面代碼中 st 本身就是一個(gè)字符串,但程序依然使用了 repr() 對(duì)字符串進(jìn)行轉(zhuǎn)換。運(yùn)行上面程序,可以看到如下輸出結(jié)果:
I will play my fife 'I will play my fife'
通過上面的輸出結(jié)果可以看出,如果直接使用 print() 函數(shù)輸出字符串,將只能看到字符串的內(nèi)容,沒有引號(hào);但如果先使用 repr() 函數(shù)對(duì)字符串進(jìn)行處理,然后再使用 print() 執(zhí)行輸出,將可以看到帶引號(hào)的字符串,這就是字符串的 Python 的表達(dá)式形式。
在交互式解釋器中輸入一個(gè)主量或表達(dá)式時(shí),Python 會(huì)自動(dòng)使用 repr() 函數(shù)處理該變量或表達(dá)式。
使用 input 和 raw_input 獲取用戶輸入
input() 函數(shù)用于向用戶生成一條提示,然后獲取用戶輸入的內(nèi)容。由于 input() 函數(shù)總會(huì)將用戶輸入的內(nèi)容放入字符串中,因此用戶可以輸入任何內(nèi)容,input() 函數(shù)總是返回一個(gè)字符串。
例如如下程序:
msg = input("請(qǐng)輸入你的值:") print (type(msg)) print(msg)
第一次運(yùn)行該程序,我們輸入一個(gè)整數(shù),運(yùn)行過程如下:
請(qǐng)輸入你的值:2 <class 'str'> 2
第二次運(yùn)行該程序,我們輸入一個(gè)浮點(diǎn)數(shù),運(yùn)行過程如下:
請(qǐng)輸入你的值: 1.2 <class 'str'> 1.2
第三次運(yùn)行該程序,我們輸入一個(gè)字符串,運(yùn)行過程如下:
請(qǐng)輸入你的值:Hello <class 'str'> Hello
從上面的運(yùn)行過程可以看出,無論輸入哪種內(nèi)容,始終可以看到 input() 函數(shù)返回字符串,程序總會(huì)將用戶輸入的內(nèi)容轉(zhuǎn)換成字符串。
Python長(zhǎng)字符串
前面介紹 Python 多行注釋時(shí)提到使用三個(gè)引號(hào)(單引號(hào)、雙引號(hào)都行)來包含多行注釋內(nèi)容,其實(shí)這是長(zhǎng)字符串寫法,只是由于在長(zhǎng)字符串中可以放置任何內(nèi)容,包括放置單引號(hào)、雙引號(hào)都可以,如果所定義的長(zhǎng)字符串沒有賦值給任何變量,那么這個(gè)字符串就相當(dāng)于被解釋器忽略了,也就相當(dāng)于注釋掉了。
實(shí)際上,使用三個(gè)引號(hào)括起來的長(zhǎng)字符串完全可以賦值給變量,例如如下程序:
s = '''"Let's go fishing", said Mary. "OK, Let's go", said her brother. they walked to a lake''' print(s)
上面程序使用三個(gè)引號(hào)定義了長(zhǎng)字符串,該長(zhǎng)字符串中既可包含單引號(hào),也可包含雙引號(hào)。
當(dāng)程序中有大段文本內(nèi)容要定義成字符串時(shí),優(yōu)先推薦使用長(zhǎng)字符串形式,因?yàn)檫@種形式非常強(qiáng)大,可以讓字符串中包含任何內(nèi)容,既可包含單引號(hào),也可包含雙引號(hào)。
此外,Python 還允許使用轉(zhuǎn)義字符(\)對(duì)換行符進(jìn)行轉(zhuǎn)義,轉(zhuǎn)義之后的換行符不會(huì)“中斷”字符串。例如如下代碼:
s2 = 'The quick brown fox \ jumps over the lazy dog' print(s2)
上面 s2 字符串的內(nèi)容較長(zhǎng),故程序使用了轉(zhuǎn)義字符(\)對(duì)內(nèi)容進(jìn)行了轉(zhuǎn)義,這樣就可以把一個(gè)字符串寫成兩行。
需要說明的是,Python 不是格式自由的語言,因此 Python 程序的換行、縮進(jìn)都有其規(guī)定的語法。所以,Python 的表達(dá)式不允許隨便換行。如果程序需要對(duì) Python 表達(dá)式換行,同樣需要使用轉(zhuǎn)義字符(\)進(jìn)行轉(zhuǎn)義,代碼如下:
num = 20 + 3 / 4 + \ 2 * 3 print(num)
上面程序中有一個(gè)表達(dá)式,為了對(duì)該表達(dá)式換行,程序需要使用轉(zhuǎn)義字符。
Python原始字符串
由于字符串中的反斜線都有特殊的作用,因此當(dāng)字符串中包含反斜線時(shí),就需要對(duì)其進(jìn)行轉(zhuǎn)義。
比如寫一條 Windows 的路徑 G:\publish\codes\02\2.4,如果在 Python 程序中直接這樣寫肯定是不行的,需要寫成 G:\\publish\\codes\\02\\2.4,這很煩人,此時(shí)可借助于原始字符串來解決這個(gè)問題。
原始字符串以“r”開頭,原始字符串不會(huì)把反斜線當(dāng)成特殊字符。因此,上面的 Windows 路徑可直接寫成 r'G:\publish\codes\02\2.4'。
關(guān)于原始字符串的用法看如下程序:
s1 = r'G:\publish\codes\02\2.4' print(s1)
如果原始字符串中包含引號(hào),程序同樣需要對(duì)引號(hào)進(jìn)行轉(zhuǎn)義(否則 Python 同樣無法對(duì)字符串的引號(hào)精確配對(duì)),但此時(shí)用于轉(zhuǎn)義的反斜線會(huì)變成字符串的一部分。
例如如下代碼:
# 原始字符串包含的引號(hào),同樣需要轉(zhuǎn)義 s2 = r'"Let\'s go", said Charlie' print(s2)
上面代碼會(huì)生成如下輸出結(jié)果:
"Let\'s go", said Charlie
關(guān)于Python字符串及基本操作就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。