04python—15种字符串操作

01-字符串定义和切片

在Python中,字符串是不可变的序列,在表示一组字符时,字符串以单引号''或双引号""括起来。字符串定义的方式如下:

# 使用单引号

msg = 'hello world!'

print(msg)

# 使用双引号

msg = "hello world!"

print(msg)

# 使用三引号可以表示多行字符串

msg = '''hello

world!'''

print(msg)

字符串可以使用索引来访问它的每一个字符,索引从0开始,也可以使用切片操作来获取子字符串。切片的基本语法是`[start:stop:step]`,即从开始位置到结束位置的子串。其中,`start`表示切片的起始位置(包含),`stop`表示切片结束位置(不包含),`step`表示步长,默认为1。

下面是字符串切片的几个例子:

msg = 'hello world!'

print(msg[0]) # 访问第一个字符

print(msg[-1]) # 访问最后一个字符

print(msg[0:5]) # 访问前5个字符

print(msg[6:]) # 访问第7个字符及其后面的所有字符

print(msg[0::2]) # 访问所有奇数位上的字符

02-字符串基本操作

字符串是一种重要的数据类型,在Python中,内置了非常多的操作字符串的方法。接下来,我们逐一介绍一些常用的字符串操作。

01-字符串连接

连接两个或多个字符串可以使用加号(+)操作符,也可以使用join()方法。加号操作符如下所示:

msg1 = 'hello'

msg2 = 'world'

print(msg1 + ' ' + msg2)

join()方法是将多个字符串连接成一个字符串,语法格式为:

`str.join(sequence)`

其中,`str`就是连接的字符串,`sequence`是多个要连接的字符串列表或元组。

下面是join()方法的例子:

wordList = ['this','is','a','list']

print(' '.join(wordList))

02-查找子串

在Python中,查找一个子串在字符串中的位置可以使用find()方法。如果找到了该子串,则返回该子串在原字符串中的索引值;否则,返回-1。用法如下:

`str.find(sub[, start[, end]])`

其中,`str`表示要查找的字符串,`sub`表示要查找的子字符串,在`[start, end]`区间中查找。

除了find()方法,还有一些其他的查找字符串的方法,例如index()和count()。这里不做详细介绍。

03-字符串替换

字符串中的某些字符或子串可以替换为其他字符或子串。替换操作可使用replace()方法完成。语法格式如下:

`str.replace(old, new[, count])`

其中,`str`表示原始的字符串,`old`表示要被替换的子字符串,`new`表示用来替换旧的字符串,`count`表示替换次数(可选参数,默认为全部替换)。

下面是一个字符串替换的例子:

msg = 'Hello World!'

new_msg = msg.replace('World', 'Python')

print(new_msg)

03-字符串操作练习

让我们进一步练习字符串操作的方法,下面是一些练习题:

01-判断字符串是否为空

def is_empty_string(str):

if not str:

return True

else:

return False

print(is_empty_string(''))

print(is_empty_string('hello'))

02-字符串转化为列表

msg = 'hello world'

lst = list(msg)

print(lst)

03-反转字符串

msg = 'hello world'

reverse_msg = msg[::-1]

print(reverse_msg)

04-字符串拆分和合并

msg = 'This is a sentence.'

words = msg.split(' ')

print(words)

new_msg = '-'.join(words)

print(new_msg)

05-大写和小写转换

msg = 'HeLLo WoRLd'

print(msg.upper())

print(msg.lower())

04-字符串格式化输出

Python中,字符串格式化输出是非常常用的功能。使用格式化输出,可以将变量值插入到字符串中,以便于输出。Python提供了多种格式化字符串的方法,下面介绍其中最常用的两种方式。

01-使用占位符

占位符表示在字符串中的某个位置留出空间,以便于将变量的值插入到该位置。Python中,占位符有以下几种:

| 占位符 | 说明 |

|--------|-------------------------|

| %s | 字符串 |

| %d | 十进制整数 |

| %x | 十六进制整数(小写字母)|

| %X | 十六进制整数(大写字母)|

下面是使用占位符格式化输出的例子:

name = 'Bill'

age = 25

print('My name is %s and I am %d years old.' %(name, age))

02-使用format()方法

另一种常用的格式化字符串的方法是使用format()方法。format()方法可以将其他数据类型转换为字符串,并插入到目标字符串中。用法如下:

`str.format(arg1, arg2, ...)`

其中,`str`表示目标字符串,`arg`表示要插入的参数。

下面是使用format()方法格式化输出的例子:

name = 'John'

age = 30.5

print('My name is {} and I am {} years old.'.format(name, age))

05-字符串操作实战

最后,我们来学习一个字符串操作的实战案例。该案例需要从一个文件中读取文本,查找其中的重复行,并输出重复的行及其数量。

以下是该案例的具体步骤:

01-打开文件

使用open()函数打开文件。语法格式如下:

`open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)`

其中,`file`表示要打开的文件名,`mode`表示打开的模式,缺省为'r'。读取模式下可以用read()命令,写入模式下可以用write()命令。`buffering`表示设置缓冲区的大小,如果该参数为0表示无缓冲,如果该参数为1表示有缓冲。`encoding`表示该文件的编码格式,缺省为None,表示使用系统默认编码。`errors`表示处理编码错误的方式,缺省为None,表示使用默认方式。`newline`表示该文件所使用的换行符,如果缺省,则根据平台不同使用不同的换行符。`closefd`和`opener`这两个参数主要是和Unix平台兼容,可以忽略掉。

下面是使用open()函数打开文件的例子:

file = open('text-file.txt')

print(file.read())

file.close()

02-查找重复行

使用Python中的集合(set)来查找重复行。集合是无序的不重复元素集,可以和其他序列(列表、元组等)进行相互转换。例如,将一个列表转换为集合可以使用set()函数,反之可以使用list()函数。

以下是一个使用集合查找重复行的例子:

file = open('text-file.txt')

lines = file.readlines()

file.close()

duplicates = set()

unique_lines = set()

for line in lines:

if line in unique_lines:

duplicates.add(line)

else:

unique_lines.add(line)

print('Duplicate lines found: {}'.format(len(duplicates)))

for line in duplicates:

print('Line:', line)

总结

字符串是Python中的一种重要的数据类型,在Python中字符串是不可变的序列,也是一种常用的容器类型。Python中,字符串操作的方法非常多,例如字符串连接、查找子串、字符串替换、字符串格式化输出等等。使用字符串操作的方法可以让我们更加高效地开发Python应用程序。

后端开发标签