一、字串型別的表示
在Python中,字串可以使用單引號 ('
)、雙引號 ("
)、三引號 ('''
或 """
) 來表示
# 使用單引號
string1 = 'Hello, World!'
# 使用雙引號
string2 = "Hello, World!"
# 使用三引號
string3 = '''Hello,
World!'''
string4 = """Hello,
World!"""
其中,單引號和雙引號的字串必須在同一行,而三引號的字串可以跨越多行
二、字串運算子
Python提供了一些運算子用於處理字串:
連線運算子(+
):
python複製程式碼str1 = "Hello"
str2 = "World"
result = str1 + " " + str2 # "Hello World"
重複運算子(*
):
python複製程式碼str1 = "Hello"
result = str1 * 3 # "HelloHelloHello"
成員運算子(in
和 not in
):
python複製程式碼str1 = "Hello"
result = 'H' in str1 # True
result = 'h' not in str1 # True
索引運算子([]
):
python複製程式碼str1 = "Hello"
result = str1[1] # 'e'
切片運算子([:]
):
python複製程式碼str1 = "Hello"
result = str1[1:4] # 'ell'
三、字串處理函式
Python內建了許多處理字串的函式,這些函式通常以獨立函式的形式出現:
-
len()
:返回字串的長度。python複製程式碼str1 = "Hello" result = len(str1) # 5
-
str()
:將其他型別轉換為字串。python複製程式碼num = 123 result = str(num) # "123"
-
ord()
和chr()
:分別返回字元的Unicode碼點和碼點對應的字元。python複製程式碼char = 'A' result = ord(char) # 65 result = chr(65) # 'A'
四、字串處理方法
字串是Python中的一個物件,因此它有許多方法用於處理和操作。常用的方法包括:
-
upper()
和lower()
:將字串轉換為全大寫或全小寫。python複製程式碼str1 = "Hello" result = str1.upper() # "HELLO" result = str1.lower() # "hello"
-
strip()
、lstrip()
和rstrip()
:移除字串兩端、左端或右端的空白字元。python複製程式碼str1 = " Hello " result = str1.strip() # "Hello" result = str1.lstrip() # "Hello " result = str1.rstrip() # " Hello"
-
replace()
:替換字串中的某些子串。python複製程式碼str1 = "Hello World" result = str1.replace("World", "Python") # "Hello Python"
-
split()
和join()
:分割和連線字串。python複製程式碼str1 = "Hello,World" result = str1.split(",") # ['Hello', 'World'] list1 = ['Hello', 'World'] result = ",".join(list1) # "Hello,World"
-
find()
和rfind()
:查詢子串在字串中的位置。python複製程式碼str1 = "Hello World" result = str1.find("World") # 6 result = str1.rfind("l") # 9
五、字串型別的格式化
Python提供了多種字串格式化的方法,常見的有以下幾種:
-
百分號格式化:
python複製程式碼name = "World" result = "Hello, %s" % name # "Hello, World"
python複製程式碼name = "World"
result = "Hello, {}".format(name) # "Hello, World"
-
f-string(格式化字串字面量):
python複製程式碼name = "World" result = f"Hello, {name}" # "Hello, World"
六str.format()
方法詳解
str.format()
方法是Python提供的一種強大且靈活的字串格式化方式,允許我們在字串中插入變數和表示式。與傳統的百分號 (%
) 格式化相比,str.format()
方法提供了更多的控制和更易讀的語法。下面我們將詳細介紹 str.format()
方法的各種用法。
基本用法
str.format()
方法使用花括號 {}
作為佔位符,在字串中插入變數值。
python複製程式碼name = "Alice"
age = 30
result = "Name: {}, Age: {}".format(name, age)
print(result) # 輸出: "Name: Alice, Age: 30"
指定位置
可以透過在花括號中指定位置引數,以便在多個變數時更靈活地排列輸出順序。
python複製程式碼name = "Alice"
age = 30
result = "Name: {0}, Age: {1}, {0} is {1} years old.".format(name, age)
print(result) # 輸出: "Name: Alice, Age: 30, Alice is 30 years old."
使用關鍵字引數
str.format()
允許使用關鍵字引數,這樣可以更明確地指定每個值。
python複製程式碼result = "Name: {name}, Age: {age}".format(name="Alice", age=30)
print(result) # 輸出: "Name: Alice, Age: 30"
填充與對齊
可以在花括號中使用 :
後跟對齊方式和填充字元:
<
:左對齊>
:右對齊^
:居中對齊
python複製程式碼result = "{:<10}".format("Left")
print(result) # 輸出: "Left "
result = "{:>10}".format("Right")
print(result) # 輸出: " Right"
result = "{:^10}".format("Center")
print(result) # 輸出: " Center "
result = "{:*^10}".format("Center")
print(result) # 輸出: "**Center**"
數字格式化
可以使用格式說明符對數字進行格式化:
d
:十進位制整數f
:浮點數e
:科學計數法
python複製程式碼number = 1234.56789
result = "Integer: {:d}".format(1234)
print(result) # 輸出: "Integer: 1234"
result = "Float: {:.2f}".format(number)
print(result) # 輸出: "Float: 1234.57"
result = "Scientific: {:.2e}".format(number)
print(result) # 輸出: "Scientific: 1.23e+03"
千位分隔符
可以使用逗號 ,
作為千位分隔符,使數字更易讀:
python複製程式碼number = 1234567890
result = "Number with commas: {:,}".format(number)
print(result) # 輸出: "Number with commas: 1,234,567,890"
百分比格式化
可以使用百分比符號 %
進行百分比格式化:
python複製程式碼number = 0.12345
result = "Percentage: {:.2%}".format(number)
print(result) # 輸出: "Percentage: 12.35%"
巢狀格式化
str.format()
方法還支援巢狀和複合欄位:
python複製程式碼data = {
"name": "Alice",
"age": 30
}
result = "Name: {data[name]}, Age: {data[age]}".format(data=data)
print(result) # 輸出: "Name: Alice, Age: 30"
訪問物件屬性
str.format()
允許直接訪問物件的屬性和方法:
python複製程式碼class Person:
def __init__(self, name, age):
self.name = name
self.age = age
person = Person("Alice", 30)
result = "Name: {0.name}, Age: {0.age}".format(person)
print(result) # 輸出: "Name: Alice, Age: 30"