Python 字符串是不可变的序列类型,用于表示文本数据。以下是一些关键知识点和常用操作:
**1. 创建字符串**
- 使用单引号 `'...'` 或双引号 `"..."`:
```python
s1 = 'Hello'
s2 = "World"
```
- 多行字符串用三引号 `'''...'''` 或 `"""..."""`:
```python
s3 = '''This is a
multi-line string'''
```
**2. 转义字符**
- 使用反斜杠 `\` 转义特殊字符:
```python
s = "He said, \"Python is awesome!\""
```
- 原始字符串(忽略转义)用前缀 `r`:
```python
path = r"C:\Users\Name\Documents"
```
**3. 常用操作**
- **拼接**:`+` 或 `*`:
```python
s = "Hello" + " " + "World" # "Hello World"
s = "Hi" * 3 # "HiHiHi"
```
- **索引与切片**:
```python
s = "Python"
print(s[0]) # 'P'(索引从0开始)
print(s[-1]) # 'n'(倒数第一个)
print(s[2:5]) # 'tho'(切片[2,5))
```
- **长度**:`len(s)`
- **成员检查**:`in` 或 `not in`:
```python
if "th" in "Python": print("Found")
```
**4. 字符串方法**
- **分割与合并**:
```python
s = "a,b,c"
parts = s.split(",") # ['a', 'b', 'c']
joined = "-".join(parts) # 'a-b-c'
```
- **大小写转换**:
```python
s = "Hello"
print(s.upper()) # 'HELLO'
print(s.lower()) # 'hello'
print(s.title()) # 'Hello'
```
- **去除空白**:
```python
s = " text "
print(s.strip()) # 'text'
```
- **替换内容**:
```python
s = "Hello World"
new_s = s.replace("World", "Python") # 'Hello Python'
```
- **查找子串**:
```python
s = "Python"
print(s.find("th")) # 2(返回索引)
print(s.startswith("Py")) # True
```
**5. 字符串格式化**
- **f-string(推荐,Python 3.6+)**:
```python
name = "Alice"
age = 25
print(f"{name} is {age} years old.") # 'Alice is 25 years old.'
```
- **`format()` 方法**:
```python
print("{} is {} years old.".format(name, age))
```
- **旧式 `%` 格式化**:
```python
print("%s is %d years old." % (name, age))
```
**6. 不可变性**
- 字符串创建后不可修改,每次操作会生成新字符串:
```python
s = "abc"
s[0] = "A" # 报错!不可修改
s = "A" + s[1:] # 正确:创建新字符串
```
**7. 编码与解码**
- 字符串(Unicode)与字节(Bytes)转换:
```python
text = "你好"
bytes_data = text.encode("utf-8") # b'\xe4\xbd\xa0\xe5\xa5\xbd'
decoded_text = bytes_data.decode("utf-8") # '你好'
```
**示例代码**
```python
# 字符串反转
s = "Python"
reversed_s = s[::-1] # 'nohtyP'
# 统计字符出现次数
count = s.count('y') # 1
# 检查是否全为字母或数字
print(s.isalnum()) # True
```
掌握这些操作后,你可以高效处理大多数文本任务!
Fighting!