Python 字符串str详解(超详细)(二)

简介: Python 字符串str详解(超详细)(二)

4.4 转换为字符串 str()

4、str()函数

我们可以使用 str() 函数将列表、元组、字典、集合和区间等对象转换为字符串,以下将会一一介绍:

  • 列表转换为字符串
list1 = ['a', 'b', 'c']
print(type(str(list1)))
print(str(list1))
<class 'str'>
['a', 'b', 'c']
  • 元组转换为字符串
tuple1 = ('A', 'B', 'C')
print(type(str(tuple1)))
print(str(tuple1))
<class 'str'>
('A', 'B', 'C')
  • 字典转换为字符串
dict1 = {'name': 'pink'}
print(type(str(dict1)))
print(str(dict1))
<class 'str'>
{'name': 'pink'}
  • 集合转换为字符串
set1 = {'name', 'gender'}
print(type(str(set1)))
print(str(set1))
<class 'str'>
{'name', 'gender'}
  • 区间转换为字符串
range1 = range(0, 10)
print(type(str(range1)))
print(str(range1))
<class 'str'>
range(0, 10)

4.5 字符串最大/小字符 max()、min()

5、max()函数和min()函数

max() 函数的作用是返回字符串中最大的字符。min() 函数的作用是返回字符串中最小的字符。

str_m = 'AazZ'
print(max(str_m))
print(min(str_m))
z
A

4.6 删除字符串 del

在Python中,del 函数并不支持删除字符串中的单个字符,但我们可以使用 del 函数删除整个字符串:

str1 = 'Hello Python'
del str1
print(str1)

当我们使用 del 函数删除某字符串后,如果再使用 print() 函数打印输出时,会报错NameError: name 'str1' is not defined,表明该字符串未被定义。

5、内置方法

5.1 转换

5.1.1 字符(串)转换 capitalize()、casefold()、lower()、upper()、title()、swapcase()

1、 capitalize()方法

capitalize() 将字符串的第一个字母变成大写,其他字母变小写。

语法

string.capitalize()

参数值

无参数

实例

str1 = 'hello python'
print(str1.capitalize())
Hello python

2、casefold()方法

casefold() 方法返回一个字符串,其中所有字符均为小写。

语法

string.casefold()

参数值

无参数

实例

str1 = 'Hello Python'
print(str1.casefold())
hello python

此方法与 lower() 方法相似,但是 casefold() 方法更强大,更具攻击性,这意味着它将更多字符转换为小写字母,并且在比较两个用 casefold() 方法转换的字符串时会找到更多匹配项。

3、lower()方法

lower() 方法转换字符串中所有大写字符为小写(符号和数字将被忽略)。

语法

string.lower()

参数值

无参数

实例

str1 = 'Hello Python'
print(str1.lower())
hello python

4、upper()方法

upper() 方法将字符串中的小写字母转为大写字母(符号和数字将被忽略)。

语法

string.upper()

参数值

无参数

实例

str1 = 'Hello Python'
print(str1.upper())
HELLO PYTHON

5、title()方法

title() 方法返回"标题化"的字符串,就是说所有单词的首个字母转化为大写,其余字母均为小写。

语法

string.title()

参数值

无参数

实例

str1 = 'HELLO Python'
print(str1.title())
Hello Python

6、swapcase()方法

swapcase() 方法用于对字符串的大小写字母进行转换,即将大写字母转换为小写字母,小写字母会转换为大写字母。

语法

string.swapcase()

参数值

无参数

实例

str1 = 'Hello Python'
print(str1.swapcase())
hELLO pYTHON

5.1.2 判断大小写 islower()、isupper()、istitle()

1、islower()方法

islower() 方法检测字符串是否由小写字母组成。

语法

string.islower()

参数值

无参数

str1 = 'Hello Python'
print(str1.islower())
False

如果所有字符均为小写,则 islower() 方法返回 True,否则返回 False。不检查数字、符号和空格,仅检查字母字符。

2、isupper()方法

isupper() 方法检测字符串中所有的字母是否都为大写。

语法

