前言
忘了在哪看到一位編程大牛調(diào)侃,他說程序員每天就做兩件事,其中之一就是處理字符串。相信不少同學(xué)會(huì)有同感。
在Python中,我們經(jīng)常會(huì)遇到字符串的拼接問題,幾乎任何一種編程語言,都把字符串列為最基礎(chǔ)和不可或缺的數(shù)據(jù)類型。而拼接字符串是必備的一種技能。今天,我跟大家一起來學(xué)習(xí)Python拼接字符串的七種方式。
下面話不多說了,來一起看看詳細(xì)的介紹吧
1、來自C語言的%方式
print('%s %s' % ('Hello', 'world'))>>> Hello world%號(hào)格式化字符串的方式繼承自古老的C語言,這在很多編程語言都有類似的實(shí)現(xiàn)。上例的%s是一個(gè)占位符,它僅代表一段字符串,并不是拼接的實(shí)際內(nèi)容。實(shí)際的拼接內(nèi)容在一個(gè)單獨(dú)的%號(hào)后面,放在一個(gè)元組里。
類似的占位符還有:%d(代表一個(gè)整數(shù))、%f(代表一個(gè)浮點(diǎn)數(shù))、%x(代表一個(gè)16進(jìn)制數(shù)),等等。%占位符既是這種拼接方式的特點(diǎn),同時(shí)也是其限制,因?yàn)槊糠N占位符都有特定意義,實(shí)際使用起來太麻煩了。
2、format()拼接方式
# 簡潔版s1 = 'Hello {}! My name is {}.'.format('World', 'Python貓')print(s1)>>>Hello World! My name is Python貓.# 對號(hào)入座版s2 = 'Hello {0}! My name is {1}.'.format('World', 'Python貓')s3 = 'Hello {name1}! My name is {name2}.'.format(name1='World', name2='Python貓')print(s2)>>>Hello World! My name is Python貓.print(s3)>>>Hello World! My name is Python貓.這種方式使用花括號(hào){}做占位符,在format方法中再轉(zhuǎn)入實(shí)際的拼接值。容易看出,它實(shí)際上是對%號(hào)拼接方式的改進(jìn)。這種方式在Python2.6中開始引入。
上例中,簡潔版的花括號(hào)中無內(nèi)容,缺點(diǎn)是容易弄錯(cuò)次序。對號(hào)入座版主要有兩種,一種傳入序列號(hào),一種則使用key-value的方式。實(shí)戰(zhàn)中,我們更推薦后一種,既不會(huì)數(shù)錯(cuò)次序,又更直觀可讀。
3、() 類似元組方式
s_tuple = ('Hello', ' ', 'world')s_like_tuple = ('Hello' ' ' 'world')print(s_tuple) >>>('Hello', ' ', 'world')print(s_like_tuple) >>>Hello worldtype(s_like_tuple) >>>str注意,上例中s_like_tuple并不是一個(gè)元組,因?yàn)樵亻g沒有逗號(hào)分隔符,這些元素間可以用空格間隔,也可以不要空格。使用type()查看,發(fā)現(xiàn)它就是一個(gè)str類型。我沒查到這是啥原因,猜測或許()括號(hào)中的內(nèi)容是被Python優(yōu)化處理了。
這種方式看起來很快捷,但是,括號(hào)()內(nèi)要求元素是真實(shí)字符串,不能混用變量,所以不夠靈活。
# 多元素時(shí),不支持有變量str_1 = 'Hello'str_2 = (str_1 'world')>>> SyntaxError: invalid syntaxstr_3 = (str_1 str_1)>>> SyntaxError: invalid syntax# 但是下面寫法不會(huì)報(bào)錯(cuò)str_4 = (str_1)
新聞熱點(diǎn)
疑難解答
圖片精選