目录
引言
一、字符串的基本定义与访问
(一)字符串的定义
(二)字符串的索引与切片
二、字符串的常用操作方法
(一)字符串的拼接与重复
(二)字符串的大小写转换
(三)字符串的去除空白
(四)字符串的查找与替换
(五)字符串的分割与连接
(六)字符串的判断方法
三、字符串的格式化
(一)使用%运算符
(二)使用str.format()方法
(三)使用 f - 字符串(Python 3.6+)
四、字符串的不可变性
五、总结
在 Python 中,字符串是由字符组成的不可变序列,用于表示文本信息。Python 提供了丰富的字符串操作方法,让我们能够便捷地处理文本数据。下面将详细介绍字符串的常用操作。
字符串可以使用单引号('
)、双引号("
)或三引号('''
或 """
)定义,其中三引号可用于定义多行字符串。
运行
# 单引号定义字符串
str1 = 'Hello World'
# 双引号定义字符串
str2 = "Python Pycharm"
# 三引号定义多行字符串
str3 = '''这是一个
多行字符串'''
[start:end:step]
的形式获取字符串的子串,其中start
为起始索引(包含),end
为结束索引(不包含),step
为步长(默认为 1)。运行
s = "good good study"
print(s[0], s[1], s[2], s[8])
print(s[0:5:1])
print(s[0::5])
print(s[-1], s[-2], s[-3])
print(s[::-1])
+
运算符可以拼接字符串。*
运算符可以重复字符串。运行
l0 = []
items = list("good good study")
print(type(l0), type(items))
s1 = "123"
s2 = "456"
s3 = s1 + s2
print(s3)
l1 = [1, 2 ,3]
l2 = [4, 5, 6]
l3 = l1 + l2
l4 = l1 * 3
print(l3)
print(l4)
upper()
:将字符串中的所有字符转换为大写。lower()
:将字符串中的所有字符转换为小写。title()
:将字符串中每个单词的首字母转换为大写,其余字母转换为小写。capitalize()
:将字符串的首字母转换为大写,其余字母转换为小写。运行
s = "hello PYTHON"
print(s.upper())
print(s.lower())
print(s.title())
print(s.capitalize())
strip()
:去除字符串两端的空白字符(包括空格、制表符\t
、换行符\n
等)。lstrip()
:去除字符串左侧的空白字符。rstrip()
:去除字符串右侧的空白字符。运行
s = " \tHello World\n "
print(s.strip())
print(s.lstrip())
print(s.rstrip())
find(sub[, start[, end]])
:在字符串中查找子串sub
,如果找到,返回子串的起始索引;如果未找到,返回 - 1。start
和end
参数用于指定查找范围(可选)。index(sub[, start[, end]])
:与find()
类似,但如果未找到子串,会抛出ValueError
异常。count(sub[, start[, end]])
:统计子串sub
在字符串中出现的次数。replace(old, new[, count])
:将字符串中的old
子串替换为new
子串,count
参数用于指定替换的最大次数(可选,默认为全部替换)。运行
s = "Python is a programming language. Python is popular."
# 查找子串
print(s.find("Python"))
print(s.find("Python", 10))
print(s.index("Python"))
# 统计子串出现次数
print(s.count("Python"))
# 替换子串
print(s.replace("Python", "Java"))
print(s.replace("Python", "Java", 1))
split(sep=None, maxsplit=-1)
:按照sep
分隔符分割字符串,返回一个列表。maxsplit
参数用于指定最大分割次数(可选,-1 表示全部分割)。默认分隔符为任意空白字符。join(iterable)
:将可迭代对象(如列表、元组等)中的字符串元素,通过调用该方法的字符串连接起来。运行
# 分割字符串
s = "apple,banana,orange"
print(s.split(","))
s2 = "hello world python"
print(s2.split())
# 连接字符串
fruits = ["apple", "banana", "orange"]
print(",".join(fruits))
startswith(prefix[, start[, end]])
:判断字符串是否以prefix
前缀开头。endswith(suffix[, start[, end]])
:判断字符串是否以suffix
后缀结尾。isalpha()
:判断字符串是否只包含字母。isdigit()
:判断字符串是否只包含数字。isalnum()
:判断字符串是否只包含字母和数字。isspace()
:判断字符串是否只包含空白字符。运行
s = "Python123"
print(s.startswith("Py"))
print(s.endswith("3"))
print(s.isalpha())
print(s.isdigit())
print(s.isalnum())
s2 = " \t\n"
print(s2.isspace())
字符串格式化用于将变量或表达式的值插入到字符串中指定的位置,常用的方式有以下几种:
%
运算符%
运算符用于格式化字符串,左侧为格式字符串,右侧为要插入的值(可以是单个值或元组)。常用的格式字符有:%s
(字符串)、%d
(整数)、%f
(浮点数)等。
运行
name = "Alice"
age = 25
score = 95.5
# 格式化字符串
print("Name: %s, Age: %d, Score: %.2f" % (name, age, score))
str.format()
方法str.format()
方法通过{}
占位符来指定插入位置,占位符中可以包含索引或关键字,用于指定要插入的值。
运行
name = "Bob"
age = 30
# 使用索引
print("Name: {0}, Age: {1}, Next year age: {1}+1={2}".format(name, age, age + 1))
# 使用关键字
print("Name: {n}, Age: {a}".format(n=name, a=age))
f - 字符串在字符串前加上f
或F
,通过{}
直接嵌入变量或表达式,简洁直观。
运行
name = "Charlie"
age = 28
# 使用f-字符串
print(f"Name: {name}, Age: {age}, Next year age: {age + 1}")
需要注意的是,Python 中的字符串是不可变的,即一旦创建,就不能修改其中的字符。所有的字符串操作方法都会返回一个新的字符串,而不会改变原字符串。
运行
s = "Hello"
s[0] = "h"
new_s = s.replace("H", "h")
print(s)
print(new_s)
Python 提供了丰富的字符串操作方法,涵盖了字符串的定义、访问、拼接、转换、查找、替换、分割、连接、格式化等多个方面。掌握这些操作方法,能够帮助我们高效地处理各种文本数据。在实际编程中,应根据具体需求选择合适的方法,并注意字符串的不可变性特点。通过不断练习,能够更加熟练地运用这些操作,提升编程效率。