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

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

5.5 填充对齐 center()、ljust()、rjust()、zfill()

1、center()方法

center() 方法返回一个指定的宽度 width 居中的字符串,fillchar 为填充的字符,默认为空格。

语法

string.center(length, character)

参数值

参数 描述
length 必需。所返回字符串的长度。
character 可选。填补两侧缺失空间的字符。默认是 " "(空格)。

实例

使用字母 “O” 作为填充字符:

txt = "banana"
x = txt.center(20, "O")
print(x)
OOOOOOObananaOOOOOOO

2、ljust()方法

ljust() 方法返回一个原字符串左对齐,并使用空格填充至指定长度的新字符串。如果指定的长度小于原字符串的长度则返回原字符串。

语法

string.ljust(length, character)

参数值

参数 描述
length 必需。所返回字符串的长度。
character 可选。用于填充缺少空间(在字符串的右侧)的字符。默认值为 " "(空格)。

实例

使用字母 “O” 作为填充字符:

txt = "banana"
x = txt.ljust(20, "O")
print(x)
bananaOOOOOOOOOOOOOO

3、rjust()方法

rjust() 返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串。如果指定的长度小于字符串的长度则返回原字符串。

语法

string.rjust(length, character)

参数值

参数 描述
length 必需。所返回字符串的长度。
character 可选。用于填充缺失空间(在字符串的左侧)字符。默认值为 " "(空格)。

实例

使用字母 “O” 作为填充字符:

txt = "banana"
x = txt.rjust(20, "O")
print(x)
OOOOOOOOOOOOOObanana

4、zfill()方法

zfill() 方法返回指定长度的字符串,原字符串右对齐,前面填充0。

语法

string.zfill(len)

参数值

参数 描述
len 必需。数字,规定要删除的元素的位置。

实例

用零填充字符串,直到它们长为 10 个字符:

a = "hello"
b = "welcome to my world"
c = "10.000"
print(a.zfill(10))
print(b.zfill(10))
print(c.zfill(10))
00000hello
welcome to my world
000010.000

zfill() 方法在字符串的开头添加零(0),直到达到指定的长度。如果 len 参数的值小于字符串的长度,则不执行填充。

5.6 删除左/右指定字符 lstrip()、rstrip()、strip()

1、lstrip()方法

lstrip() 方法用于截掉字符串左边的空格或指定字符。

语法

string.lstrip(characters)

参数值

参数 描述
characters 可选。一组作为前导字符要删除的字符。

实例

删除前导字符:

txt = ",,,,,ssaaww.....banana"
x = txt.lstrip(",.asw")
print(x)
banana

2、rstrip()方法

rstrip() 删除 string 字符串末尾的指定字符,默认为空白符,包括空格、换行符、回车符、制表符。

语法

string.rstrip(characters)

参数值

参数 描述
characters 可选。一组作为结尾字符要删除的字符。

实例

删除结尾字符:

txt = "banana,,,,,ssaaww....."
x = txt.rstrip(",.asw")
print(x)
banan

3、strip()方法

strip() 方法用于移除字符串头尾指定的字符(默认为空格)或字符序列。

语法

string.strip(characters)

参数值

参数 描述
characters 可选。一组字符,要删除的前导/尾随字符的字符。

实例

删除前导和尾随字符:

txt = ",,,,,rrttgg.....banana....rrr"
x = txt.strip(",.grt")
print(x)
banana

5.7 判断字符(串)

5.7.1 空白字符 isspace()

1、isspace()方法

isspace() 方法检测字符串是否只由空白字符组成。

语法

string.isspace()

参数值

无参数

实例

txt = "   s   "
x = txt.isspace()
print(x)
False

如果字符串中的所有字符都是空格,则 isspace() 方法将返回 True,否则返回 False。

5.7.2 可打印 isprintable()

2、isprintable()方法

isprintable() 方法检查文本中的所有字符是否可打印。

语法

string.isprintable()

参数值

无参数

实例

txt = "Hello!\nAre you #1?"
x = txt.isprintable()
print(x)
False

如果所有字符都是可打印的,则 isprintable() 方法返回 True,否则返回 False。不可打印的字符可以是回车和换行符。

5.7.3 标识符 isidentifier()

3、isidentifier()方法

