網(wǎng)站首頁(yè) 編程語(yǔ)言 正文
在程序?qū)嶋H應(yīng)用中,少不了要進(jìn)行字符串拼接的操作。下面介紹一下Python語(yǔ)言中四種字符串拼接的方式。
1. 算術(shù)運(yùn)算符拼接
在Python中算術(shù)運(yùn)算符一共有七種種,分別是+、-、*、/、//、**和%。其中+和*不僅可以用來(lái)進(jìn)行算數(shù)計(jì)算,也可以用來(lái)字符串拼接。
(1)+算術(shù)運(yùn)算符
+運(yùn)算符在Python中可以用作數(shù)學(xué)計(jì)算,例如:
num1 = 1
num2 = 2
print(num1 + num2) # 3
同樣也可以用來(lái)進(jìn)行字符串拼接:
s1 = '我是'
s2 = '大帥比'
print(s1 + s2) # 我是大帥比
但是在使用+運(yùn)算符來(lái)進(jìn)行字符串拼接的時(shí)候,只能是字符串和字符串進(jìn)行拼接,無(wú)法和整形(int)、浮點(diǎn)型(float)以及布爾型(bool)進(jìn)行拼接。
(2) * 算術(shù)運(yùn)算符
當(dāng)需要輸出多個(gè)同樣字符的時(shí)候,可以使用*運(yùn)算符來(lái)偷個(gè)小懶,例如:
s1 = '-'
print(s1 * 30)
# ------------------------------
print(s1 * True)
# -
print(s1 * False)
# (雖然沒(méi)有顯示,但實(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)來(lái)進(jìn)行計(jì)算拼接。
2、format方法
在Python中,字符串友提供一個(gè)format的方法,可以通過(guò)在字符串中留空(即一個(gè){}),然后在format方法中按順序填入相應(yīng)參數(shù),來(lái)實(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)化為字符串類(lèi)型來(lái)進(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還可以通過(guò)百分號(hào)加上一個(gè)字母(如%s、%d等等),來(lái)實(shí)現(xiàn)字符串的拼接。
s1 = 'python'
print('人生苦短,我只用%s'%s1)
# 人生苦短,我只用Python
當(dāng)然百分號(hào)操作符還可以通過(guò)百分號(hào)加上一個(gè)元組來(lái)進(jìn)行多個(gè)字符傳入:
s1 = '張三'
s2 = 24
s3 = 1.8
s4 = True
print('我叫%s,今年%s歲,是個(gè)%s米的大帥比,你覺(jué)得我說(shuō)的%s嗎?'%(s1, s2, s3, s4))
# 我叫張三,今年24歲,是個(gè)1.8米的大帥比,你覺(jué)得我說(shuō)的True嗎?
在這里,%s可以是字符串、整型、浮點(diǎn)型或者布爾型,這些都會(huì)被默認(rèn)轉(zhuǎn)為字符串類(lèi)型。但如果是其他如%d,則不能跟字符串,其他類(lèi)型會(huì)被轉(zhuǎn)化為整型,浮點(diǎn)型只取整數(shù),布爾型只取1或者0。
常見(jiàn)的格式化符號(hào)
格式符號(hào) | 轉(zhuǎn)換 |
---|---|
%s | 通過(guò)str()字符串轉(zhuǎn)換來(lái)格式化 |
%u | 無(wú)符號(hào)的十進(jìn)制整數(shù) |
%d | 有符號(hào)的十進(jìn)制整數(shù) |
%o | 八進(jìn)制整數(shù) |
%x | 十六進(jìn)制整數(shù),小寫(xiě)字母 |
%X | 十六進(jìn)制整數(shù),大寫(xiě)字母 |
%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ù)字(類(lèi)似于%g) |
注意: 和format不一樣的是,百分號(hào)是有幾個(gè)坑,就得給他安排幾個(gè)值,值多或者值少,都會(huì)產(chǎn)生報(bào)錯(cuò)。
4、特殊符號(hào)f
在Python還有一種非常有意思的寫(xiě)法,就是在字符串前面加上特定字母,就可以實(shí)現(xiàn)一些功能,如加上r 取消轉(zhuǎn)義符號(hào)的效果,加上 f 進(jìn)行字符串格式化。
s1 = '博士'
s2 = 30
print(f'小紅是一個(gè){s1},剛畢業(yè)就獲得了一個(gè)年薪{s2}萬(wàn)的工作。')
# 小紅是一個(gè)博士,剛畢業(yè)就獲得了一個(gè)年薪30萬(wàn)的工作。
f 和 format 方法有點(diǎn)相似,也是挖坑,但是 f 是現(xiàn)挖現(xiàn)填,相比 format 來(lái)說(shuō)更不容易填錯(cuò)坑。
附:常見(jiàn)字符串去除空格的方法總結(jié)
去除字符串開(kāi)頭和結(jié)尾的空格,使用strip()方法
a = " a b c "
a.strip()
# 'a b c'
去除字符串開(kāi)頭的空格,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)通過(guò) + 或者 * 運(yùn)算符來(lái)實(shí)現(xiàn)拼接。
(2)通過(guò) format 方法來(lái)進(jìn)行格式化填空,但是空可以少,值不能少,要確保每個(gè)空都會(huì)有一個(gè)對(duì)應(yīng)的值。
(3)通過(guò)百分號(hào)來(lái)進(jìn)行字符串格式化拼接,和 format 不一樣的是,百分號(hào)是有幾個(gè)空,就填幾個(gè)值,值不能多,也不能少。
(4)通過(guò)特殊符號(hào) f 進(jìn)行字符串格式化拼接,和百分號(hào)方法一樣,有幾個(gè)空就填幾個(gè)值,空里面不能沒(méi)有值。
原文鏈接:https://blog.csdn.net/jhdddd/article/details/124281653
相關(guān)推薦
- 2022-06-09 FreeRTOS實(shí)時(shí)操作系統(tǒng)的任務(wù)應(yīng)用函數(shù)詳解_操作系統(tǒng)
- 2023-01-20 Go語(yǔ)言實(shí)現(xiàn)定時(shí)器的原理及使用詳解_Golang
- 2024-03-04 layui樹(shù)形組件獲取復(fù)選框選中的id,禁用選中父節(jié)點(diǎn)后自動(dòng)選中子節(jié)點(diǎn)功能
- 2023-02-03 Python3.10?Generator生成器Coroutine原生協(xié)程詳解_python
- 2024-03-05 git的使用
- 2022-12-06 nginx?pod?hook鉤子優(yōu)雅關(guān)閉示例詳解_nginx
- 2022-07-09 Python小技巧練習(xí)分享_python
- 2023-08-01 ref 和 reactive 函數(shù)標(biāo)注類(lèi)型解析
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲(chǔ)小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過(guò)濾器
- Spring Security概述快速入門(mén)
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡(jiǎn)單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對(duì)象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支