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