【Python】高级变量通关教程下篇(字符串与切片专题详解)(下)

简介: 文章目录前言1 字符串说明2 字符串的常见操作2.1 字符串中的常见方法总览2.2 字符串的长度、次数与位置统计2.3 判断字符串2.4 字符串的查找和替换2.5 去除字符串中的空白字符2.6 字符串的拆分和拼接3 切片3.1 切片的概念与说明3.2 切片的使用——以字符串为例4 本文配套练习题*4.1 练习一4.2 练习二

在示例中,将 mystr 字符串按照空格进行了切分,返回的列表使用了 mylist 接收。 而后,使用空格作为分隔符将 mylist 列表中的元素以字符串表示的形式拼接成了个字符串 mystr_temp。


需要注意的是,如果不指定 split 的参数,其默认以空白字符分隔,比如空格、\t等,示例如下代码:

mystr = '哈 利 波 特 的 魔 法\n世\t界'
mylist = mystr.split()
print(mylist)  # ['哈', '利', '波', '特', '的', '魔', '法', '世', '界']


3 切片

3.1 切片的概念与说明

🆔 简介:

切片 方法适用于 字符串、列表、元组;

切片 使用 索引值 来限定范围;

列表 和 元组 都是 有序 的集合,都能通过 索引值 获取对应的数据,因此可以使用切片;

为了方便使用,Python 提供了倒序索引,具体见下图:



📖 语法如下:


字符串名/列表名/元组名[开始索引:结束索引:步长]
1

🅰️ 注意点:


指定的区间属于左闭右开型;

如果是从头开始,则开始索引可以省略,冒号不能省略;

如果是到末尾结束,则结束索引可以省略,冒号不能省略;

步长可以省略,默认为1。

需要特别注意的是,如果倒序遍历,记得修改步长为负数


3.2 切片的使用——以字符串为例

str = '我是黄小黄同学'
1

🐱 1.截取从 2 ~ 5 位置的字符串,截取 2 ~ 末尾的字符串:

str = '我是黄小黄同学'
print(str[2:6])  # 黄小黄同
print(str[2:])  # 黄小黄同学
1
2
3

🐱 2.截取完整的字符串


str = '我是黄小黄同学'
print(str[:])  # 我是黄小黄同学
1
2

🐱 3.截取完整的字符串,每两个取一个(隔一个取一个)


str = '我是黄小黄同学'
print(str[::2])  # 我黄黄学
1

🐱 4.截取字符串,不包含最后一个元素

str = '我是黄小黄同学'
print(str[:-1])  # 我是黄小黄同
1
2

🐱 5.截取末尾两个字符


str = '我是黄小黄同学'
print(str[-2:])  # 同学
1
2

🐱 6.利用切片求字符串的逆序

将步长设置为-1即可,列举两种方式


str = '我是黄小黄同学'
print(str[::-1])  # 学同黄小黄是我
print(str[-1::-1])  # 学同黄小黄是我
1
2
3

以下为错误示范

str = '我是黄小黄同学'
print(str[0::-1])  # 我

4 本文配套练习题*

4.1 练习一

假设有一段英文,其中有单词中间的字母i被误写为I,请编写程序进行纠正


⌨️ 代码示例:


思路见注释!!!

# 先接收一段英文
message = input("Please enter: ")
# 先将接收的字符串进行判断,所有的 I 改成 i
message = message.replace('I', 'i')
# 对英文句子的首字母大写
message = message.capitalize()
# 输出修改后的结果
print(message)


🍑 结果:


4.2 练习二

有一段英文文本,其中有单词连续重复了两次,编写程序检查重复单词并只保留一个。例如,文本内容为“This is is a dask.”,程序输出为“This is a desk.”。


⌨️ 代码示例:


思路见注释!!!

# 先接收一个句子,以空格为分隔符转成列表接收
message = input('Please enter a sentence: ').split(' ')
result = ''  # 接收结果
# 先加入第一个单词
result += message[0]
# 逐个判断单词是否重复,重复则不添加到结果result
for item in range(1, len(message)):
    if message[item] == message[item-1]:
        continue
    else:
        result += ' ' + message[item]
