Python 簡明教程 --- 7,Python 字符串

微信公衆號:碼農充電站pro
我的主頁:https://codeshellme.github.iohtml

過早的優化代碼是罪惡之源。
—— Donald Knuthpython

目錄git

在這裏插入圖片描述

不管哪一種編程語言,字符串處理都是最重要的內容之一。固然,Python 也不例外。github

1,Python 字符串

這節內容中,咱們已經知道了Python 字符串是用如下引號引住的一串字符:shell

  • 單引號''
  • 雙引號""
  • 三單引號'''
  • 三雙引號"""

Python3 中的字符串類型統一採用Unicode 編碼,所以支持多種語言。編程

咱們這裏介紹的字符串類型,指的是<class 'str'>微信

>>> type('中國')
<class 'str'>
>>> type('abc')
<class 'str'>

2,經常使用轉義字符

在用到某些特殊字符時,須要用到轉義字符----反斜槓\編程語言

下表是Python 中的一些經常使用轉義字符:函數

轉義字符 含義
\\ 反斜槓
\' 單引號
\" 雙引號
\n 換行
\r 回車
\t 橫向製表符

3,字符串長度

使用len() 函數能夠獲取字符串的長度優化

>>> len('Hello') # 一個英文字符的長度是 1
5
>>> len('Hi')
2
>>> len('Python')
6
>>> len('中國')	# 一箇中文字符的長度是 1
2

4,截取字符串

在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 是一個字符串變量,mn 能夠是任意的整數。

s[m:n] 表明的含義是:獲取字符串s 下標mn 之間的子串,子串的值包含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'

5,字符串鏈接

加號+ 運算符能夠鏈接兩個字符串

>>> 'abc' + '123'
'abc123'
>>> 'Hi' + '你好'
'Hi你好'

6,重複字符串

一個字符串 乘一個整數n,至關於n 個字符串相連:

>>> 'a' * 5
'aaaaa'
>>> 'abc' * 3
'abcabcabc'
>>> '你好' * 2
'你好你好'

7,字符串包含

運算符in

in 在Python 中是一個運算符,可用於判斷一個子串是否包含在一個字符串中:

>>> 'a' in 'abc'
True
>>> 'ab' in 'abc'
True
>>> 'ad' in 'abc'
False

運算符not in

not inin 的反義,用於判斷一個子串是否不包含在一個字符串中:

>>> 'a' not in 'abc'
False
>>> 'ab' not in 'abc'
False
>>> 'ad' not in 'abc'
True

8,字符串格式化

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

  • mn 都是正整數
  • 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 簡明教程 --- 3,Python 基礎概念

Python 簡明教程 --- 4,Python 變量與基本數據類型

Python 簡明教程 --- 5,Python 表達式與運算符

Python 簡明教程 --- 6,Python 控制流


歡迎關注做者公衆號,獲取更多技術乾貨。

碼農充電站pro

相關文章
相關標籤/搜索