(Python3)str:文本序列类型

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011978079/article/details/89471818

在Pyton中处理文本数据是使用str对象,也称为字符串,字符串是由Unicode码位构成的不可变序列。字符串字面值有多咱不同的写法:

  • 单引号:‘允许包含有“双”引号’。
  • 双引号:”允许包含有'单'引号“。
  • 三重引号:'''三重单引号'',""'三重双引号"""。

使用三重引号的字符串可以跨越多行,其中所有的空白字符都将包含在该字符串字面值中。

作为单一表达式组成部分,之间由空格分隔的多个字符串字面值会被隐式的转换为单个字符串字面值。

class str(object='')
class str(object=b'',encoding='utf=8',errors='strict')

返回object的字符串版本,如果未提供object则返回空字符串。在其他情况下str()的行为取决于encoding或errors是否有给出。

如果encoding或errors均未给出,str(object)返回object.__str__(),这是object的”非正式“或格式良好的字符串表示。对于字符串对象,这是该字符串本身。如果object没有__str__()方法,则str()将回退为返回repr(object)。

如果encoding或errors至少给出其中之一,则object应该是一个byte-like object(例如bytes或bytearray)。在此情况下,如果object是一个bytes(或bytearray)对象,则str(bytes,encoding,errors)等价于bytes.decode(encoding, errors)。否则的话,会在调用bytes.decode()之前获取缓冲区对象下层的bytes对象。

字符串的方法

字符串还支持两种字符串格式化样式,一种提供了很大程度的灵活性和可定制性(str.format(),Fromat String Syntax和Custom String Formatting)而另一种是基于C printf样式的格式化,它可处理的类型范围较窄,并且更难以正确使用。

str.capitalize()

返回原字符串的副本,其首个字符大写,其余为小写。

 

str.casefold()

返回原字符串消除大小写的副本。消除大小写的字符串可用于忽略大小写的匹配。

消除大小写类似于转为小写,但是更加彻底一些,因为它会移除字符串中的所有大小写变化形式。例如,德语小写字母'ß',相当于”ss“,由于它已经是小写了,lower()不会对‘ß’做任何 改变;而casefold()则会将其转换为”ss“。

 

str.center(width[,fillchar])

返回长度为width的字符串,原字符串在其正中。使用指定的fillchar填充两边空位(默认使用ASCII空格符)。如果width小于等于len(s)则返回原字符串的副本。

 

str.count(sub[,start[,end]])

返回子字符串sub在[start,end]范围内非重叠出现的次数。可选参数start与end会被解读为切片表示法。

 

str.encode(encoding="utf-8",errors="strict")

返回原字符串编码为字符串对象的版本。默认编码为‘utf-8’。可以给出errirs来设置不同的错误处理方案。errors的默认值为'strict',表示编码错误会引发UnicodeError。其他可用的值为'ignore',‘replace’,'xmlcharrefreplace','backslashreplace'以及任何其他通过codes.register_error()注册的值。

 

str.endswith(suffix[,start[,end]])

如果字符串以指定的suffix结束返回True,否则返回False。suffix也可以由多个供查找 的后缀构成的元组。如果有可选 项start,将从所指定位置开始检查。如果有可选 项end,将在所指定位置停止比较。

 

str.expandtabs(tabsize=8)

返回字符串的副本,其中所有的制表符会由一个或多个空格替换,具体取决于当前列宽度和给定的制表符宽度。每tabsize个字符设为一个制表位(默认值8时设定的制表位在列0,8,16依次类推)。要展开字符串,当前列将被设为0并逐一检查字符串中的每个字符。如果字符为制表符(\t),则会在结果中插入一个或多个空格符,直到当前列等 于下一个制表位。(制表符本身不会被复制。)如果字符为换行符(\n)或回车符(\r),它会被复制并将妆前列重设为0。任何其他字符会被不加修改地复制并将当前列加一,不论该字符在被打印时会如何显示。

 

str.find(sub[,start[,end]])

返回子字符串sub在s[strat:end]切片内被找到的最小索引。可选参数start与end会被解读为切片表示法。如果sub未被找到则返回-1。

 

str.format(*args, **kwargs)

执行字符串格式化操作。调用此方法的字符串可以包含字符串字面值或者以花括号 {} 括起来的的替换域。每个替换域可以包含一个位置参数的数字索引,或者一个关键字参数的名称。返回的字符串副本中每个替换域都会被替换为对应参数的字符串值。

当使用n类型(例如:'{:n}'.format(1234))来格式化数字(int, float, complex,decimal.Decimal及其子类)的时候,该函数会临时性地将LC_TYPE区域设置为LC_NUMERIC区域以解码localeconv()的decimal_point和thousands_sep字段,如果它们是非ASCII字符或长度超过1字符的话,并且LC_NUMERIC区域会与LC_CTYPE区域不一致。这个临时更改会影响其他纯种。

 

str.format_map(mapping)

类似于str.format(**mapping),不同这处在于mapping会被直接使用而不是复制到一个dict。

str.index(sub[, start[, end]])

类似于find(),但在找不到子类 时会引发ValueError。

 

str.isalnum()

如果字符串中至少有一个字符且所有字符均为字母或数字则返回真,否则返回假。如果以下方法中的一个返回True则字符c为字母或数字:c.isalpha(), c.isdecimal(), c.isdigit(),or c.isnumeric()。

str.isalpha()

如果字符串至少有一个字符且所有字符均为字母则返回真,否则返回假。字母类字符是在Unicode字符数据库中被定义的“Letter”的字符,即一般分类特征属性为“Lm”, "Lt","Lu","Ll"或“Lo”其中之一。请注意这不同于Unicode标准所定义的“Alphabetic”特征属性。

str.isascii()

如果字符串为空或所有字符均为ASCII字符则返回真值,否则返回假值。ASCII字符的码位范围为U+0000-U+007F。

str.isdecimal()

如果字符串中至少有一个字符且所有字符均为十进制数字符则返回真值,否则返回假。十进制字符是以10为基数的计数制会用来组成数值的字符,例如U+0660,ARABIC-INDIC DIGIT ZERO。正式的定义为:十进制字符就是Unicode一般分类"Nd"中的字符。

 

str.isdigit()

如果字符串中至少有一个字符且所有字符均为数字字符则返回真,否则返回假。数字字符包括十进制数字符和需要特别处理的数字,例如兼容性上标数字。这也涵盖了不能被用来组成以10为基数的数值的数字,例如Kharosthi数字。正式的定义为:数字字符就是特征属性值Numeric_Type=Digit或Numeric_Type =Decimal 的字符。

 

str.isidentifier()

如果字符串根据语言定义属于有效有标识符则返回值。参见标识符和关键字。

 

str.islower()

如果字符串中至少有一个分区大小写的字符且此类字符均为小写则返回真。否则返回假。

 

str.isnumberic()

如果字符串中至少有一个字符且所有字符均为数值字符则返回真,否则返回假。数值字符包括数字字符,以及所有在Unicode中设置了数值特性属性的字符,例如U+2155,VULGAR FRACTION ONE FIFTH,正式定义为:数值字符就是具有特征属性值Numeric_Type=Digit, Numeric_Type=Decimal或Numeric_Type=Numeric的字符。

 

str.isprintable()

如果字符串中所有字符均为可打印字符或字符串为空则返回真,否则返回假。不可打印字符是在Unicode字符数据库中被定义“Other”或“Separator”的字符,例外情况是ASCII空格字符(0x20)被视作可打印字符。(请注意在此语境下可打印字符是指对于一个字符串发起调用repr()时不必被转义的字符。它们与字符串写入sys.stdout或sys.stderr时所需的处理无关。)

 

str.isspace()

如果字符串中至少有一个字符且所有字符均为空白字符则返回真,否则返回假。空白字符是在Unicode字符数据库中被定义为“Other"或”Separator“并且其双向特征属性为”WS“,"B"或”S“之一的字符。

 

str.istitle()

如果字符串中至少有一个字符且为标题字符串则返回真,例如大写字符之后只能带非大写字符而小写字符必须有大写字符打头。否则返回假。

 

str.isupper()

如果字符串中至少有一个区分大小写的字符具此类字符均大写则返回真,否则返回假。

 

str.join(iterable)

返回一个由iterable中的字符串拼接而成的字符串。如果iterable中存在任何非字符串值包括bytes对象则会引发TypeError。调用该方法的字符串将作为元素之间的分隔。

 

str.ljust(width[, fillchar])

返回长度为width的字符串,原字符串在其中靠左对齐。使用指定的fillchar填充空位(默认使用ASCII空格符)。如果width小于等于len(s)则返回原字符串的副本。

 

str.lstrip([chars])

返回原字符串的副本,移除其中的前导字符。chars参数为指定要移除字符的字符串。如果省略或为None,则char参数默认移除空格符。实际上chars参数并非指定单个前缀;而是会移除参数值的所有组合;

 

 

 

 

 

 

 

猜你喜欢

转载自blog.csdn.net/u011978079/article/details/89471818