string.isupper()

参数值

无参数

实例

str1 = 'Hello Python'
print(str1.isupper())
False

如果所有字符均大写,则 isupper() 方法返回 True,否则返回 False。不检查数字、符号和空格,仅检查字母字符。

3、istitle()方法

istitle() 方法检测字符串中所有的单词拼写首字母是否为大写,且其他字母为小写。

语法

string.istitle()

参数值

无参数

实例

str1 = 'Hello Python'
print(str1.istitle())
True

如果文本中的所有单词均以大写字母开头,而单词的其余部分均为小写字母,则 istitle() 方法返回 True。否则返回 False。符号和数字将被忽略。

5.2 搜索值

5.2.1 返回出现次数 count()

count()方法

count() 方法用于统计字符串里某个字符出现的次数。可选参数为在字符串搜索的开始与结束位置。

语法

string.count(value, start, end)

参数值

参数 描述
value 必需。字符串。要检索的字符串。
start 可选。整数。开始检索的位置。默认是 0。
end 可选。整数。结束检索的位置。默认是字符串的结尾。

实例

txt = "I love apples, apple are my favorite fruit"
print(txt.count("apple", 10, 24))
1

5.2.2 从左搜索并返回 find()、index()

1、find()方法

find() 方法检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,如果指定范围内如果包含指定索引值,返回的是索引值在字符串中的起始位置。如果不包含索引值,返回 -1

语法

string.find(value, start, end)

参数值

参数 描述
value 必需。要检索的值。
start 可选。开始检索的位置。默认是 0。
end 可选。结束检索的位置。默认是字符串的结尾。

实例

  • 字母 “e” 在文本总首次出现的位置:
txt = "Hello, welcome to my world."
x = txt.find("e")
print(x)
1
  • 如果只搜索位置 5 到 10 时,字母 “e” 在文本总首次出现的位置:
txt = "Hello, welcome to my world."
x = txt.find("e", 5, 10)
print(x)
8
  • 如果找不到该值,则 find() 方法返回 -1,但是 index() 方法将引发异常:
txt = "Hello, welcome to my world."
print(txt.find("q"))
print(txt.index("q"))
Traceback (most recent call last):
  File "C:\Users\MK\Desktop\Python方法\str.py", line 4, in <module>
    print(txt.index("q"))
ValueError: substring not found
-1

2、index()方法

index() 方法检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,该方法与 find() 方法一样,只不过如果str不在 string中会报一个异常

语法

string.index(value, start, end)

参数值

参数 描述
value 必需。要检索的值。
start 可选。在哪里开始检索。默认是 0。
end 可选。在哪里结束检索。默认是字符串的末尾。

实例

  • 字母 “e” 在文本中首次出现在哪里?
txt = "Hello, welcome to my world."
x = txt.index("e")
print(x)
1
  • 如果只在位置 5 和 10 之间搜索时,字母 "e"首次首先在哪里?
txt = "Hello, welcome to my world."
x = txt.index("e", 5, 10)
print(x)
8
  • 如果找不到该值,则 find() 方法返回 -1,但是 index() 方法将引发异常:
txt = "Hello, welcome to my world."
print(txt.find("q"))
print(txt.index("q"))
-1
Traceback (most recent call last):
  File "C:\Users\MK\Desktop\Python方法\str.py", line 3, in <module>
    print(txt.index("q"))
ValueError: substring not found

3、find()index() 区别

find() 方法与 index() 方法几乎相同,唯一的区别是,如果找不到该值,index() 方法将引发异常,则 find() 方法将返回 -1

5.2.3 从右搜索并返回 rfind()、rindex()

1、rfind()方法

rfind() 返回字符串最后一次出现的位置,如果没有匹配项则返回 -1

语法

string.rfind(value, start, end)

参数值

参数 描述
value 必需。要检索的值。
start 可选。从何处开始检索。默认是 0。
end 可选。在何处结束检索。默认是到字符串的末尾。

实例

  • 在哪里最后出现文本中的字母 “e”?
