溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Python字符串及基本操作

發(fā)布時(shí)間:2020-08-26 15:34:21 來源:億速云 閱讀:148 作者:Leah 欄目:編程語言

這篇文章運(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ò),可以把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(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)容。

AI