這篇文章主要介紹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 world type(s_like_tuple) >>>str
注意,上例中s_like_tuple并不是一個元組,因為元素間沒有逗號分隔符,這些元素間可以用空格間隔,也可以不要空格。使用type()查看,發現它就是一個str類型。我沒查到這是啥原因,猜測或許()括號中的內容是被Python優化處理了。
這種方式看起來很快捷,但是,括號()內要求元素是真實字符串,不能混用變量,所以不夠靈活。
4、面向對象模板拼接
from string import Template s = Template('${s1} ${s2}!') print(s.safe_substitute(s1='Hello',s2='world')) >>> Hello world!
5、常用的+號方式
str_1 = 'Hello world! ' str_2 = 'My name is Python貓.' print(str_1 + str_2) >>>Hello world! My name is Python貓. print(str_1) >>>Hello world!
6、join()拼接方式
str_list = ['Hello', 'world'] str_join1 = ' '.join(str_list) str_join2 = '-'.join(str_list) print(str_join1) >>>Hello world print(str_join2) >>>Hello-world
7、f-string方式
name = 'world' myname = 'python_cat' words = f'Hello {name}. My name is {myname}.' print(words) >>> Hello world. My name is python_cat.
以上是python拼接字符串的方法的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。