1 定义
字符串 (String) 是用于表示文本的数据类型,由零个或多个字符组成的不可变序列。可以使用单引号 ('...')、双引号 ("...") 或三引号 ('''...''' 或 """...""") 创建字符串。 三引号可以用于创建多行字符串
代码:
# 创建字符串str1 = 'Hello'str2 = "World"str3 = """This is amulti-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 + " " + str2print(greeting) # Hello World
4 格式化
可以使用 % 运算符、.format() 方法或 f-string 对字符串进行格式化。
代码:
# 格式化name = "Alice"age = 30print("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 countprint(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 digitsprint(f"提取 'abc123def456' 中的数字:{extract_digits('abc123def456')}")
7 应用场景