微信公衆號:碼農充電站pro
我的主頁:https://codeshellme.github.iohtml
過早的優化代碼是罪惡之源。
—— Donald Knuthpython
目錄git
不管哪一種編程語言,字符串
處理都是最重要的內容之一。固然,Python 也不例外。github
在這節內容中,咱們已經知道了Python 字符串是用如下引號
引住的一串字符:shell
''
""
'''
"""
Python3
中的字符串
類型統一採用Unicode
編碼,所以支持多種語言。編程
咱們這裏介紹的字符串
類型,指的是<class 'str'>
:微信
>>> type('中國') <class 'str'> >>> type('abc') <class 'str'>
在用到某些特殊字符時,須要用到轉義字符----反斜槓\
。編程語言
下表是Python 中的一些經常使用轉義字符:函數
轉義字符 | 含義 |
---|---|
\\ |
反斜槓 |
\' |
單引號 |
\" |
雙引號 |
\n |
換行 |
\r |
回車 |
\t |
橫向製表符 |
使用len()
函數能夠獲取字符串的長度
:優化
>>> len('Hello') # 一個英文字符的長度是 1 5 >>> len('Hi') 2 >>> len('Python') 6 >>> len('中國') # 一箇中文字符的長度是 1 2
在Python 中能夠用中括號[]
來截取字符串內容。
獲取單個字符
經過下標
獲取字符串中的單個字符,語法格式以下:
s[n]
其中s
是一個字符串變量,n
爲下標,是一個整數,其取值範圍爲:
-len(s)<=n<=len(s)-1
-len(s)<=n<0
:從右往左數,取第n
個字符0<=n<=len(s)-1
:從左往右數,取第n+1
個字符圖解:
示例:
>>> s = 'Hello' # 字符換變量 s >>> len(s) # s 的長度 5 # 下標n 的範圍爲 -5<=n<=4 >>> s[-6] # 超出取值範圍,報錯 Traceback (most recent call last): File "<stdin>", line 1, in <module> IndexError: string index out of range >>> s[-5] # 取倒數第5 個字符 'H' >>> s[-1] # 取倒數第1 個字符 'o' >>> s[0] # 取第1 個字符 'H' >>> s[4] # 取最後一個字符 'o' >>> s[5] # 超出取值範圍,報錯 Traceback (most recent call last): File "<stdin>", line 1, in <module> IndexError: string index out of range
獲取部分字符
獲取部分字符串的語法格式以下:
s[m:n]
其中s
是一個字符串變量,m
和 n
能夠是任意的整數。
s[m:n]
表明的含義是:獲取字符串s
下標m
到 n
之間的子串,子串的值包含s[m]
,而不包含s[n]
,即遵循左閉右開
原則。
圖解:
示例:
>>> s = 'Hello' >>> s[-5:1] 'H' >>> s[-7:2] 'He' >>> s[-3:2] '' >>> s[0:3] 'Hel' >>> s[3:1] '' >>> s[3:-1] 'l'
m 和 n 均可不寫
m
,表明從最左
邊開始n
,表明到最右
邊結束示例:
>>> s = 'Hello' >>> s[:] # m 和 n 都不寫表明整個字符串 'Hello' >>> s[:3] # 不寫 m,表明從最左邊開始,直到下標 n 'Hel' >>> s[2:] # 不寫 n,表明從下標 m開始,直到最右邊 'llo'
加號+
運算符能夠鏈接兩個字符串
:
>>> 'abc' + '123' 'abc123' >>> 'Hi' + '你好' 'Hi你好'
一個字符串
乘一個整數n
,至關於n
個字符串相連:
>>> 'a' * 5 'aaaaa' >>> 'abc' * 3 'abcabcabc' >>> '你好' * 2 '你好你好'
運算符in
in
在Python 中是一個運算符
,可用於判斷一個子串
是否包含
在一個字符串
中:
>>> 'a' in 'abc' True >>> 'ab' in 'abc' True >>> 'ad' in 'abc' False
運算符not in
not in
是in
的反義,用於判斷一個子串
是否不包含
在一個字符串
中:
>>> 'a' not in 'abc' False >>> 'ab' not in 'abc' False >>> 'ad' not in 'abc' True
Python 字符串支持多種數據類型的格式化,字符串格式化符號
見下表:
符號 | 含義 |
---|---|
%c |
格式化字符 |
%s |
格式化字符串 |
%d |
格式化整數 |
%o |
格式化八進制數 |
%x/%X |
格式化十六進制數,後者爲大寫 |
%f |
格式化浮點數 |
%e |
用科學計數法格式化浮點數 |
示例:
>>> '%c' % 'a' # 格式化字符 'a' >>> '%c' % 'B' # 格式化字符 'B' >>> '%s' % '中國' # 格式化字符串 '中國' >>> '%s' % 'abc' # 格式化字符串 'abc' >>> '%s' % 123 # 數字類型也可格式化爲字符串 '123' >>> '%d' % 12345 # 格式化數字 '12345' >>> '%o' % 8 # 格式化八進制數字 '10' >>> '%o' % 9 # 格式化八進制數字 '11' >>> '%x' % 10 # 格式化十六進制數字,小寫 'a' >>> '%x' % 11 # 格式化十六進制數字,小寫 'b' >>> '%X' % 10 # 格式化十六進制數字,大寫 'A' >>> '%X' % 11 # 格式化十六進制數字,大寫 'B' >>> '%f' % 123.123 # 格式化浮點數 '123.123000' >>> '%e' % 123.123 # 科學計數法格式化浮點數 '1.231230e+02'
寬度與小數點位數
每種格式化符號以前均可以添加m.n
:
m
與 n
都是正整數m
表示格式化的寬度,對於浮點數無效n
表示小數點後的位數,只對浮點數有效示例:
>>> '%4s' % 'abc' # 總寬度爲 4 ' abc' # 'abc' 以前有 1 個空格 >>> '%5s' % 'abc' # 總寬度爲 5 ' abc' # 'abc' 以前有 2 個空格 >>> '%5d' % 100 # 總寬度爲 5 ' 100' # 100 以前有 2 個空格 >>> '%.5d' % 100 # 總寬度爲 5,注意 5 以前有個點 '00100' # 寬度不夠用 0 補齊,因此 100 以前有 2 個 0 >>> '%.2f' % 100.123 # 小數點後保留 2 位,多餘位數捨棄 '100.12' >>> '%.5f' % 100.123 # 小數點後保留 5 位,位數不夠,用 0 補齊 '100.12300'
左對齊與右對齊
默認狀況下,寬度
不夠時,會在左邊加空格,這是右對齊
:
>>> '%5s' % 'abc' # 寬度爲 5,不夠用空格補齊,右對齊 ' abc'
可在數字5
以前添加一個負號-
,寬度
不夠時,會在右邊加空格,這是左對齊
:
>>> '%-5s' % 'abc' # 寬度爲 5,不夠用空格補齊,左對齊 'abc '
(完。)
推薦閱讀:
Python 簡明教程 --- 2,第一個Python 程序
Python 簡明教程 --- 4,Python 變量與基本數據類型
Python 簡明教程 --- 5,Python 表達式與運算符
歡迎關注做者公衆號,獲取更多技術乾貨。