txt = "Hello, welcome to my world."
x = txt.rfind("e")
print(x)
13
  • 如果只在位置 5 和位置 10 之间搜索,文本中最后出现的字母 “e” 在何处?
txt = "Hello, welcome to my world."
x = txt.rfind("e", 5, 10)
print(x)
8
  • 如果找不到该值,则 rfind() 方法返回 -1,但是 rindex() 方法将引发异常:
txt = "Hello, welcome to my world."
print(txt.rfind("q"))
print(txt.rindex("q"))
-1
Traceback (most recent call last):
  File "C:\Users\MK\Desktop\Python方法\str.py", line 3, in <module>
    print(txt.rindex("q"))
ValueError: substring not found

2、rindex()方法

rindex() 返回子字符串 str 在字符串中最后出现的位置,如果没有匹配的字符串会报异常,你可以指定可选参数[beg:end]设置查找的区间。

语法

string.rindex(value, start, end)

参数值

参数 描述
value 必需。要检索的值。
start 可选。从何处开始检索。默认是 0。
end 可选。在何处结束检索。默认是到字符串的末尾。

实例

  • 在哪里最后出现文本中的字母 “e”?
txt = "Hello, welcome to my world."
x = txt.rindex("e")
print(x)
13
  • 如果只在位置 5 和位置 10 之间搜索,文本中最后出现的字母 “e” 在何处?
txt = "Hello, welcome to my world."
x = txt.rindex("e", 5, 10)
print(x)
8
  • 如果找不到该值,则 rfind() 方法返回 -1,但是 rindex() 方法将引发异常:
txt = "Hello, welcome to my world."
print(txt.rfind("q"))
print(txt.rindex("q"))
-1
Traceback (most recent call last):
  File "C:\Users\MK\Desktop\Python方法\str.py", line 3, in <module>
    print(txt.rindex("q"))
ValueError: substring not found

3、rfind()rindex() 区别

rfind() 和 rindex() 都是查找指定值的最后一次出现。如果找不到该值,则 rfind() 方法将返回 -1,而 rindex() 方法将引发异常

5.3 以 str 开头/结束 startswith()、endswith()

1、startswith()方法

startswith() 方法用于检查字符串是否是以指定子字符串开头,如果是则返回 True,否则返回 False。如果参数 beg 和 end 指定值,则在指定范围内检查。

语法

string.startswith(value, start, end)

参数值

参数 描述
value 必需。检查字符串是否以其开头的值。
start 可选。整数,规定从哪个位置开始搜索。
end 可选。整数,规定结束搜索的位置。

实例

检查位置 7 到 20 是否以字符 “wel” 开头:

txt = "Hello, welcome to my world."
x = txt.startswith("wel", 7, 20)
print(x)
True

如果字符串以指定的值开头,则 startswith() 方法返回 True,否则返回 False。

2、endswith()方法

endswith() 方法用于判断字符串是否以指定后缀结尾,如果以指定后缀结尾返回 True,否则返回 False。可选参数 “start” 与 “end” 为检索字符串的开始与结束位置。

语法

string.endswith(value, start, end)

参数值

参数 描述
value 必需。检查字符串是否以之结尾的值。
start 可选。整数。规定从哪个位置开始检索。
end 可选。整数。规定从哪个位置结束检索。

实例

  • 检查字符串是否以短语 “my world.” 结尾:
txt = "Hello, welcome to my world."
x = txt.endswith("my world.")
print(x)
True
  • 检查位置 5 至 11 是否以短语 “my world.” 结尾:
txt = "Hello, welcome to my world."
x = txt.endswith("my world.", 5, 11)
print(x)
False

如果字符串以指定值结尾,则 endswith() 方法返回 True,否则返回 False。

5.4 编/解码 encode()、decode()

encode()decode()

encode() 方法以指定的编码格式编码字符串,decode() 方法以指定的解码格式解码字符串。

errors参数可以指定不同的错误处理方案。

语法

string.encode(encoding=encoding, errors=errors)
string.decode(decoding=decoding, errors=errors)

参数值

