Python字符串操作及方法详解!一篇就搞定!

本文详细介绍了Python中的字符串类型,包括其创建方式、三引号多行字符串、转义字符的使用、不可变性与更新操作、字符串运算符以及丰富的内建函数,帮助读者掌握字符串处理的基础知识。
摘要由CSDN通过智能技术生成

前面的博客,我们讲了Python的六大数据类型中的数字类型及其操作方法(Python基础知识:数字类型及数学函数详解-CSDN博客)。相信大家都能有所理解。那么现在,我们来讲Python的六大数据类型的字符串类型及其方法。

目录

1. 字符串类型

2. 三引号

3. 转义字符

4. 字符串更新操作

5. 字符串运算符

6. 字符串内建函数


对于Python而言,字符串类型应该是数字类型之后,最基本的数据类型之一、顾名思义,字符串它由一系列字符组成,用于存储和处理文本信息。在Python提供了丰富的字符串操作方法,用于对字符串进行各种操作,例如截取、连接、查找、替换、格式化等等。这一篇博客,我们将介绍 Python 中字符串的基本操作和常用方法,包括字符串类型、更新操作、转义字符、运算符、格式化、三引号、字面量格式化字符串以及内建函数等。

1. 字符串类型

在python中,字符串类型需要使用单引号(')或双引号(")来创建字符串,同时一些特殊的转义符,需要“ \ ”来配合使用。

字符类型为:变量[头部下标:尾部下标]

下图就是Python的字符串的结构:

上图,假设String的坐标为:TiYong,那么它有6个值,其中正向坐标是0-5,反向坐标就是-1--5。

字符的操作,往往是以坐标索引进行操作的。下面是示例代码

string1 = 'Hello, World!' # 单引号
string2 = "Python is amazing!" # 双引号
string3 = "Python is amazing!\tUsing Escapes!" # 转义符\t,标识制表符

print(string1)
print(string2)
print(string3)

输出如下:

Hello, World!
Python is amazing!
Python is amazing!     Using Escapes!
可以看到,制表符\t,实现了分隔。

你可能会疑问单引号(')和双引号(")在Python中有什么不一样。其实,单引号(')和双引号(")都可以用来表示字符串。它们的基本功能是相同的,但是有一些区别。

a.仅仅是字符串表示时,两者是一致的:

  • 使用单引号:'Hello, World!'
  • 使用双引号:"Hello, World!"

b.包含特殊引号时,两者需要区分:

  • 如果字符串本身包含单引号,可以使用双引号来定义字符串:"I'm learning Python."
  • 如果字符串本身包含双引号,可以使用单引号来定义字符串:'He said, "Hello!"'

c.用法上的差异:

  • 单引号和双引号在ython中是等效的,可以根据个人偏好选择其中一种。
  • 在一些风格指南中,有建议说在大多数情况下应该优先使用单引号,例如 PEP 8

2. 三引号

上面我们讲了单引号(')和双引号("),那么,有时你想写一大段字符,不想写在一行,需要跨行字符。那么,三引号可以用来表示多行字符串。

示例代码:

multiline_string = '''This is a 
                     multiline
string.'''

print(multiline_string)

输出结果:

This is a 
                     multiline
string.

可以看到,输出的结果就是代码的输入。也就是所见及所得格式(WYSIWYG)了。

3. 转义字符

转义字符用来在字符串中表示一些特殊的字符,例如换行符 \n、制表符 \t 等。下面是一些常见的转义字符:

转义字符描述
\a响铃 (Bell)
\f换页 (Formfeed)
\v垂直制表符 (Vertical tab)
\ooo八进制数 ooo 所代表的字符
\xhh十六进制数 hh 所代表的字符
\N{name}Unicode 数据库中字符名称 name
\t水平制表符 (Tab)
\r回车 (Carriage return)
\b退格 (Backspace)
\f换页 (Formfeed)
\n换行 (Linefeed)
\v垂直制表符 (Vertical tab)
\\反斜杠
\'单引号
\"双引号

转义字符的示例代码:

# 使用响铃和换页
print("响铃示例:Hello\aWorld!")
print("换页示例:Hello\fWorld!")

# 八进制和十六进制字符
print("八进制示例:\110\145\154\154\157")  # 输出:Hello
print("十六进制示例:\x48\x65\x6c\x6c\x6f")  # 输出:Hello

# 使用 Unicode 数据库中的字符名称
print("Unicode 数据库中的字符名称示例:\N{GREEK CAPITAL LETTER DELTA}")

# 垂直制表符示例
print("垂直制表符示例:Hello\vWorld!")

# 反斜杠自身,单引号和双引号
print("反斜杠自身示例:\\这是一个反斜杠")
print("单引号示例:\'这是一个单引号")
print("双引号示例:\"这是一个双引号") 

输出结果:

响铃示例:HelloWorld!
换页示例:Hello
               World!
八进制示例:Hello
十六进制示例:Hello
Unicode 数据库中的字符名称示例:Δ
垂直制表符示例:Hello
                     World!
反斜杠自身示例:\这是一个反斜杠
单引号示例:'这是一个单引号
双引号示例:"这是一个双引号

4. 字符串更新操作

Python 中的字符串是不可变的,也就是说,不能直接修改字符串的值。但也有办法,比如说,通过重新赋值来更新字符串变量的内容。下面给大家提供三种常用的方法。

a.使用 + 运算符连接字符串:

str1 = 'Hello, '
str2 = 'world!'
str3 = str1 + str2
print(str3)  # 输出:Hello, world!

b.使用 str.format() 方法格式化字符串:

name = 'TiYong'
age = 25
str1 = 'Hello, {}! You are {} years old.'.format(name, age)
print(str1)  # 输出:Hello, TiYong! You are 25 years old.

c.使用 f-strings 格式化字符串: f-strings是Python 3.6 引入的,它是一种在字符串中直接插入变量值的简洁方法。使用 f 或 F 字母作为前缀,并在字符串中使用大括号 {} 来插入变量。

name = 'TiYong'
age = 25
str1 = f'Hello, {name}! You are {age} years old.'
print(str1)  # 输出:Hello, TiYong! You are 25 years old.
可能细心的朋友就会发现了,字符串改变吗?其实没有,对吧!只是换一个变量来存储。

5. 字符串运算符

在Python中,字符串也是支持一些基本的运算符,常见的如连接运算符 + 和重复运算符 *等。下面列出了一些运算符操作。

运算符描述示例
+字符串连接"Hello" + "World"
*重复输出字符串"Hello" * 3
[]通过索引获取字符串中的字符"Hello"[1]
[:]截取字符串中的一部分"Hello"[1:4]
in如果指定的字符在字符串中则返回 True"H" in "Hello"
not in如果指定的字符不在字符串中则返回 True"H" not in "Hello"

示例代码:

# 字符串连接
str1 = "Hello"
str2 = "World"
result = str1 + " " + str2
print("字符串连接示例:", result)  # 输出:Hello World

# 重复输出字符串
str_repeat = "Python " * 3
print("重复输出字符串示例:", str_repeat)  # 输出:Python Python Python 

# 通过索引获取字符串中的字符
char_at_index = "Python"[2]
print("获取字符串中的字符示例:", char_at_index)  # 输出:t

# 截取字符串中的一部分
substring = "Python"[1:4]
print("截取字符串中的一部分示例:", substring)  # 输出:yth

# 使用 in 运算符
check_in = "H" in "Hello"
print("使用 in 运算符示例:", check_in)  # 输出:True

# 使用 not in 运算符
check_not_in = "H" not in "Hello"
print("使用 not in 运算符示例:", check_not_in)  # 输出:False

输出结果:

字符串连接示例: Hello World
重复输出字符串示例: Python Python Python 
获取字符串中的字符示例: t
截取字符串中的一部分示例: yth
使用 in 运算符示例: True
使用 not in 运算符示例: False

6. 字符串内建函数

在Python中,有丰富的字符串内建函数,用于字符串进行各种操作。下面是一些常用的字符串内建函数:

函数描述
capitalize()将字符串的第一个字符转换为大写
casefold()将字符串转换为小写,并且移除大小写区别
center(width, fillchar)返回一个指定宽度的居中对齐的字符串,fillchar 为填充的字符
count(substring, start, end)返回字符串中指定子串出现的次数
encode(encoding="utf-8", errors="strict")返回字符串的编码版本
endswith(suffix, start, end)检查字符串是否以指定后缀结束
expandtabs(tabsize=8)将字符串中的制表符替换为空格,默认制表符大小为 8
find(substring, start, end)返回指定子串在字符串中第一次出现的位置,如果未找到返回 -1
index(substring, start, end)返回指定子串在字符串中第一次出现的位置,如果未找到则会引发 ValueError
isalnum()如果字符串至少有一个字符并且所有字符都是字母或数字则返回 True
isalpha()如果字符串至少有一个字符并且所有字符都是字母则返回 True
isascii()如果字符串中的所有字符都是 ASCII 字符则返回 True
isdecimal()如果字符串只包含十进制数字则返回 True
isdigit()如果字符串只包含数字则返回 True
isidentifier()如果字符串是一个有效的标识符则返回 True
islower()如果字符串中至少包含一个区分大小写的字符,并且所有这些字符都是小写,则返回 True
isnumeric()如果字符串中只包含数字字符,则返回 True
isprintable()如果字符串中的所有字符都可打印则返回 True
isspace()如果字符串中只包含空格,则返回 True
istitle()如果字符串是标题化的(每个单词的首字母大写),则返回 True
isupper()如果字符串中至少包含一个区分大小写的字符,并且所有这些字符都是大写,则返回 True
join(iterable)使用字符串将序列中的元素连接起来生成新字符串
ljust(width, fillchar)返回一个左对齐的指定宽度的字符串,fillchar 为填充的字符
lower()将字符串中所有大写字符转换为小写
lstrip(characters)去掉字符串左边的指定字符,默认为空格
partition(separator)根据指定的分隔符将字符串分割成三部分,返回一个元组
replace(old, new, count)替换字符串中的指定字符或子串
rfind(substring, start, end)返回指定子串在字符串中最后一次出现的位置,如果未找到返回 -1
rindex(substring, start, end)返回指定子串在字符串中最后一次出现的位置,如果未找到则会引发 ValueError
rjust(width, fillchar)返回一个右对齐的指定宽度的字符串,fillchar 为填充的字符
rpartition(separator)根据指定的分隔符将字符串从右边开始分割成三部分,返回一个元组
rsplit(separator, maxsplit)从字符串的右边开始根据指定的分隔符分割字符串
rstrip(characters)去掉字符串右边的指定字符,默认为空格
split(separator, maxsplit)根据指定的分隔符分割字符串
splitlines(keepends)按照换行符分割字符串,并返回包含各行作为元素的列表
startswith(prefix, start, end)检查字符串是否以指定前缀开始
strip(characters)去掉字符串两边的指定字符,默认为空格
swapcase()将字符串中大写转换为小写,小写转换为大写
title()返回标题化的字符串(每个单词的首字母大写)
translate(table)根据 table 的规则(可以由 str.maketrans('a', 'b') 定义)转换字符串中的字符
upper()将字符串中所有小写字符转换为大写
zfill(width)返回一个指定宽度的字符串,原字符串右对齐,前面填充 0

示例代码:

# capitalize() - 将字符串的第一个字符转换为大写
string = "hello world"
print("capitalize()示例:", string.capitalize())  # 输出:Hello world

# casefold() - 将字符串转换为小写,并且移除大小写区别
string = "Hello World"
print("casefold()示例:", string.casefold())  # 输出:hello world

# center() - 返回一个指定宽度的居中对齐的字符串
string = "Hello"
print("center()示例:", string.center(10, "*"))  # 输出:**Hello***

# count() - 返回字符串中指定子串出现的次数
string = "Hello, hello, hello"
print("count()示例:", string.count("hello"))  # 输出:3

# encode() - 返回字符串的编码版本
string = "Hello"
print("encode()示例:", string.encode())  # 输出:b'Hello'

# endswith() - 检查字符串是否以指定后缀结束
string = "Hello World"
print("endswith()示例:", string.endswith("World"))  # 输出:True

# expandtabs() - 将字符串中的制表符替换为空格,默认制表符大小为 8
string = "Hello\tWorld"
print("expandtabs()示例:", string.expandtabs())  # 输出:Hello   World

# find() - 返回指定子串在字符串中第一次出现的位置,如果未找到返回 -1
string = "Hello World"
print("find()示例:", string.find("World"))  # 输出:6

输出结果:

capitalize()示例: Hello world
casefold()示例: hello world
center()示例: **Hello***
count()示例: 2
encode()示例: b'Hello'
endswith()示例: True
expandtabs()示例: Hello   World
find()示例: 6

那么,关于字符串类型及其操作的函数讲解和示例代码,基本上讲完了,大家可以尝试着跟着代码一起学习,如果后面还有补充的,我将继续为大家分享。

感谢您的关注,我们下一篇文章将继续学习记录python的下一个知识点。

如果感觉阅读对您还有些作用,可以评论留言,关注我。谢谢您的阅读!

 往期学习:

Python安装教程(版本3.8.10)windows10

Linux系统:安装Conda(miniconda)

Conda快速安装的解决方法(Mamba安装)

VSCode安装教程(版本:1.87.0)Windows10

Python基础语法:从入门到精通的必备指南

Python的基本数据类型

Python数据类型间的转换(隐式、显式)-CSDN博客

Python基础知识:运算符详解-CSDN博客

Python基础知识:数字类型及数学函数详解-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

TiYong

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值