Python學習筆記(1)——字符串拼接、長字符串、原始字符串r、格式設置%

1. 單引號和雙引號

字符串可以用單引號或雙引號括起來,含義是一樣的。但是當字符串中有引號時,可以將單引號和雙引號結合使用,或使用反斜槓轉義。

>>> "Hello world!"
'Hello world!'
>>> 'Hello world!'
'Hello world!'
>>> "Let's go."
"Let's go."
>>> 'Let\'s go'
"Let's go"

2. 拼接字符串

依次輸入兩個字符串,或者使用“+”拼接。

>>> 'Hello ''world'
'Hello world'
>>> 'Hello ' + 'world'
'Hello world'

3. 長字符串

要表示很長的字符串(需要換行)時,可以使用三個引號,或者在行尾處加上反斜槓。有一點區別,使用三個引號的長字符串會換行,而使用反斜槓的不換行。

>>> print('''這個字符串很長,
... 一行放不下,
... 它一共佔了3行。''')
這個字符串很長,
一行放不下,
它一共佔了3行。
>>> print('這個字符串很長,\
... 一行放不下,\
... 它一共佔了3行。')
這個字符串很長,一行放不下,它一共佔了3行。

4. 原始字符串

當字符串的內容是磁盤路徑或正則表達式時,爲了避免歧義我需要用反斜槓來轉義反斜槓:

path = ‘C:\\python\\script\\test.py’

這時,原始字符串“r”就很有用了,因爲他不以特殊方式處理反斜槓。

>>> path = r'C:\python\script\test.py'
>>> print(path)
C:\python\script\test.py

但是有一種特殊情況,如果字符串末尾是反斜槓,會報錯!

爲什麼?因爲在原始字符串中,反斜槓仍可對引號轉義,也就是反斜槓後的引號被識別爲字符串的內容, 因此如果反斜槓在末尾,那麼字符串就沒有結束的標誌了。如果一定要以反斜槓結尾,可以這樣做:

>>> path = r'C:\python\script' + '\\'
>>> print(path)
C:\python\script\

5. 設置字符串格式

假設我有一個測試算法錯誤率的方法,它需要打印結果,形如“本算法對100個樣本做測試,分類錯誤15個,錯誤率爲15%,算法錯誤率比較低。”,其中紅色字體的值是取自變量的值,這時我們就需要用到字符串格式設置的方法。

  • 使用轉換說明符%

%s——格式化爲字符串;%d——格式化爲整數;%.2f%%——兩位小數的浮點數,後面加%顯示爲百分比形式

>>> sampleCount = 200
>>> errorCount = 15
>>> errorRate = errorCount / sampleCount
>>> result = ''
>>> if errorRate <= 0.1:
...     result = '很低'
... elif errorRate <= 0.2:
...     result = '較低'
... else:
...     result = '較高'
...     
>>> print('本算法對%d個樣本做測試,分類錯誤%d個,錯誤率爲%.2f%%,算法錯誤率%s。' % (
...     sampleCount, errorCount, errorRate*100, result))
本算法對200個樣本做測試,分類錯誤15個,錯誤率爲7.50%,算法錯誤率很低。
  • 使用模板字符串

>>> tmp1 = Template('本算法對$sCount個樣本做測試,\
... 分類錯誤$eCount個,錯誤率爲$eRate,算法錯誤率$r。')
>>> tmp1.substitute(sCount=sampleCount, eCount=errorCount, eRate='%.2f%%'%(errorRate*100), r=result)
'本算法對200個樣本做測試,分類錯誤15個,錯誤率爲7.50%,算法錯誤率很低。'
  • 使用format方法

>>> # 使用索引指定值
>>> '本算法對{0}個樣本做測試,分類錯誤{1}個,錯誤率爲{2:.2%},\
算法錯誤率{3}。'.format(sampleCount, errorCount, errorRate, result)
'本算法對200個樣本做測試,分類錯誤15個,錯誤率爲7.50%,算法錯誤率很低。'

>>> # 使用字段名指定值
>>>'本算法對{a}個樣本做測試,分類錯誤{b}個,錯誤率爲{c:.2%},\
算法錯誤率{d}。'.format(a=sampleCount, b=errorCount, c=errorRate, d=result)
'本算法對200個樣本做測試,分類錯誤15個,錯誤率爲7.50%,算法錯誤率很低。'

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章