python字元拼接
1. python中漢字和變數拼接輸出的8種方法(字元串拼接)
方法1:使用加號「+」連接字元串
最常用的連接字元串的方式是用加號「+」連接兩個字元串,連接後這兩個字元串將連接成一個字元串。但需注意的是,不能用「+」連接字元串和數字,需要把數字使用str()函數轉換成字元串,或者直接在數字兩側加帶引號,再進行連接,示例如下:
該方法性能差,盡量少用,因為 Python 中字元串是不可變類型,使用「+」號連接相當於生成一個新的字元串,需要重新申請內存,當用「+」號連接非常多的字元串時,將會很耗費內存,可能造成內存溢出。
方法2:使用逗號連接字元串
方法3:通過「%」連接字元串
借鑒C語言中的 printf 函數功能,使用%號連接一個字元串和一組變數,字元串中的特殊標記會被自動使用右邊變數組中的變數替換。
註:其中%s是佔位符。
方法4:通過str.format()方法拼接
通過這種方式拼接字元串需要注意的是字元串中{}的數量要和format方法參數數量一致,否則會報錯。
方法5:通過f-strings拼接
在python3.6.2版本中,PEP 498 提出一種新型字元串格式化機制,被稱為「字元串插值」或者更常見的一種稱呼是f-strings,f-strings提供了一種明確且方便的方式將python表達式嵌入到字元串中來進行格式化:
方法6:通過str.join()方法拼接
這種方式一般常使用在將集合轉化為字元串,」.join()其中」可以是空字元,也可以是任意其他字元,當是任意其他字元時,集合中字元串會被該字元隔開,例如:
輸出
我最喜歡的數字是-8
方法7:通過()多行拼接
python遇到未閉合的小括弧,自動將多行拼接為一行。
方法8:通過string模塊中的Template對象拼接
Template的實現方式是首先通過Template初始化一個字元串。這些字元串中包含了一個個key。通過調用substitute或safe_subsititute,將key值與方法中傳遞過來的參數對應上,從而實現在指定的位置導入字元串。
總結
格式化類:%、format()、 template
拼接類:+、()、join()、逗號
插值類: f-strings
當要處理字元串列表等序列結構時,彩用join()方式;拼接長度不超過20時,選用+號操作符方式;長度超過20的情況,高版本選用f-string,低版本看情況使用format()或join()方式。
2. python字元串常用方法
python字元串常用方法
1. Python字元串拼接(包含字元串拼接數字)
2. Python截取字元串(字元串切片)
3. Python 的len()函數:獲取字元串長度或位元組數
4. Python split()方法:分割字元串
5. Python join()方法:合並字元串
6. Python count()方法:統計字元串出現的次數
7. Python find()方法:檢測字元串中是否包含某子串
8. Python index()方法:檢測字元串中是否包含某子串
9. Python字元串對齊方法(ljust()、rjust()和center())
10. Python startswith()和endswith()方法
11. Python字元串大小寫轉換(3種)函數
12. Python去除字元串中空格(刪除指定字元)的3種方法
3. python怎麼用左斜杠拼接字元
目錄中的斜杠們
python讀文件需要輸入的目錄參數,列出以下例子:
path = r"C:\Windows\temp\readme.txt"
path1 = r"c:\windows\temp\readme.txt"
path2 = "c:\\windows\\temp\\readme.txt"
path3 = "c:/windows/temp/readme.txt"
打開文件函數open()中的參數可以是path也可以是path1、path2、path3。
path:"\"為字元串中的特殊字元,加上r後變為原始字元串,則不會對字元串中的"\t"、"\r" 進行字元串轉義
path1:大小寫不影響windows定位到文件
path2:用一個"\"取消第二個"\"的特殊轉義作用,即為"\\"
path3:用正斜杠做目錄分隔符也可以轉到對應目錄,並且在python中path3的方式也省去了反斜杠\轉義的煩惱
3
正則表達式中的斜杠們
正則表達式匹配反斜杠"\",為什麼是"\\\\"或是 r"\\"呢?
因為在正則表達式中\為特殊符號,為了取消它在正則表達式中的特殊意義需要加一個\就變成了\\,但是問題又來了,\也是字元串中的特殊字元,所以又要分別對兩個\取消其特殊意義,即為\\\\。Python中有一個原始字元串操作符,用於那些字元串中出現特殊字元,在原始字元串中,沒有轉義字元和不能列印的字元。這樣就可以取消了\在字元串中的轉義功能,即r"\\"。
4. python之字元串內置函數
1. 字元串字母處理
2. 字元串填充
str.ljust(width, fillchar)、str.center(width, fillchar)、str.rjust(width, fillchar)
返回一個指定的寬度 width 「居左」/「居中」/「居右」的字元串,如果 width 小於字元串寬度直接返回字元串,否則使用 fillchar 去填充。
3,字元串計數
str.count(sub, start, end)
#統計字元串里某個字元出現的次數。可選參數為在字元串搜索的開始與結束位置。
start, end遵循**「左閉右開」**原則。
4. 字元串位置
str.endswith(suffix, start, end)和str.startswith(substr, beg, end)
#判斷字元串是否以指定後綴結尾/開頭,如果以指定後綴「結尾」/「開頭」返回 True,否則返回 False。
5. 字元串查找
6. 字元串判斷
7. 字元串拼接
str.join() #將序列中的元素以指定的字元連接生成一個新的字元串。
s1 = "-" s2 = "" seq = ("r", "u", "n", "o", "o", "b")
# 字元串序列 print (s1.join( seq )) print (s2.join( seq )) r-u-n-o-o-b runoob
8. 統計字元串長度
str.len() #返回對象(字元、列表、元組等)長度或項目個數。
9. 去除字元兩側空格
str.lstrip()、str.rstrip()、str.strip() #截掉字元串「左邊」/「右邊」/「左右」兩側的空格或指定字元。
str0 = ' Hello World!' str0.lstrip() 'Hello World!' str1 = 'aaaa Hello World!' str1.lstrip('a') ' Hello World!'
10. str.maketrans(intab, outtab)和str.translate(table)
str.maketrans()創建字元映射的轉換表
str.maketrans()根據參數table給出的表轉換字元串的字元。
str.maketrans()傳入的也可以是字典
tab = {'e': Ɖ', 'o': Ɗ'} trantab = str.maketrans(tab) str0.translate(trantab) 'H3ll4 W4rld!'
11. 字元串替換
str.replace(old, new, max)
12. 字元分割
str.split(str, num)
13. 字元填充
str.zfill(width)
返回指定長度的字元串,原字元串右對齊,前面填充0。
5. python用字元串拼接一條語句,然後怎麼執行
python支持eval函數,可以把一個字元串當作python語句執行,具體你可以看看eval函數的使用方法
6. python 文本字元串接
python中有很多字元串連接方式,今天在寫代碼,順便總結一下:
最原始的字元串連接方式:str1 + str2
python 新字元串連接語法:str1, str2
奇怪的字元串方式:str1 str2
% 連接字元串:『name:%s; sex: ' % ('tom', 'male')
字元串列表連接:str.join(some_list)
第一種,想必只要是有編程經驗的人,估計都知道,直接用 「+」 來連接兩個字元串:
'Jim' + 'Green' = 'JimGreen'
第二種比較特殊,如果兩個字元串用「逗號」隔開,那麼這兩個字元串將被連接,但是,字元串之間會多出一個空格:
'Jim', 'Green' = 'Jim Green'
第三種也是 python 獨有的,只要把兩個字元串放在一起,中間有空白或者沒有空白:兩個字元串自動連接為一個字元串:
'Jim''Green' = 'JimGreen'
'Jim' 'Green' = 'JimGreen'
第四種功能比較強大,借鑒了C語言中 printf 函數的功能,如果你有C語言基礎,看下文檔就知道了。這種方式用符號「%」連接一個字元串和一組變數,字元串中的特殊標記會被自動用右邊變數組中的變數替換:
'%s, %s' % ('Jim', 'Green') = 'Jim, Green'
第五種就屬於技巧了,利用字元串的函數 join 。這個函數接受一個列表,然後用字元串依次連接列表中每一個元素:
var_list = ['tom', 'david', 'john']
a = '###'
a.join(var_list) = 'tom###david###john'
其實,python 中還有一種字元串連接方式,不過用的不多,就是字元串乘法,如:
a = 'abc'
a * 3 = 'abcabcabc'
7. 將字元串聚合到一個文本用python怎麼實現
1、來自C語言的%方式
12
print('%s %s' % ('Hello', 'world'))>>> Hello world
%號格式化字元串的方式繼承自古老的C語言,這在很多編程語言都有類似的實現。上例的%s是一個佔位符,它僅代表一段字元串,並不是拼接的實際內容。實際的拼接內容在一個單獨的%號後面,放在一個元組里。
類似的佔位符還有:%d(代表一個整數)、%f(代表一個浮點數)、%x(代表一個16進制數),等等。%佔位符既是這種拼接方式的特點,同時也是其限制,因為每種佔位符都有特定意義,實際使用起來太麻煩了。
2、format()拼接方式
123456789101112
# 簡潔版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、() 類似元組方式
123456789
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優化處理了。
這種方式看起來很快捷,但是,括弧()內要求元素是真實字元串,不能混用變數,所以不夠靈活。
12345678
# 多元素時,不支持有變數str_1 = 'Hello'str_2 = (str_1 'world')>>> SyntaxError: invalid syntaxstr_3 = (str_1 str_1)>>> SyntaxError: invalid syntax# 但是下面寫法不會報錯str_4 = (str_1)
4、面向對象模板拼接
1234
from string import Templates = Template('${s1} ${s2}!')print(s.safe_substitute(s1='Hello',s2='world'))>>> Hello world!
說實話,我不喜歡這種實現方式。濃濃的一股被面向對象思想毒害的臭味。
就不多說了。
5、常用的+號方式
123456
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!
這種方式最常用、直觀、易懂,是入門級的實現方式。但是,它也存在兩處讓人容易犯錯的地方。
首先,新入門編程的同學容易犯錯,他們不知道字元串是不可變類型,新的字元串會獨佔一塊新的內存,而原來的字元串保持不變。上例中,拼接前有兩段字元串,拼接後實際有三段字元串。
其次,一些有經驗的老程序員也容易犯錯,他們以為當拼接次數不超過3時,使用+號連接符就會比其它方式快(ps:不少Python教程都是如此建議),但這沒有任何合理根據。
事實上,在拼接短的字面值時,由於CPython中的 常數折疊 (constant folding)功能,這些字面值會被轉換成更短的形式,例如'a'+'b'+'c' 被轉換成'abc','hello'+'world'也會被轉換成'hello world'。這種轉換是在編譯期完成的,而到了運行期時就不會再發生任何拼接操作,因此會加快整體計算的速度。
常數折疊優化有一個限度,它要求拼接結果的長度不超過20。所以,當拼接的最終字元串長度不超過20時,+號操作符的方式,會比後面提到的join等方式快得多,這與+號的使用次數無關。
8. Python字元串拼接的幾種方法
Python字元串拼接的幾種方法(python3.5):
1、str1+str2
使用+號進行字元串拼接:'wbz'+'ctt'='wbzctt'
2、str1,str2
這種方式有點特殊,如果兩個字元串用逗號隔開,那麼兩個字元串就會被拼接,嚴格講不
叫拼接:'wbz','ctt'=('wbz』,'ctt')
3、str1str2
這種拼接方式是Python獨有的,只要將兩個字元串放在一起,這兩個字元串就會自動拼接
成新的字元串,不管這兩個字元串中間是否存在空格:'wbz''ctt'='wbzctt'
'wbz''ctt'='wbzctt'
4、%連接字元串
這種方式相對於其他的拼接方式來說就有些強大了,因為它借鑒了C語言中printf()函數
的功能。這種方式用符號'%'連接一個字元串和一組變數,字元串中的特殊標記會被自動用
右邊變數組中的變數替換:'%s%s'%('wbz','ctt')='wbzctt'
5、字元串列表連接str.join(list)
這個函數join接受一個列表,並用字元串連接列表中的每一個元素:
data=['wbz','ctt','Python']
str='**##'
str.join(data)='wbz@@@ctt@@@Python'
6、字元串乘法
這種方法也是可以進行字元串拼接的,但是這種方式是不經常使用的:
str='Python'
str*2='PythonPython'