字元串類型
- 2022 年 8 月 18 日
- 筆記
- Python, python零基礎入門教程, 零基礎
字元串類型是程式語言里非常重要的數據類型,因為幾乎所有的程式主要做的事情就是處理字元串,這個隨著大家的學習會有深入的體會。
字元串的定義
python中字元串(str)是使用單引號,雙引號,三引號包裹起來的字元的序列,用來表示文本資訊。
>>> a = 'a' # 單引號
>>> b = "bc" # 雙引號
>>> print(type(a), type(b))
<class 'str'> <class 'str'>
使用單引號和雙引號進行字元串定義沒有任何區別。
當單引號是字元串的一部分時用雙引號定義字元串,反之亦然。
但個人建議一般情況下使用單引號定義字元串,因為不需要按shift
鍵,方便。當然用雙引號也沒有什麼不好,但盡量保持一致。
>>> print('我最近看了"平凡的世界"')
我最近看了"平凡的世界"
>>> print("我最近看了'平凡的世界'")
我最近看了'平凡的世界'
一對單引號或雙引號只能定義單行字元串,三引號可以用來創建多行表示的字元串。
>>> content = '''窗前明月光,疑是地上霜;
舉頭望明月,低頭思故鄉。'''
>>> print(content)
窗前明月光,疑是地上霜;
舉頭望明月,低頭思故鄉。
三單引號和三雙引號也沒有本質區別。三雙引號一般用來做多行注釋,函數,類定義時的說明文檔。
"""
我是多行注釋
函數,類定義的說明文檔
後面我們再說
"""
字元串還有一個很重要的概念空字元串
,表示字元串中沒有任何字元,定義如下:
>>> a = ''
>>> print(a)
直接寫兩個引號,中間沒有空格,列印時沒有任何顯示。空字元串的概念非常重要,用來表示文本輸出為空。
字元串的索引
序列類型中的元素都用索引
來表示它在序列中的位置。
單個字元在字元串中的位置叫索引
,也叫下標
。
索引是從0開始的整數序列,0表示字元串的第一個位置,以此類推。
通過索引可以獲取字元串中的單個字元,語法如下:
str[index]
>>> s = 'Hello,world!'
>>> print(s[0])
H
索引還可以使用負數表示,-1
表示倒數第一個字元,-2
表示倒數第二個字元,以此類推。
>>> s = 'Hello,world!'
>>> print(s[-1])
!
>>> print(s[-2])
d
字元串的切片
獲取序列中的子序列叫切片。
字元串的切片就是獲取字元串的子串。字元串切片的語法如下:
str[start:end:step]
start
表示切片的開始索引,在切片的結果中包含開始索引的字元end
表示結束索引,在切片的結果中不包含結束索引的字元step
是步長,表示每隔幾個字元切片,當步長為1是可以省略。
看下面的案例:
>>> s = '012345678'
>>> print(s[1:5]) # 包頭不包尾
1234
從頭開始切片可以省略start
>>> print(s[:5])
01234
切到末尾包含末尾可以省略end
>>> print(s[1:])
12345678
當步長不為1時
>>> print(s[1::2])
13579
特別的,當步長為負數時,表示反向切片,切片會從後往前進行,例如:
>>> print(s[1::-1])
10
>>> print(s[9::-1])
876543210
字元串拼接
python中序列可以進行加法運算實現拼接。所以字元串可以通過+
進行拼接:
>>> a = 'hello'
>>> b = ' '
>>> c = 'world!'
>>> print(a+b+c)
hello world!
既然可以加法運算,那麼一般也可以和整數進行乘法運算,實現重複拼接的效果:
>>> print('*' * 10)
**********
字元串和數值的相互轉化
1
和'1'
不同,1.2
和'1.2'
也不相同,但是它們可以相互轉化。
整數和字元串之間的轉化
>>> int('1') # 整數字元串轉化為整數
1
>>> str(1) # 整數轉化為字元串
'1'
浮點數和字元串之間的轉化
>>> float('1.2')
1.2
>>> str(1.2)
'1.2'
將數值字元串轉化為對應的數值類型時,格式一定要正確,否則會拋出異常
>>> int('1.2') # '1.2'不是整數字元串運行會拋出異常
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: '1.2'
注意:如果你用print
函數列印整數和整數字元串輸出形式是一樣的。
>>> print(1)
1
>>> print('1')
1
轉義符
除了可見字元外,還有很多不可見的特殊字元,例如回車,換行,製表符等。這些字元是通過反斜杠\
和其他字元組合來表示,稱為轉義
,所以\
也稱為轉義符。常見的轉義字元如下表:
組合 | 符號 |
---|---|
\\ |
反斜杠符號 |
\' |
單引號 |
\" |
雙引號 |
\a | 響鈴 |
\n | 換行 |
\t | 橫向製表符 |
\r | 回車 |
\f | 換頁 |
>>> print('窗前明月光,\n疑是地上霜。') # 輸出換行
窗前明月光,
疑是地上霜。
>>> print('\'') # 輸出單引號本身
'
其他的轉義字元大家可以自行練習。
可以通過前導符r
,強制不轉義將字元串原樣輸出:
>>> print(r'窗前明月光,\n疑是地上霜。') # 不轉義
窗前明月光,\n疑是地上霜。
再給大家分享一個學習小技巧,我以前分不清正斜杠和反斜杠。直到有一天,撇`/`就是正,捺`\`就是反。
是不是秒記。
嘿嘿,不用謝!