isidentifier() 方法检查字符串是否是有效标识符。

语法

string.isidentifier()

参数值

无参数

实例

a = "MyFolder"
b = "Demo002"
c = "2bring"
d = "my demo"
print(a.isidentifier())
print(b.isidentifier())
print(c.isidentifier())
print(d.isidentifier()
True
True
False
False

如果字符串是有效标识符,则 isidentifier() 方法返回 True,否则返回 False。

如果字符串仅包含字母数字字母(a-z)和(0-9)或下划线(_),则该字符串被视为有效标识符。有效的标识符不能以数字开头或包含任何空格。

5.7.4 字母/数字 isalnum()

4、isalnum()方法

isalnum() 方法检测字符串是否由字母和数字组成。

语法

string.isalnum()

参数值

无参数

实例

检查文本中的所有字符是否都是字母数字:

txt = "Company 12"
x = txt.isalnum()
print(x)
False

如果所有字符均为字母数字,即字母(a-z)和数字(0-9),则 isalnum() 方法返回 True。

非字母数字的例子:(space)!#%&? 等等。

5.7.5 字母/中文 isalpha()

5、isalpha()方法

isalpha() 方法检测字符串是否只由字母或文字组成。

语法

string.isalpha()

参数值

无参数

实例

检查文本中的所有字符是否都是字母:

txt = "Company10"
x = txt.isalpha()
print(x)
False

如果所有字符都是字母(a-z),则 isalpha() 方法将返回 True。

非字母的字符例子:(space)!#%&? 等等。

5.7.6 数字 isdigit()、isnumeric()、isdecimal()

6.1、isdigit()方法

isdigit() 方法检测字符串是否只由数字组成。

语法

string.isdigit()

参数值

无参数

实例

检查文本中的所有字符是否都是字母:

a = "\u0030"  # unicode for 0
b = "\u00B2"  # unicode for ²
print(a.isdigit())
print(b.isdigit())
True
True

如果所有字符都是数字,则 isdigit() 方法将返回 True,否则返回 False。

指数(例如²)也被视作数字。

6.2、isnumeric()方法

isnumeric() 方法检测字符串是否只由数字组成,数字可以是: Unicode 数字,全角数字(双字节),罗马数字,汉字数字。

指数类似 ² 与分数类似 ½ 也属于数字。

语法

string.isnumeric()

参数值

无参数

实例

检查字符是否为数字:

a = "\u0030"  # unicode for 0
b = "\u00B2"  # unicode for ²
c = "10km2"
print(a.isnumeric())
print(b.isnumeric())
print(c.isnumeric())
True
True
False

如果所有字符均为数字(0-9),则 isumeric() 方法返回 True,否则返回 False。

指数(比如 ² 和 ¾)也被视为数字值。

6.3、isdecimal()方法

isdecimal() 方法检查 unicode 对象中的所有字符是否都是小数。

语法

string.isdecimal()

参数值

无参数

实例

检查 unicode 中的所有字符是否都是小数:

a = "\u0030"  # unicode for 0
b = "\u0047"  # unicode for G
print(a.isdecimal())
print(b.isdecimal())
True
False

如果所有字符均为小数(0-9),则 isdecimal() 方法将返回 True。

此方法用于 unicode 对象。

5.8 格式字符串中指定值 format()、format_map()

1、format()方法

format() 方法格式化指定的值,并将其插入字符串的占位符内,占位符使用大括号 {} 定义。

语法

string.format(value1, value2...)

参数值

参数 描述
value1, value2… 必需。一个或多个应该格式化并插入字符串的值。值可以是数字,用于指定要删除的元素的位置。
这些值可以是用逗号分隔的值列表、键=值列表,或两者的组合。
这些值可以是任何数据类型。

占位符

可以使用命名索引 {price}、编号索引{0}、甚至空的占位符 {} 来标识占位符。

实例

使用不同的占位符值:

txt1 = "My name is {fname}, I'am {age}".format(fname="Bill", age=64)
txt2 = "My name is {0}, I'am {1}".format("Bill", 64)
txt3 = "My name is {}, I'am {}".format("Bill", 64)
print(txt1)
print(txt2)
print(txt3)
My name is Bill, I'am 64
My name is Bill, I'am 64
My name is Bill, I'am 64

格式化类型

在占位符内,您可以添加格式化类型以格式化结果:

格式化类型 描述
:< 左对齐结果(在可用空间内)
:> 右对齐结果(在可用空间内)
:^ 居中对齐结果(在可用空间内)
:= 将标志放置在最左侧
:+ 使用加号指示结果是正数还是负数
:- 负号仅用于负值
: 使用空格在正数之前插入一个多余的空格(在负数之前使用减号)
:, 使用逗号作为千位分隔符
:_ 使用下划线作为千位分隔符
:b 二进制格式
:c 将值转换为相应的 unicode 字符
:d 十进制格式
:e 科学格式,带有小写字母 E
:E 科学格式,带有大写字母 E
:f 定点数字格式
:F 定点数字格式,以大写形式显示(将 inf 和 nan 显示为 INF 和 NAN)
:g 通用格式
:G 通用格式(将大写 E 用作科学计数法)
😮 八进制格式
:x 十六进制格式,小写
:X 十六进制格式,大写
:n 数字格式
:% 百分比格式

2、format_map()方法

format_map() 方法格式化字符串中的指定值。

语法

str.format_map(mapping)

参数值

参数 描述
mapping 字典类型的数据。

实例

str_a = '我是 {name} 老师 {gender} {age} 岁'
dict_1 = {'name': 'pink', 'gender': '男', 'age': 21}
print(str_a.format_map(dict_1))
我是 pink 老师 男 21 岁

5.9 拆分/截取字符串 split()、rsplit()、splitlines()

1、split()方法

split() 通过指定分隔符从左侧对字符串进行切片,如果第二个参数 num 有指定值,则分割为 num+1 个子字符串。

语法

string.split(separator, max)

参数值

参数 描述
separator 可选。规定分割字符串时要使用的分隔符。默认值为空白字符。
max 可选。规定要执行的拆分数。默认值为 -1,即“所有出现次数”。

实例

  • 使用逗号后跟空格作为分隔符,分割字符串:
txt = "hello, my name is Bill, I am 63 years old"
x = txt.split(", ")
print(x)
['hello', 'my name is Bill', 'I am 63 years old']
  • 使用 # 号字符作为分隔符:
txt = "apple#banana#cherry#orange"
x = txt.split("#")
print(x)
['apple', 'banana', 'cherry', 'orange']
  • 将字符串拆分为最多 2 个项目的列表:
txt = "apple#banana#cherry#orange"
# 将 max 参数设置为 1,将返回包含 2 个元素的列表!
x = txt.split("#", 1)
print(x)
['apple', 'banana#cherry#orange']

split() 方法将字符串拆分为列表。

您可以指定分隔符,默认分隔符是任何空白字符。

**注释:**若指定 max,列表将包含指定数量加一的元素。

2、rsplit()方法

rsplit() 通过指定分隔符从右侧对字符串进行切片,如果第二个参数 num 有指定值,则分割为 num+1 个子字符串。

语法

string.rsplit(separator, max)

参数值

参数 描述
separator 可选。规定分割字符串时要使用的分隔符。默认值为空白。
max 可选。指定要执行的拆分数。默认值为 -1,即“所有出现次数”。

实例

将字符串拆分为最多 2 个项目的列表:

txt = "apple, banana, cherry"
# 将 max 参数设置为 1,将返回包含 2 个元素的列表!
x = txt.rsplit(", ", 1)
print(x)
['apple, banana', 'cherry']

rsplit() 方法从右侧开始将字符串拆分为列表。

如果未指定 “max”,则此方法将返回与 split() 方法相同的结果。

注释: 若指定 max,列表将包含指定数量加一的元素。

3、splitlines()方法

splitlines() 按照行(‘\r’, ‘\r\n’, \n’)分隔,返回一个包含各行作为元素的列表,如果参数 keepends 为 False,不包含换行符,如果为 True,则保留换行符。

语法

string.splitlines(keeplinebreaks)

参数值

参数 描述
keeplinebreaks 可选。规定是否应包含换行符(True)或不包含(False)。默认值不包含(False)。

实例

拆分字符串,但保留换行符:

txt = "Thank you for your visiting\nWelcome to China"
x = txt.splitlines(True)
print(x)
['Thank you for your visiting\n', 'Welcome to China']


目录
相关文章
|
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格式