一、字符串str
放在引號中的字符稱爲字符串, 引號可以是單引號('...'
), 也可以是雙引號("..."
). 他們兩個和其他語言不一樣, 他們沒有本質差別. 在python中用str
表示
定義一個字符串
word = "hello python"
word1 = 'hello world!'
二、字符串的基本操作
2.1 字符串索引取值
字符串變量名[index]
: 返回字符串中index位置的字符.index
從左向右索引編號: 從 0 開始編號, 到字符串長度 - 1 截止.index
從右向左索引編號: 從 -1 開始編號, 到 -字符串長度 截止.- 索引取值超出範圍時會報錯:
IndexError: string index out of range
print(word[0], word[1]) # 輸出h e
print(word1[-1], word1[-6]) # 輸出! w
2.2 切片
字符串變量名[start: end: step]
: 返回字符串中一段子字符串- start: 開始位置索引, 包含在子字符串中
- end: 結束位置索引, 不包含在子字符串中
- step: 步長, 每隔
step-1
個字符取一個字符, 組成子字符串。 [可選的]
print(word[0: 5]) # 從0號位取到4號位
print(word[: 5]) # 字符串開始取到4號位
print(word[5:]) # 從5號位值開始取到字符串結束
print(word[::2]) # 給一個字符串取一個, 直到字符串結束
2.3 字符串拼接與重複
- 字符串可以使用 + 進行拼接, 也可以使用 * 進行重複
- 使用
*
重複字符串;"hel" * 2
-->"helhel"
- 相鄰兩個字符串字面值, python解釋器會自動進行拼接
- 兩個字符串變量 或 一個字符串變量一個字符串字面值 拼接必須使用 + ,
print("hello" + " world" * 2)
print("hello" " world")
print("hi " + word1)
2.4 轉義字符及原始字符串
\
: 轉義符號
- 轉義字符: 在python定義好特殊含義的字符
\n
: 換行
\t
: 橫向製表符
\v
: 縱向製表符
\r
: 回車
\f
: 換頁
\b
: 退格
\'
: 輸出’
\"
: 輸出"
\\
: 輸出反斜槓() - 原始字符串:
r''
在字符前面加字母r
取消轉義.
print(r"c:\nus") # 沒有r, 輸出 c:
us
2.5 字符串注意問題
python中字符串是不可變類型
- 進行如下操作時會報錯
字符串變量名[index] = "字符"
字符串變量名[start:end] = "字符串"
字符串駐留機制
- 對於符合標識符命名規則的字符組成的字符串(
字符
,數字
,_
), 內存中如果存在, 創建你一個時, 就會直接引用內存存在的字符串. 如果包含其他字符($
#
等), 則會重新開闢內容
>>> a = "hello_1314"
>>> b = "hello_1314"
>>> id(a)
2149242377648
>>> id(b)
2149242377648
>>>
>>> c = "hello$"
>>> d = "hello$"
>>> id(c)
2149242574576
>>> id(d)
2149240783600