【人生苦短,我学 Python】基础篇——字符串(Day7)

大家好!我是【AI 菌】,一枚爱弹吉他的程序员。我热爱AI、热爱编程、热爱分享! 这博客是我对学习的一点总结与思考。如果您也对 深度学习、机器视觉、算法、Python、C++ 感兴趣,可以关注我的动态,我们一起学习,一起进步~
我的博客地址为:【AI 菌】的博客
我的Github项目地址是:【AI 菌】的Github

-> 前往【人生苦短,我学 Python】总目录 <-

前言:

本专栏在保证内容完整性的基础上,力求简洁,旨在让初学者更快地入门Python。这个Python学习专栏我打算分三个阶段:基础知识、进阶知识、实战训练。这将是一套完整、高效、循序渐进的Python系列讲解,您亦可以当做Python学习的入门教程。



一、字符串

从之前的文章:Python标准数据类型,我们已经知道:字符串是 Python 中最常用的数据类型,它由一系列字符构成,用单引号 ’ 或双引号 " 括起来,同时使用反斜杠 \ 转义特殊字符。

创建字符串很简单,如下所示:

var1 = "Hello World!"
var2 = "Hello Python!"

二、索引与切片

在Python中,要访问字符串中的某个字符或者子字符串,就需要用到索引或者切片,索引值以都是从0 开始的。

(1) 索引

当我们需要访问字符串中的某个字符时,就可以使用索引。我们可以使用[ ]来获取字符串中某个字符的值。有两种方式:

  • 从前往后索引:索引值以0开始,以字符串长度为结尾。
  • 从后往前索引:索引值以-1开始

下面举个例子,两种方法分别输出字符串“Python”的最后一个字符:

str = "Python"
# 方法1:从前往后索引
print(str[5])
# 方法1:从后往前索引
print(str[-1])

输出结果:
在这里插入图片描述
(2) 切片

当我们需要访问字符串中的某个子字符串时,就可以使用切片。我们可以使用[ ]来获取字符串中某个片段(子字符串)的值。有两种方式:

  • [start:end],取索引值从start到end的子字符串片段,默认步长为1。
  • [start:end:step],取索引值从start到end的子字符串片段,步长为step。

两种取字符串的方式如下所示:

str = "123456"
#  [start:end]
print(str[0 : 6])
#  [start:end:step]
print(str[0 : 6 : 2])

程序输出:
在这里插入图片描述
可以看出,通过[start:end:step]方式获取子字符串,会以步长step间隔取值形成新的子字符串。

除此之外,我们还需要掌握一些默认的切分语法:

比如当我们需要取字符串前5个字符时,就可以直接省略首索引strat,如下所示:

str = "123456"
print(str[:5])

同样,当我们只取最后5个字符时,可以按照如下写法:

str = "123456"
print(str[-5:])

当我们要取整个字符时,可以直接省去首索引和尾索引,按照如下写法:

str = "123456"
print(str[:])

三、字符串更新

字符串是不能通过元素赋值、切片赋值更新的,比如下面这样:

website = "http://www.python.org"
website[-3:] = "com"

想通过切片赋值的方式,将原字符串website更新为“http://www.python.com”是不被允许的。运行报错如下:
在这里插入图片描述
那是不是就不能实现以上的功能呢?其实我们可以换种思路,截取字符串的一部分并与其他字段拼接就能实现了,如下所示:

website = "http://www.python.org"
website = website[:-3] + "com"
print(website)

更新后的输出:
在这里插入图片描述

四、字符串运算符

在前面的教程中,我们学习了 + 和 * 两种操作符,下面我们继续来学习一下字符串还有哪些常用的运算符。

操作符描述
+字符串连接
*字符串复制
[]通过索引获取字符串中字符
[:]截取字符串中的一部分,遵循左闭右开原则,比如 str[0:6] 是不包含第 6 个字符的。
in如果字符串中包含给定的字符返回 True,否则返回 False
not in如果字符串中不包含给定的字符返回 True,否则返回 False

下面我们举例来演示一下以上运算符的用法:

str1 = "Hello "
str2 = "Python "
print("str1 + str2 =", str1 + str2)
print("str1 * 2 =", str1 * 2)
print("str1[0] =", str1[0])
print("str1[:3] =", str1[:3])

if 'P' in str2:
    print("P在字符串str2中")
else:
    print("P不在字符串str2中")

if 'P' not in str1:
    print("P不在字符串str1中")
else:
    print("P在字符串str1中")

以上例子输出结果为:
在这里插入图片描述

五、字符串格式化

Python 支持格式化字符串的输出 ,在 Python 中,字符串格式化使用与 C 中 sprintf 函数一样的语法。下面举一个简单的例子:

print("现在是 %s 年 %s 月" % ('2021', '1'))

结果输出:
在这里插入图片描述
在Python中,还有很多字符串格式化符号:
在这里插入图片描述
除此之外,有时还会用到一些格式化操作符辅助指令
在这里插入图片描述
自Python2.6 开始,新增了一种格式化字符串的函数str.format(),具体用法我们后面再讲。

六、常用的字符串内置函数

字符串的内置函数太多了,这里只介绍一些最有用的。完整的字符串函数清单请参阅:https://docs.python.org/3/library/string.html

6.1 查找子串find

函数 find 在字符串中查找子串。如果找到,就返回子串的第一个字符的索引,否则返回 -1 。示例如下:
在这里插入图片描述

6.2 大小写lower与upper

函数 lower 返回字符串的小写版本,函数 upper 返回字符串的小写版本。示例如下:
在这里插入图片描述

6.3 替换replace

函数 replace 将指定子串都替换为另一个字符串,并返回替换后的结果。示例如下:
在这里插入图片描述

6.4 合并join

函数 join 用于合并字符串序列的元素。示例如下:
在这里插入图片描述
注:这里使用\\,是因为前面的一个\是转义字符不显示。

6.5 拆分split

函数 split 是一个非常重要的字符串方法,其作用与 join 相反,用于将字符串拆分为序列。示例如下:
在这里插入图片描述

6.6 删除空白strip

函数 strip 将字符串开头和末尾的空白(但不包括中间的空白)删除,并返回删除后的结果。
在这里插入图片描述

6.7 居中center

函数 center 通过在两边添加填充字符(默认为空格)让字符串居中。示例如下:
在这里插入图片描述

6.8 转换translate

函数 translate 与 replace 一样替换字符串的特定部分,但不同的是它只能进行单字符替换。这个函数的优势在于能够同时替换多个字符,因此效率比 replace 高。比如下面例子中,同时替换两个字符"P"和“H”
在这里插入图片描述
-> 回到【人生苦短,我学 Python】总目录 <-

AI 菌 CSDN认证博客专家 博客专家 CSDN合作伙伴 算法实习僧
研究僧一枚,CSDN博客专家,公众号【AI 修炼之路】作者。专注于无人驾驶(环境感知方向),热衷于分享AI、CV、DL、ML、OpenCV、Python、C++等相关技术文章。
已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 猿与汪的秘密 设计师:白松林 返回首页
实付 19.90元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值