Python学习系列-Python 字符串操作(下)

发布于 2023-12-24 | 作者: 企研数据 | 来源: 知乎 | 转载于: 知乎

前言

上期文章,我们详细介绍了 Python 中字符串类型的一些操作,其中详细介绍了字符串切片,并引入学习了 Python 中非常重要的内容——索引,相信大家经过上期学习后收获满满。那么本期文章我们将继介绍字符串,学习字符串的其他常用操作。

 

一、字符串常用函数

1. 其他类型转化为字符串

Python 中使用 str() 函数来将非字符型的数据转为字符型数据。如果接收的数据已经是字符型数据了,那么就会返回其本身,str() 函数的简单使用如下:

 

2. 字符串长度

上期文章中有讲到,字符串是一种序列类型。在 Python 中,序列类型一般都会有一个长度属性,用来表示序列中元素的数量。而字符串的长度就是字符串中字符的数量,Python 中使用函数 len()来获取序列的长度,也可以用来获取字符串的长度,示例代码和注意事项如下:


什么是转义符?

社科大数据平台Python学习系列 | Python 字符串操作(上)第三部分:

在 Python 中经常会使用字符串存储一些奇怪的字符,比如换行符、制表符等常规字符串不方便表示的字符;或者需要保留字符原本的含义。此时需要用反斜杠 \ 来转义字符,以便于表示特殊字符或字符本身。其中常用的转义字符如下表所示:

转义符的使用方式代码如下图所示:


 

3. 英文字母大小写转换

Python 是以英语为基础开发的编程语言,我们在实际的使用中经常会处理含有英文的字符串,其中,大小写转换是一个较为常见的操作。

(1)英文单词首字母大写

Python 中使用 title() 来将字符串中每一个单词的首字母转为大写。处理过程会自动忽略非英文字符。示例代码如下图所示【注意 title() 函数和 len() 函数在使用上的区别】:

(2)英文字母全部转为大/小写

Python 中使用 upper() 函数来将字符串中每一个英文字母转为大写;使用 lower() 函数来将字符串中每一个英文字母转为小写,处理过程会自动忽略非英文字符。这两个函数的使用示例如下图所示:

 

4. 去除字符串两端空白字符

Python 中使用 strip() 去除字符串两端的所有空白字符,需要注意的是,在 Python 中空白字符并非单独指空格符,它还包含了换行符\n、制表符(\t\v)、回车符\r、换页符\f等字符strip() 函数的使用示例如下图所示:

另外,当我们只需要去除字符串其中一端的字符时,可以使用 lstrip()rstrip() 。使用 lstrip() 可以去除字符串左端的所有空白字符;使用 rstrip() 可以去除字符串右端的所有空白字符。使用示例如下:

strip() 系列除了可以去除字符串两端的空白字符之外,还可以去除字符串两端的指定字符或指定字符组合。这种操作同样适用于 lstrip()rstrip() , 使用示例如下:

除此之外,strip() 系列还可以去除字符串两端的特定字符组合。比如下图代码中表示去除字符串两端的所有由字符 'A''B' 组成的任意排列组合,而不是仅去除字符串两端的 'AB'。只传入一个字符时也是同样的原理。

 

5. 字符串替换

Python 中使用 replace() 函数将字符串中的指定字符替换为需要的字符,还可以限制替换的次数。与 strip() 函数不同的是,replace() 函数可以替换字符串中任意位置的指定字符,并不局限于字符串两端,而且它替换的字符也不是输入字符的排列组合,而是输入字符本身。使用示例如下: [图片]

 

6. 字符串分割

Python 中使用 split() 可以根据指定字符(串)将一个字符串分割为若干个字符串,被分割开的字符串存储在一个列表(后续文章会介绍列表)中。这样说可能不易理解,我们可以看下面的代码:

split() 对应的是 join()join() 的作用是使用指定的字符(串)将一个列表中的字符串元素连接为一个长字符串。使用示例如下图所示:

 

二、字符串格式化

字符串格式化(因为经常与输出函数 print() 一起使用,所以也称字符串格式化输出)是一种灵活的字符串转化和连接操作。在 Python 程序中使用非常广泛,现行的 Python 主要有三种字符串格式化方式。

介绍字符串格式化之前,我们先在一个具体的使用场景中简单了解它的作用。假设我们需要运行一个程序,这个程序的功能是循环处理 10000 条数据,但是由于程序一旦执行,不会允许中途修改代码,而且程序在执行过程中不会告诉我们它运行到了那一步,这会导致我们对程序执行时间没有把握。此时我们就可以使用字符串格式化技术来输出程序执行过程中产生的变量,帮助我们了解程序执行的进度,预估程序执行需要花费的时间。简单的使用如下图所示:

如上图所示,最后一行代码中我们输出的汉字是不变的,但是花括号内的变量 i 会随着程序的执行不停地变化(这段代码中的变量 i 表示程序在 10000 次循环中的顺序位置)。我们在每一次循环中都输出这个变量,就可以了解程序执行的进度。

实际编程中字符串格式化的使用场景还有很多,更多用法还需要在实际应用中探索。下面我们先来看看几种常见的格式化方法。

 

1. % 格式化

% 格式化是 Python 中出现最早的字符串格式化方法,% 格式化的作用是将百分号 % 后面的内容按顺序填充到百分号 % 前面的字符串对应位置中。简单的使用如下图所示:

从上图中可以看出,% 格式化会将字符串后面的内容填充到字符串中占位符 %s 的位置上,实际上占位符不仅仅只有 %s,这里使用 %s 的原因是,该位置填充数据的类型是字符型。最常用的三种占位符和其对应数据的类型如下表所示:

同时包含以上三种占位符的 % 格式化示例代码如下:

 

2. format 格式化

format 格式化是一种自由度更高的字符串格式化方法,它摒弃了 % 格式化中使用 % 占位符的设定,改用一对花括号 {} 作为占位符,并且不再区分填充值的类型。format 格式化的简单使用示例如下:

这看上去要比 % 格式化简单不少。此外,format 格式化还新增了指定顺序填充以及关键字填充等功能。用法非常清晰易懂,使用示例如下:

 

3. f-string 格式化

f-string 格式化是 Python 最晚出现的格式化方法, Python 3.6 以上的版本才能够使用这种方式进行字符串格式化。这是一种非常简单易懂的字符串格式化方式,非常受程序员欢迎。f-string 格式化的使用方式如下:

实际上,字符串格式化输出是一个非常复杂的知识点,笔者在介绍这个知识点的时候,仅仅介绍了其中 10% 的内容,但是这 10 %的内容,已经足够覆盖实际编程中 95% 以上的使用场景。“花小钱办大事儿”,何乐而不为呢?

 

结束语

本期文章我们简单介绍了 Python 字符串的一些常用操作。经过两期文章的介绍,Python 字符串的主要操作已经全部介绍完毕。下期文章我们将继续学习 Python,为大家介绍 Python 语法中的基本运算。