参数 描述
encoding / decoding 可选。字符串。规定要使用的编码/解码。默认是 UTF-8。
errors 可选。字符串。规定错误方法。合法值是:
‘backslashreplace’ - 使用反斜杠代替无法编码的字符
‘ignore’ - 忽略无法编码的字符
‘namereplace’ - 用解释字符的文本替换字符
‘strict’ - 默认值,失败时引发错误
‘replace’ - 用问号替换字符
‘xmlcharrefreplace’ - 用 xml 字符替换字符

实例

str = 'pink老师'
str_utf8 = str.encode("UTF-8")
str_gbk = str.encode("GBK")
print("UTF-8 编码:", str_utf8)
print("GBK 编码:", str_gbk)
print("UTF-8 解码:", str_utf8.decode('UTF-8', 'strict'))
print("GBK 解码:", str_gbk.decode('GBK', 'strict'))
UTF-8 编码: b'pink\xe8\x80\x81\xe5\xb8\x88'
GBK 编码: b'pink\xc0\xcf\xca\xa6'
UTF-8 解码: pink老师
GBK 解码: pink老师


目录
相关文章
|
11天前
|
Python
【10月更文挑战第6天】「Mac上学Python 11」基础篇5 - 字符串类型详解
本篇将详细介绍Python中的字符串类型及其常见操作,包括字符串的定义、转义字符的使用、字符串的连接与格式化、字符串的重复和切片、不可变性、编码与解码以及常用内置方法等。通过本篇学习,用户将掌握字符串的操作技巧,并能灵活处理文本数据。
46 1
【10月更文挑战第6天】「Mac上学Python 11」基础篇5 - 字符串类型详解
|
9天前
|
自然语言处理 Java 数据处理
【速收藏】python字符串操作,你会几个?
【速收藏】python字符串操作,你会几个?
39 7
|
19天前
|
索引 Python
Python 高级编程:深入探索字符串切片
在Python中,字符串切片功能强大,可灵活提取特定部分。本文详细介绍切片技巧:基本切片、省略起始或结束索引、使用负数索引、设定步长及反转字符串等。此外,还介绍了如何结合其他操作进行切片处理,如先转换大小写再提取子串。 来源:https://www.wodianping.com/yeyou/2024-10/48238.html
29 4
|
1月前
|
网络协议 网络安全 开发者
Python 向IP地址发送字符串
Python 向IP地址发送字符串
32 2
|
1月前
|
Python
Python 中取字符串中等于号后面的内容
Python 中取字符串中等于号后面的内容在编程过程中,我们经常需要从字符串中提取特定的信息。一个常见的任务是在给定的字符串中查找等于号(=)后面的内容。这种需求在解析配置文件、处理查询字符串或分析日志数据时尤其常见。 如何实现 在Python中,我们可以使用多种方法来实现此功能。以下是几种常用的方法,包括字符串操作和正则表达式。 方法 1:使用字符串分割 我们可以使用字符串的 split() 方法将字符串拆分为两个部分,然后提取等于号后的值。 示例代码 ----------------------------------- ©著作权归作者所有:来自51CTO博客作者bruce_xiao
28 1
|
11天前
|
存储 安全 Serverless
Python学习四:流程控制语句(if-else、while、for),高级数据类型(字符串、列表、元组、字典)的操作
这篇文章主要介绍了Python中的流程控制语句(包括if-else、while、for循环)和高级数据类型(字符串、列表、元组、字典)的操作。
24 0
|
18天前
|
Python
Python操作:字符串--列表--元组--字典--运算符 (一)
Python操作:字符串--列表--元组--字典--运算符 (一)
14 0
|
18天前
|
Python
Python操作:字符串--列表--元组--字典--运算符 (二)
Python操作:字符串--列表--元组--字典--运算符 (二)
16 0
|
29天前
|
物联网 Python
python向IP地址发送字符串
python向IP地址发送字符串
25 0
|
1月前
|
JSON 数据格式 Python
6-1|Python如何将json转化为字符串写到文件内 还保留json格式
6-1|Python如何将json转化为字符串写到文件内 还保留json格式