字符串是PYTHON中表示字符序列的數據結構。它是一種不可變的數據類型,一旦創建了字符串,就無法更改它,只能重新賦值。
Python中沒有「字符」數據類型,單個字符使用長度為1的字符串來表示。
Python中的字符串可以使用單引號或雙引號甚至三引號創建。字符串的內容可以包含字母、數字、標點、特殊符號、中文等全世界的所有文字。
創建字符串
str1='123'
print(str1)
str2="123abc"
print(str2)
str3='''http://www.zbxx.net'''
print(str3)
輸出:
123
123abc
http://www.zbxx.net
訪問字符串中的字符
在Python中,可以使用索引方法訪問字符串中的各個字符。同列表一樣,可以使用正負索引訪問字符。
str1='Python'
#正索引,輸出索引號為0的字符
print(str1[0])
#負索引,輸出索引號為-1的字符
print(str1[-1])
#切片,輸出索引號1到3的字符
print(str1[1:4])
#切片,輸出索引號1到3,步長為2的字符
print(str1[1:4:2])
#反轉字符串
print(str1[::-1])
輸出:
P
n
yth
yh
nohtyP
修改刪除字符串
在 Python 中,不允許修改或刪除字符串中的字符,只能對整個字符串重新賦值。我們可以通過其他方法來修改字符串。
Str1="Hello,Python"
#轉換成列表,修改列表元素,再轉成字符串
list1=list(Str1)
list1[1]='a'
Str2=''.join(list1)
print(Str2)
#切片保留字符,連接字符串
Str3=Str1[0] +'a'+Str1[2:]
print(Str3)
#刪除字符串
del Str1
print(Str1)
輸出:
Hallo,Python
Hallo,Python
Traceback (most recent call last): File "C:\Users\Administrator\1.py", line 17, in print(Str1) NameError: name 'Str1' is not defined
使用 del 關鍵字可以刪除整個字符串,刪除後嘗試輸出字符串,將產生錯誤,因為字符串已刪除無法列印輸出。
字符串中的轉義字符
因為字符串包含在單引號和雙引號中,字符串中出現單引號和雙引號可能導致出錯,要列印此類字符串,可以使用三引號或使用轉義字符解決。
Str1='''I'm "Python"'''
print(Str1)
#轉義字符單引號
Str1='I\'m "Python"'
print(Str1)
#轉義字符雙引號
Str1="I'm \"Python\""
print(Str1)
#轉義字符反斜槓
Str1="C:\\Python\\"
print(Str1)
輸出:
I'm "Python"
I'm "Python"
I'm "Python"
C:\Python\
轉義字符 |
說明 |
\n |
換行符,將光標位置移到下一行開頭。 |
\r |
回車符,將光標位置移到本行開頭。 |
\t |
水平制表符,也即 Tab 鍵,一般相當於四個空格。 |
\a |
蜂鳴器響鈴。注意不是喇叭發聲,現在的計算機很多都不帶蜂鳴器了,所以響鈴不一定有效。 |
\b |
退格(Backspace),將光標位置移到前一列。 |
\ |
反斜線 |
' |
單引號 |
" |
雙引號 |
\ |
在字符串行尾的續行符,即一行未完,轉到下一行繼續寫。 |
長字符串
要想換行書寫一個比較長的字符串,必須在行尾添加反斜槓\
使用三個單引號或者雙引號可以對多行內容進行注釋,可以用於Python長字符串書寫,可以直接換行(不用加反斜槓\)書寫的字符串。
Str1='I am Python,If we try to access an index out \
of the range or use numbers other than an \
integer, we will get errors.'
Str1='''I am Python,If we try to access an index out
of the range or use numbers other than an
integer, we will get errors.'''
原始字符串
字符串中使用轉義字符的寫法需要特別謹慎,稍有疏忽就會出錯。為了解決轉義字符的問題,Python支持原始字符串。在原始字符串中,\不會被當作轉義字符。原始字符串的結尾處不能是反斜槓。
字符串開頭加上r前綴,就變成了原始字符串。
Str1=r'C:\Python'
Str2=r'I\'m "Python"'
print(Str1)
print(Str2)
輸出:
C:\Python
I'm "Python"
字符串相關函數方法
replace() 方法把字符串中的old(舊字符串)替換成new(新字符串),如果指定第三個參數max,則替換不超過max 次。
replace()方法語法:
str.replace(old, new[, max])
詳細使用方法示例請參照:
在Python中刪除字符串中的特定字符
join() 方法多個字符串連接成一個字符串
詳細使用方法示例請參照:
詳解使用Python join()方法連接序列生成新的字符串
格式化輸出:
在Python中使用模運算符(%)進行字符串格式化
神奇的Python3字符串格式化新功能: f-Strings
#lower()將字符串中的所有字符轉為小寫。
Str1='Python'
Str1=Str1.lower()
print(Str1)
#upper()將字符串中的所有字符轉為大寫。
Str1='Python'
Str1=Str1.upper()
print(Str1)
#capitalize()將字符串的第一個字母大寫。
Str1='python'
Str1=Str1.capitalize()
print(Str1)
#startswith()返回布爾類型值:True 或 False。檢查字符串的第一個字符是否是正在查找的字符。
Str1='python'
b=Str1.startswith("P")
print(b)
Str1='Python'
b=Str1.startswith("P")
print(b)
#endswith()檢查字符串的最後一個字符是否是正在查找的字符。
Str1='python'
b=Str1.endswith("n")
print(b)
Str1='Python'
b=Str1.endswith("N")
print(b)
#index()返回第一個匹配子字符串的索引。
Str1='python'
b=Str1.index("t")
print(b)
#find()與index()類似,find找不到返回-1,index找不到時引發ValueError。
Str1='python'
b=Str1.find("a")
print(b)
#count()統計字符在字符串中出現的次數。
Str1='pythonpythonpython'
b=Str1.count("t")
print(b)
#split()用指定字符拆分字符串。
Str1='pythonpythonpython'
b=Str1.split("t")
print(b)
輸出:
python
PYTHON
Python
False
True
True
False
2
-1
3
['py', 'honpy', 'honpy', 'hon']