文章目錄
- 一. 字符串的定義
- 二. 字符串的基本用法
- 1. 訪問字符串中的字符
- 2. 字符串切片
- 3. 字符串拼接
- 4. 字符串重復
- 5.字符串比較
- 6.字符串成員運算
- 三. 字符串的常用方法
- 1. `len()` 函數
- 2. `upper()` 和 `lower()` 方法
- 3. `strip()` 方法
- 4. `replace()` 方法
- 5. `split()` 方法
- 四. 字符串的進階用法
- 1. 格式化字符串
- 2. 字符串的轉義字符
- 3. 字符串的編碼與解碼
- 4.原始字符串
- 5.字符串的特色表示
在 Python 里,字符串屬于內置的數據類型,用來表示文本數據。
一. 字符串的定義
在 Python 中,定義字符串的方式多樣且靈活。單引號是常用的一種,如 str1 = ‘Hello, World!’,能簡潔地包裹普通文本。雙引號同樣適用,str2 = “Python is great”,與單引號在功能上并無本質區別,主要用于滿足不同場景下代碼風格或字符串內容中包含單引號的情況 。而三引號則獨具魅力,str3 = ‘’‘This is a multi - line string.’‘’,它允許創建多行字符串,對于需要保留格式的文本,如文檔注釋、詩歌等,極為便利。字符串中的字符類型豐富,除常見的英文字母、特殊符號外,中文字符、日文假名、希臘字母以及 Emoji 字符(如:💩、🐷、🀄?)等均可包含其中,極大拓展了字符串的表現力。。
# 使用單引號定義字符串
str1 = 'Hello, World!'
# 使用雙引號定義字符串
str2 = "Python is great"
# 使用三引號定義多行字符串
str3 = '''This is a
multi - line string.'''
二. 字符串的基本用法
1. 訪問字符串中的字符
字符串是一個序列,你可以通過索引來訪問其中的字符,索引從 0 開始。可以精準訪問其中字符
str4 = "Hello"
print(str4[0]) # 輸出 'H'
print(str4[-1]) # 輸出 'o',負索引表示從字符串末尾開始計數
2. 字符串切片
你可以使用切片來獲取字符串的一部分。
str5 = "Python Programming"
print(str5[0:6]) # 輸出 'Python'
print(str5[7:]) # 輸出 'Programming'
3. 字符串拼接
可以使用 +
運算符來拼接兩個或多個字符串。
str6 = "Hello"
str7 = " World"
print(str6 + str7) # 輸出 'Hello World'
4. 字符串重復
使用 *
運算符可以重復字符串。
str8 = "Hi"
print(str8 * 3) # 輸出 'HiHiHi'
5.字符串比較
可以使用比較運算符(如 ==、!=、<、>、<=、>=)對字符串進行比較。比較時是按照字符的 ASCII 碼值逐字符進行比較的。
str9 = "apple"
str10 = "banana"
print(str9 == str10) # 輸出: False
print(str9 < str10) # 輸出: True,因為 'a' 的 ASCII 碼值小于 'b'
6.字符串成員運算
使用 in
和not in
運算符可以檢查一個字符串是否包含另一個字符串
str11 = "hello python"
print("python" in str11) # 輸出: True
print("javascript" not in str11) # 輸出:True
三. 字符串的常用方法
1. len()
函數
用于返回字符串的長度。
str9 = "Python"
print(len(str9)) # 輸出 6
2. upper()
和 lower()
方法
upper()
方法將字符串中的所有字母轉換為大寫,lower()
方法將字符串中的所有字母轉換為小寫。
str10 = "Hello"
print(str10.upper()) # 輸出 'HELLO'
print(str10.lower()) # 輸出 'hello'
3. strip()
方法
用于去除字符串首尾的空白字符。
str11 = " Hello "
print(str11.strip()) # 輸出 'Hello'
4. replace()
方法
用于替換字符串中的指定子字符串。
str12 = "Hello, World"
print(str12.replace("World", "Python")) # 輸出 'Hello, Python'
5. split()
方法
根據指定的分隔符將字符串分割成一個列表。
str13 = "apple,banana,cherry"
print(str13.split(",")) # 輸出 ['apple', 'banana', 'cherry']
四. 字符串的進階用法
1. 格式化字符串
Python 提供了多種字符串格式化的方式,如舊式的 %
格式化、str.format()
方法和 f - 字符串。
舊式的 %
格式化
name = "Alice"
age = 25
print("My name is %s and I am %d years old." % (name, age))
str.format()
方法
name = "Bob"
age = 30
print("My name is {} and I am {} years old.".format(name, age))
f - 字符串(Python 3.6+)
name = "Charlie"
age = 35
print(f"My name is {name} and I am {age} years old.")
2. 字符串的轉義字符
在字符串中,你可以使用轉義字符來表示一些特殊字符,如換行符 \n
、制表符 \t
等。
print("Hello\nWorld") # 輸出兩行:Hello 和 World
3. 字符串的編碼與解碼
在 Python 中,字符串可以進行編碼(將字符串轉換為字節序列)和解碼(將字節序列轉換為字符串)。
str14 = "你好"
# 編碼
bytes_str = str14.encode('utf-8')
# 解碼
decoded_str = bytes_str.decode('utf-8')
print(decoded_str) # 輸出 '你好'
4.原始字符串
Python 中有一種以r
或R
開頭的字符串,這種字符串被稱為原始字符串,意思是字符串中的每個字符都是它本來的含義,沒有所謂的轉義字符。例如,在字符串'hello\n'
中,\n
表示換行;而在r'hello\n'
中,\n
不再表示換行,就是字符\
和字符n
。大家可以運行下面的代碼,看看會輸出什么。
s1 = '\it \is \time \to \read \now'
s2 = r'\it \is \time \to \read \now'
print(s1)
print(s2)
說明:上面的變量
s1
中,\t
、\r
和\n
都是轉義字符。\t
是制表符(table),\n
是換行符(new line),\r
是回車符(carriage return)相當于讓輸出回到了行首。對比一下兩個
5.字符串的特色表示
Python 中還允許在\
后面還可以跟一個八進制或者十六進制數來表示字符,例如\141
和\x61
都代表小寫字母a
,前者是八進制的表示法,后者是十六進制的表示法。另外一種表示字符的方式是在\u
后面跟 Unicode 字符編碼,例如\u9a86\u660a
代表的是中文“駱昊”。運行下面的代碼,看看輸出了什么。
s1 = '\141\142\143\x61\x62\x63'
s2 = '\u9a86\u660a'
print(s1)
print(s2)