Python Str字符串 字符串常用方法 定义 创建 拆分 成分判断 大小写调整 格式化 填充 替换 访问 查找

本文详细介绍了Python中Str字符串的定义、创建方法及一系列常用操作,包括字符串的拆分(split系列)、格式化(format方法、占位符)、填充、替换和成分判断等,帮助开发者更好地理解和使用Python字符串。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Python Str字符串

定义

文本序列类型-Python中的str文本数据是用str对象或字符串处理的。字符串是Unicode代码点的不可变序列。字符串文字的书写方式多种多样:

  1. 单引号:'allows embedded "double" quotes'
  2. 双引号:"allows embedded 'single' quotes"
  3. 三重引号:'''Three single quotes''', """Three double quotes"""
  • 三重引号字符串可以跨多行-所有关联的空格都将包含在字符串文本中。

  • 作为单个表达式的一部分并且它们之间只有空格的字符串文字将隐式转换为单个字符串文字。也就是说,(“spam”“eggs”)=“spam eggs”。

也可以使用 str 构造函数从其他对象创建字符串。

>>> str(['a', 'b', 'c', 'd'])
"['a', 'b', 'c', 'd']"
>>> tr = 'fyz is nb plus Pro Max'
>>> type(tr)
<class 'str'>
  • 由于没有单独的“字符”类型,索引字符串会生成长度为 1 的字符串。也就是说,对于非空字符串 s,s[0] == s[0:1]。

  • 由于也没有可变的字符串类型,但str.join()io.StringIO可用于从多个片段有效地构造字符串。

class str(object=’’)

class str(object=b’’, encoding=‘utf-8’, errors=‘strict’)

返回对象的字符串版本。 如果未提供对象,则返回空字符串。 否则, str() 的行为取决于是否给出了encodingerrors,如下所示。

如果既没有给出编码也没有给出错误,str(object)返回object.__str__(),它是 object的“非正式”或可很好打印的字符串表示。 对于字符串对象,这是字符串本身。 如果 object没有 __str__()方法,则 str()回退到返回 repr(object)

如果至少给出了编码或错误之一,则对象应该是一个类似字节的对象(例如字节或字节数组)。 在这种情况下,如果 object是一个 bytes(或 bytearray)对象,那么 str(bytes, encoding, errors)等价于 bytes.decode(encoding, errors)。 否则,在调用bytes.decode() 之前获取缓冲区对象下的字节对象。

在没有编码或错误参数的情况下将字节对象传递给str()属于返回非正式字符串表示的第一种情况

Str创建

  • str.join(iterable) 返回一个字符串,它是 iterable 中字符串的串联。 如果可迭代对象中有任何非字符串值,包括字节对象,则会引发 TypeError。 元素之间的分隔符是提供此方法的字符串。
>>> "*".join(["a", '2', "?"])
'a*2*?'
  • str.encode(encoding="utf-8", errors="strict") 将字符串的编码版本作为字节对象返回。 默认编码为“utf-8”。 可能会给出错误以设置不同的错误处理方案。 错误的默认值是“严格”,这意味着编码错误会引发 UnicodeError。 其他可能的值是 'ignore''replace''xmlcharrefreplace''backslashreplace' 和通过 codecs.register_error()注册的任何其他名称,请参阅部分错误处理程序。
>>> tr.encode(encoding="utf-8", errors="strict")
b'fyz is nb plus Pro Max'
  • str.format(*args, **kwargs)执行字符串格式化操作。 调用此方法的字符串可以包含由大括号{}分隔的文字文本或替换字段。 每个替换字段包含位置参数的数字索引或关键字参数的名称。 返回字符串的副本,其中每个替换字段都替换为相应参数的字符串值。
>>> "The sum of 1 + 2 is {0}".format(1+2) 
'The sum of 1 + 2 is 3' 

有关可以在 format 中指定的各种格式选项的说明,请参阅[ Format String Syntax][]。

注意:当使用 n 类型(例如:'{:n}'.format(1234))格式化数字(int、float、complex、decimal.Decimal 和子类)时,该函数会临时将 LC_CTYPE 语言环境设置为 LC_NUMERIC 语言环境 如果localeconv()decimal_pointkillon_sep字段是非ASCII 或长于1 个字节,并且LC_NUMERIC 语言环境与LC_CTYPE 语言环境不同,则解码它们。 此临时更改会影响其他线程。

在 3.7 版更改: 当用 n 类型格式化数字时,该函数在某些情况下临时将 LC_CTYPE 语言环境设置为 LC_NUMERIC 语言环境。

  • str.format_map(mapping)str.format(**mapping) 类似,但其直接使用映射而不是复制到字典中。 如果例如映射是 dict 子类,这很有用:
>>> class Default(dict):
        def __missing__(self, key):
        	return key

>>> '{name} was born in {country}'.format_map(Default(name='Guido'))
'Guido was born in country'

字符串方法

  • 字符串实现了所有常见的序列操作,以及下面描述的附加方法。

字符串还支持两种样式的字符串格式,一种提供很大程度的灵活性和自定义(str.format()Format String SyntaxCustom String Formatting),另一种基于处理更窄类型范围的 C printf 样式格式 并且更难正确使用,但对于它可以处理的情况(printf样式的字符串格式)通常更快。

标准库的文本处理服务部分涵盖了许多其他模块,这些模块提供了各种与文本相关的实用程序(包括 re 模块中的正则表达式支持)

Str拆分

  • str.partition(sep)在第一次出现 sep时拆分字符串,并返回一个 3 元组,其中包含分隔符之前的部分、分隔符本身和分隔符之后的部分。 如果未找到分隔符,则返回一个包含字符串本身的 3 元组,后跟两个空字符串。
>>> str = "fyzisnb"
>>> str.partition("is")
('fyz', 'is', 'nb')
  • str.rpartition(sep) 在最后一次出现 sep 时拆分字符串,并返回一个 3 元组,其中包含分隔符之前的部分、分隔符本身和分隔符之后的部分。 如果未找到分隔符,则返回一个包含两个空字符串的 3 元组,后跟字符串本身。
split()系列
  • str.split(sep=None, maxsplit=-1)返回字符串中单词的列表,使用 sep 作为分隔符字符串。 如果给出了 maxsplit,则最多完成 maxsplit次分割(因此,列表最多有maxsplit+1 个元素)。

    • 如果未指定 maxsplit-1,则对拆分的数量没有限制(进行所有可能的拆分)。如果给出了 sep,则连续的分隔符不会组合在一起并被视为分隔空字符串(例如,'1,,2'.split(',') 返回 ['1', '', '2'])。 sep参数可能由多个字符组成(例如,'1<>2<>3'.split('<>') 返回 ['1', '2', '3'])。 用指定的分隔符拆分空字符串返回['']
    >>> '1,2,3'.split(',')
    ['1', '2', '3']
    >>> '1,2,3'.split(',', maxsplit=1)
    ['1', '2,3']
    >>> '1,2,,3,'.split(',')
    [
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

SK Primin

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

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

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

打赏作者

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

抵扣说明:

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

余额充值