Python字符串拼接的4種方法實(shí)例
在程序?qū)嶋H應(yīng)用中,少不了要進(jìn)行字符串拼接的操作。下面介紹一下Python語言中四種字符串拼接的方式。
1. 算術(shù)運(yùn)算符拼接
在Python中算術(shù)運(yùn)算符一共有七種種,分別是+、-、*、/、//、**和%。其中+和*不僅可以用來進(jìn)行算數(shù)計(jì)算,也可以用來字符串拼接。
(1)+算術(shù)運(yùn)算符
+運(yùn)算符在Python中可以用作數(shù)學(xué)計(jì)算,例如:
num1 = 1 num2 = 2 print(num1 + num2) # 3
同樣也可以用來進(jìn)行字符串拼接:
s1 = '我是' s2 = '大帥比' print(s1 + s2) # 我是大帥比
但是在使用+運(yùn)算符來進(jìn)行字符串拼接的時(shí)候,只能是字符串和字符串進(jìn)行拼接,無法和整形(int)、浮點(diǎn)型(float)以及布爾型(bool)進(jìn)行拼接。
(2) * 算術(shù)運(yùn)算符
當(dāng)需要輸出多個(gè)同樣字符的時(shí)候,可以使用*運(yùn)算符來偷個(gè)小懶,例如:
s1 = '-' print(s1 * 30) # ------------------------------ print(s1 * True) # - print(s1 * False) # (雖然沒有顯示,但實(shí)際上有輸出一個(gè)空字符串)
但是*運(yùn)算符和+運(yùn)算符一樣,在進(jìn)行字符串拼接的時(shí)候是有限制的,不能和字符串、浮點(diǎn)型(float)進(jìn)行拼接,其中布爾型的值會(huì)默認(rèn)轉(zhuǎn)化為整型(True為1,F(xiàn)alse為0)來進(jìn)行計(jì)算拼接。
2、format方法
在Python中,字符串友提供一個(gè)format的方法,可以通過在字符串中留空(即一個(gè){}),然后在format方法中按順序填入相應(yīng)參數(shù),來實(shí)現(xiàn)拼接。
s1 = '小明' s2 = 18 s3 = 1.75 s4 = True print('{}今年{}歲了,身高{}米,是個(gè)成年的{}男人。'.format(s1, s2, s3, s4)) # 小明今年18歲了,身高1.75米,是個(gè)成年的True男人。
在這里,format可以拼接字符串、整型、浮點(diǎn)型以及布爾型的值,這里面布爾型的值會(huì)默認(rèn)轉(zhuǎn)化為字符串類型來進(jìn)行拼接。
值得注意的是:format中的參數(shù)必須是按坑填入,坑只能少,不能比值多;值可以盡量多,但是不能比坑少,否則就會(huì)報(bào)錯(cuò)。
s1 = '小明' s2 = 18 s3 = 1.75 s4 = True print('{}今年{}歲了,身高{}米,是個(gè)成年的男人。'.format(s1, s2)) ### IndexError: Replacement index 2 out of range for positional args tuple
3、百分號(hào)操作符
Python還可以通過百分號(hào)加上一個(gè)字母(如%s、%d等等),來實(shí)現(xiàn)字符串的拼接。
s1 = 'python' print('人生苦短,我只用%s'%s1) # 人生苦短,我只用Python
當(dāng)然百分號(hào)操作符還可以通過百分號(hào)加上一個(gè)元組來進(jìn)行多個(gè)字符傳入:
s1 = '張三' s2 = 24 s3 = 1.8 s4 = True print('我叫%s,今年%s歲,是個(gè)%s米的大帥比,你覺得我說的%s嗎?'%(s1, s2, s3, s4)) # 我叫張三,今年24歲,是個(gè)1.8米的大帥比,你覺得我說的True嗎?
在這里,%s可以是字符串、整型、浮點(diǎn)型或者布爾型,這些都會(huì)被默認(rèn)轉(zhuǎn)為字符串類型。但如果是其他如%d,則不能跟字符串,其他類型會(huì)被轉(zhuǎn)化為整型,浮點(diǎn)型只取整數(shù),布爾型只取1或者0。
常見的格式化符號(hào)
格式符號(hào) | 轉(zhuǎn)換 |
---|---|
%s | 通過str()字符串轉(zhuǎn)換來格式化 |
%u | 無符號(hào)的十進(jìn)制整數(shù) |
%d | 有符號(hào)的十進(jìn)制整數(shù) |
%o | 八進(jìn)制整數(shù) |
%x | 十六進(jìn)制整數(shù),小寫字母 |
%X | 十六進(jìn)制整數(shù),大寫字母 |
%e | 浮點(diǎn)數(shù)字(科學(xué)計(jì)數(shù)法) |
%E | 浮點(diǎn)數(shù)字(科學(xué)計(jì)數(shù)法,用E代替e) |
%f | 浮點(diǎn)實(shí)數(shù) |
%g | 浮點(diǎn)數(shù)字(根據(jù)值的大小采用%e或%f) |
%G | 浮點(diǎn)數(shù)字(類似于%g) |
注意: 和format不一樣的是,百分號(hào)是有幾個(gè)坑,就得給他安排幾個(gè)值,值多或者值少,都會(huì)產(chǎn)生報(bào)錯(cuò)。
4、特殊符號(hào)f
在Python還有一種非常有意思的寫法,就是在字符串前面加上特定字母,就可以實(shí)現(xiàn)一些功能,如加上r 取消轉(zhuǎn)義符號(hào)的效果,加上 f 進(jìn)行字符串格式化。
s1 = '博士' s2 = 30 print(f'小紅是一個(gè){s1},剛畢業(yè)就獲得了一個(gè)年薪{s2}萬的工作。') # 小紅是一個(gè)博士,剛畢業(yè)就獲得了一個(gè)年薪30萬的工作。
f 和 format 方法有點(diǎn)相似,也是挖坑,但是 f 是現(xiàn)挖現(xiàn)填,相比 format 來說更不容易填錯(cuò)坑。
附:常見字符串去除空格的方法總結(jié)
去除字符串開頭和結(jié)尾的空格,使用strip()方法
a = " a b c " a.strip() # 'a b c'
去除字符串開頭的空格,lstrip()方法
a = " a b c " a.lstrip() # 'a b c '
去除字符串結(jié)尾的空格,rstrip()方法
a = " a b c " a.rstrip() # ' a b c'
總結(jié)
Python中實(shí)現(xiàn)對(duì)字符串拼接的四種方法:
(1)通過 + 或者 * 運(yùn)算符來實(shí)現(xiàn)拼接。
(2)通過 format 方法來進(jìn)行格式化填空,但是空可以少,值不能少,要確保每個(gè)空都會(huì)有一個(gè)對(duì)應(yīng)的值。
(3)通過百分號(hào)來進(jìn)行字符串格式化拼接,和 format 不一樣的是,百分號(hào)是有幾個(gè)空,就填幾個(gè)值,值不能多,也不能少。
(4)通過特殊符號(hào) f 進(jìn)行字符串格式化拼接,和百分號(hào)方法一樣,有幾個(gè)空就填幾個(gè)值,空里面不能沒有值。
到此這篇關(guān)于Python字符串拼接的4種方法的文章就介紹到這了,更多相關(guān)Python字符串拼接內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python文件操作JSON CSV TSV Excel和Pickle文件序列化
這篇文章主要為大家介紹了Python文件操作之JSON、CSV、TSV、Excel和Pickle文件序列化示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11Python利用multiprocessing實(shí)現(xiàn)最簡(jiǎn)單的分布式作業(yè)調(diào)度系統(tǒng)實(shí)例
這篇文章主要給大家介紹了關(guān)于Python利用multiprocessing如何實(shí)現(xiàn)最簡(jiǎn)單的分布式作業(yè)調(diào)度系統(tǒng)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起看看吧。2017-11-11python的paramiko模塊實(shí)現(xiàn)遠(yuǎn)程控制和傳輸示例
本篇文章主要介紹了python的paramiko模塊實(shí)現(xiàn)遠(yuǎn)程控制和傳輸示例,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2017-10-10Python環(huán)境管理virtualenv&virtualenvwrapper的配置詳解
這篇文章主要介紹了Python環(huán)境管理virtualenv&virtualenvwrapper的配置詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07sklearn中的交叉驗(yàn)證的實(shí)現(xiàn)(Cross-Validation)
這篇文章主要介紹了sklearn中的交叉驗(yàn)證的實(shí)現(xiàn)(Cross-Validation),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02selenium使用chrome瀏覽器測(cè)試(附chromedriver與chrome的對(duì)應(yīng)關(guān)系表)
這篇文章主要介紹了selenium使用chrome瀏覽器測(cè)試(附chromedriver與chrome的對(duì)應(yīng)關(guān)系表),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-11-11Python實(shí)現(xiàn)Word文檔轉(zhuǎn)換Markdown的示例
這篇文章主要介紹了Python實(shí)現(xiàn)Word文檔轉(zhuǎn)換Markdown的示例,幫助大家更好的理解和使用python,感興趣的朋友可以了解下2020-12-12