1 定义
字符串 (String) 是用于表示文本的数据类型,由零个或多个字符组成的不可变序列。可以使用单引号 ('...')、双引号 ("...") 或三引号 ('''...''' 或 """...""") 创建字符串。 三引号可以用于创建多行字符串
代码:
# 创建字符串
str1 = 'Hello'
str2 = "World"
str3 = """This is a
multi-line string"""
print(str1)
print(str2)
print(str3)
结果:
2 索引和切片
字符串中的字符可以通过索引访问,也可以通过切片获取子字符串。
代码:
# 索引和切片
string = "Python"
print(f"第一个字符:{string[0]}, 最后一个字符:{string[-1]}, 切片:{string[1:4]}") # P, n, yth
结果:
3 拼接
可以使用 + 运算符将多个字符串拼接成一个字符串。
代码:
# 拼接
greeting = str1 + " " + str2
print(greeting) # Hello World
结果:
4 格式化
可以使用 % 运算符、.format() 方法或 f-string 对字符串进行格式化。
代码:
# 格式化
name = "Alice"
age = 30
print("Hello, %s! You are %d years old." % (name, age)) # 使用 % 运算符
print("Hello, {}! You are {} years old.".format(name, age)) # 使用 .format() 方法
print(f"Hello, {name}! You are {age} years old.") # 使用 f-string
结果:
5 常用方法
find():查找子字符串。
replace():替换子字符串。
split():分割字符串。
join():连接字符串。
upper():转换为大写。
lower():转换为小写。
strip():去除字符串两端的空格。
代码:
# 常用方法
text = " Python is awesome! "
print(f"查找 'is' 的位置:{text.find('is')}")
print(f"替换 'awesome' 为 'great':{text.replace('awesome', 'great')}")
print(f"分割字符串:{text.split()}")
print(f"转换为大写:{text.upper()}")
print(f"转换为小写:{text.lower()}")
print(f"去除空格:{text.strip()}")
结果:
6 案例
①字符串反转
代码:
#字符串反转
def reverse_string(s):
"""
反转字符串.
Args:
s: 待反转的字符串.
Returns:
反转后的字符串.
"""
return s[::-1] # 使用切片实现反转
print(f"反转 'Python':{reverse_string('Python')}")
结果:
②统计字符串中某个字符出现的次数
代码:
def count_char(s, char):
"""
统计字符串中某个字符出现的次数.
Args:
s: 待统计的字符串.
char: 待统计的字符.
Returns:
字符出现的次数.
"""
count = 0
for c in s:
if c == char:
count += 1
return count
print(f"字符串 'banana' 中 'a' 出现的次数:{count_char('banana', 'a')}")
结果:
③判断一个字符串是否为回文串
代码:
#判断一个字符串是否为回文串
def is_palindrome(s):
"""
判断一个字符串是否为回文串.
Args:
s: 待判断的字符串.
Returns:
如果是回文串,返回True;否则返回False.
"""
s = s.lower() # 忽略大小写
return s == s[::-1]
print(f"'madam' 是否为回文串:{is_palindrome('madam')}")
print(f"'racecar' 是否为回文串:{is_palindrome('racecar')}")
print(f"'hello' 是否为回文串:{is_palindrome('hello')}")
结果:
④提取字符串中的数字或字母
代码:
#提取字符串中的数字或字母
def extract_digits(s):
"""
提取字符串中的数字.
Args:
s: 待提取的字符串.
Returns:
提取到的数字组成的字符串.
"""
digits = ""
for c in s:
if c.isdigit(): # 检查是否为数字
digits += c
return digits
print(f"提取 'abc123def456' 中的数字:{extract_digits('abc123def456')}")
结果:
7 应用场景
- 文本处理
- 数据清洗
- 网络编程
- 用户界面
- 日志记录