# 输出结果
print(result)


🍑 结果:

相关文章
|
17天前
|
存储 Python
SciPy 教程 之 SciPy 稀疏矩阵 4
SciPy 教程之 SciPy 稀疏矩阵 4:介绍稀疏矩阵的概念、类型及其在科学计算中的应用。SciPy 的 `scipy.sparse` 模块提供了处理稀疏矩阵的工具,重点讲解了 CSC 和 CSR 两种格式,并通过示例演示了如何创建和操作 CSR 矩阵。
41 3
|
6天前
|
Python
SciPy 教程 之 Scipy 显著性检验 3
本教程介绍Scipy显著性检验,包括其基本概念、原理及应用。显著性检验用于判断样本与总体假设间的差异是否显著,是统计学中的重要工具。Scipy通过`scipy.stats`模块提供了相关功能,支持双边检验等方法。
12 1
|
8天前
|
机器学习/深度学习 Python
SciPy 教程 之 SciPy 插值 2
SciPy插值教程:介绍插值概念及其在数值分析中的应用,特别是在处理数据缺失时的插补和平滑数据集。SciPy的`scipy.interpolate`模块提供了强大的插值功能,如一维插值和样条插值。通过`UnivariateSpline()`函数,可以轻松实现单变量插值,示例代码展示了如何对非线性点进行插值计算。
11 3
|
11天前
|
机器学习/深度学习 数据处理 Python
SciPy 教程 之 SciPy 空间数据 4
本教程介绍了SciPy的空间数据处理功能,主要通过scipy.spatial模块实现。内容涵盖空间数据的基本概念、距离矩阵的定义及其在生物信息学中的应用,以及如何计算欧几里得距离。示例代码展示了如何使用SciPy计算两点间的欧几里得距离。
26 5
|
10天前
|
机器学习/深度学习 Python
SciPy 教程 之 SciPy 空间数据 6
本教程介绍了SciPy处理空间数据的方法,包括使用scipy.spatial模块进行点位置判断、最近点计算等内容。还详细讲解了距离矩阵的概念及其应用,如在生物信息学中表示蛋白质结构等。最后,通过实例演示了如何计算两点间的余弦距离。
20 3
|
9天前
|
机器学习/深度学习 数据处理 Python
SciPy 教程 之 SciPy 空间数据 7
本教程介绍了SciPy的空间数据处理功能,涵盖如何使用`scipy.spatial`模块进行点的位置判断、最近点计算等操作。还详细解释了距离矩阵的概念及其在生物信息学中的应用,以及汉明距离的定义和计算方法。示例代码展示了如何计算两个点之间的汉明距离。
17 1
|
13天前
|
Python
SciPy 教程 之 SciPy 图结构 7
《SciPy 教程 之 SciPy 图结构 7》介绍了 SciPy 中处理图结构的方法。图是由节点和边组成的集合,用于表示对象及其之间的关系。scipy.sparse.csgraph 模块提供了多种图处理功能,如 `breadth_first_order()` 方法可按广度优先顺序遍历图。示例代码展示了如何使用该方法从给定的邻接矩阵中获取广度优先遍历的顺序。
23 2
|
13天前
|
算法 Python
SciPy 教程 之 SciPy 图结构 5
SciPy 图结构教程,介绍图的基本概念和SciPy中处理图结构的模块scipy.sparse.csgraph。重点讲解贝尔曼-福特算法,用于求解任意两点间最短路径,支持有向图和负权边。通过示例演示如何使用bellman_ford()方法计算最短路径。
25 3
|
14天前
|
缓存 测试技术 Apache
告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
30 1
|
18天前
|
存储 Python
SciPy 教程 之 SciPy 稀疏矩阵 2
SciPy教程之SciPy稀疏矩阵2:介绍稀疏矩阵的概念、应用场景及scipy.sparse模块的使用。重点讲解CSC和CSR两种稀疏矩阵类型及其常用方法,如data属性和count_nonzero()方法。
39 4