(Python基础篇)字符串的操作

目录

引言

一、字符串的基本定义与访问

(一)字符串的定义

(二)字符串的索引与切片

二、字符串的常用操作方法

(一)字符串的拼接与重复

(二)字符串的大小写转换

(三)字符串的去除空白

(四)字符串的查找与替换

(五)字符串的分割与连接

(六)字符串的判断方法

三、字符串的格式化

(一)使用%运算符

(二)使用str.format()方法

(三)使用 f - 字符串(Python 3.6+)

四、字符串的不可变性

五、总结


引言

在 Python 中,字符串是由字符组成的不可变序列,用于表示文本信息。Python 提供了丰富的字符串操作方法,让我们能够便捷地处理文本数据。下面将详细介绍字符串的常用操作。

一、字符串的基本定义与访问

(一)字符串的定义

字符串可以使用单引号(')、双引号(")或三引号(''' 或 """)定义,其中三引号可用于定义多行字符串。

运行

# 单引号定义字符串
str1 = 'Hello World'
# 双引号定义字符串
str2 = "Python Pycharm"
# 三引号定义多行字符串
str3 = '''这是一个
多行字符串'''

(二)字符串的索引与切片

  • 索引:字符串中的每个字符都有一个索引,从 0 开始(正向索引),也可以从 - 1 开始(反向索引,即从字符串末尾计数)。
  • 切片:通过[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。startend参数用于指定查找范围(可选)。
  • 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 - 字符串(Python 3.6+)

f - 字符串在字符串前加上fF,通过{}直接嵌入变量或表达式,简洁直观。

运行

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 提供了丰富的字符串操作方法,涵盖了字符串的定义、访问、拼接、转换、查找、替换、分割、连接、格式化等多个方面。掌握这些操作方法,能够帮助我们高效地处理各种文本数据。在实际编程中,应根据具体需求选择合适的方法,并注意字符串的不可变性特点。通过不断练习,能够更加熟练地运用这些操作,提升编程效率。

你可能感兴趣的:(基础篇,python,开发语言,算法)