文章目录

  • str类简介
  • str的构造函数/方法
  • str的其他方法
    • str.capitalize()
    • str.casefold() 与str.lower()
    • str.center(width [, fillchar])
    • str.count(sub [, start [, end]])

str类简介

Python的字符串实际上是str类的实例。str类定义了许多方法辅助字符串操作。

>>> type("abc")
<class 'str'>>>> dir(str) # list methods of str in alphabetic order
['__add__', '__class__', '__contains__', '__delattr__', '__dir__',
'__doc__', '__eq__', '__format__', '__ge__', '__getattribute__',
'__getitem__', '__getnewargs__', '__gt__', '__hash__', '__init__',
'__init_subclass__', '__iter__', '__le__', '__len__', '__lt__',
'__mod__', '__mul__', '__ne__', '__new__', '__reduce__',
'__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__',
'__sizeof__', '__str__', '__subclasshook__',
'capitalize', 'casefold', 'center', 'count', 'encode',
'endswith', 'expandtabs', 'find', 'format', 'format_map',
'index', 'isalnum', 'isalpha', 'isascii', 'isdecimal',
'isdigit', 'isidentifier', 'islower', 'isnumeric', 'isprintable',
'isspace', 'istitle', 'isupper', 'join', 'ljust',
'lower', 'lstrip', 'maketrans', 'partition', 'replace',
'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit',
'rstrip', 'split', 'splitlines', 'startswith', 'strip',
'swapcase', 'title', 'translate', 'upper', 'zfill']

str的构造函数/方法

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

这是将其他类型的对象转换成字符串的方法。当将某个对象传递给str的构造函数时,会调用对象的__str__()方法,这个方法生成该对象的字符串表示。如果对象没有定义__str__()方法,则str会返回repr(object)的结果。例如,对于复数对象,则返回复数的字符串表示。

# construct a complex and return the string representation of the complex object
>>> str(complex(10,5))
'(10+5j)'
>>> repr(complex(10,5))
'(10+5j)'

TODO: add encoding description

str的其他方法

str.capitalize()

返回一个新的字符串,首字母大写,其余字符均小写。

>>> "HELLO WORLD".capitalize()
'Hello world'

str.casefold() 与str.lower()

str.lower()返回一个新字符串,将所有的区分大小写字母全部转换成小写字母,其余字母不变。

Python v3.3中新引入了str.casefold()方法,也返回一个新字符串,作用类似于lower()方法,但是行为更加激进。它会试图将所有的大小写区别都剔除掉。例如,对于德语,小写字母’ß’与’ss’是等价的,由于’ß’已经是小写字母了,所以lower()并不对其进行处理,但是casefold()会将其转换为’ss’。详细的casefolding的转换算法记述在Python文档的Unicode Standard章节中。

这两个函数返回的字符串通常可以用于不区分大小写的字符串比较操作当中。

注:对于26个英语字母而言,lower()与casefold()的行为没有区别

>>> "HELLO WORLD".lower()
'hello world'
>>> "HELLO WORLD".casefold()
'hello world'>>> 'ß'.lower()
'ß'
>>> 'ß'.casefold()
'ss'

str.center(width [, fillchar])

返回一个新字符串,总长度是width,源字符串对象位于新字符串的中间位置,两头使用fillchar指定的字符填充(只能指定一个填充字符),未指定时fillchar默认是ASCII空格。如果指定的总长度小于源字符串长度,则返回整个源字符串,并不会进行截断操作。

>>> "HELLO WORLD".center(30, "*")
'*********HELLO WORLD**********'>>> "HELLO WORLD".center(5, "*")
'HELLO WORLD'# padding character can only be one character long.
>>> "HELLO WORLD".center(5, "*@")
Traceback (most recent call last):File "<stdin>", line 1, in <module>
TypeError: The fill character must be exactly one character long

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

返回不重叠的子串sub的计数次数,查找范围由可选的start, end指定,含义用法与字符串切片操作相同,即start指定起始字符(含),end指定结束字符(不含)。未指定范围则查找整个字符串。

注意,这里“不重叠”是指已经匹配到的子串,全部或部分都不会被再次用于匹配(参看下例),而且查找操作是大小写敏感的。

>>> "AAAAA".count("AAA") # non-overlapping
1
>>> "AAAAA".count("AA") # non-overlapping
2
>>> "AAAAA".count("A")
5# case-sensitive count
>>> "HELLO WORLD".count("LL")
1
>>> "HELLO WORLD".count("ll")
0

【Python】【Python库】Python3.7.2 - 字符串str类 (1)相关推荐

  1. 【Python】【Python库】Python3.7.2 - 字符串str类 (2)

    文章目录 str类的其他方法 (Cont.) str.encode(encoding="utf-8", errors="strict") str.startsw ...

  2. Python3 数字转换为字符串str()函数

  3. 转Python 标准库 urllib2 的使用细节

    Python 标准库中有很多实用的工具类,但是在具体使用时,标准库文档上对使用细节描述的并不清楚,比如 urllib2 这个 HTTP 客户端库.这里总结了一些 urllib2 库的使用细节. 1 P ...

  4. Python 标准库 urllib2 的使用细节

    刚好用到,这篇文章写得不错,转过来收藏.    转载自 道可道 | Python 标准库 urllib2 的使用细节 Python 标准库中有很多实用的工具类,但是在具体使用时,标准库文档上对使用细节 ...

  5. python格式化字符串语法_详解Python3 中的字符串格式化语法

    一.旧式的字符串格式化 % 操作符 参考以下示例: >>> name = "Eric" >>> "Hello, %s." % ...

  6. python 内置方法赋值_Python内置数据结构之字符串str

    1. 数据结构回顾 所有标准序列操作(索引.切片.乘法.成员资格检查.长度.最小值和最大值)都适用于字符串,但是字符串是不可变序列,因此所有的元素赋值和切片赋值都是非法的. >>> ...

  7. python字符串str_python3 字符串str 教程

    var1 = 'Hello World!' var2 = "Python Programming" Python 访问子字符串,可以使用方括号来索引或截取(切片)获取子字符串,如下 ...

  8. 4.Python数据容器之字符串(str)

    字符串及相关操作 字符串是Python中最常用的数据类型,其重要性不必多言 在Python3中,所有的字符串都是Unicode字符串 1.字符串的定义 (1) s1 = ""(2) ...

  9. Python base64库 解码本地txt文本字符串

    Python base64库 解码本地txt文本字符串 使用base64还原由图片加密而成的字符串. Raw字符串: iVBORw0KGgoAAAANSUhEUgAAAtoAAALaCAYAAAAP7 ...

最新文章

  1. R语言基于自定义函数构建xgboost模型并使用LIME解释器进行模型预测结果解释:基于训练数据以及模型构建LIME解释器解释多个iris数据样本的预测结果、使用LIME解释器进行模型预测结果解释
  2. 几款不同颜色LED的伏安特性
  3. MySQL instr()函数
  4. jsch mysql_java JDBC 连接MySql
  5. SpringBoot实战:整合Redis、mybatis,封装RedisUtils工具类等(附源码)
  6. 自然语言处理与中文分词的难点总结--学习笔记
  7. mfc控件设置颜色(超全)
  8. msf生成win版免杀木马
  9. 开发调试指令大全--(博通开发调试命令)
  10. python array类型取特定值
  11. c语言sht 和ch,普通话指导:z、c、s和zh、ch、sh的分辨
  12. WLAN没有有效的IP配置,无Internet安全(开放)
  13. ​ 斯科特·马特森​与MIMO发明者谈话节选
  14. 计算机组成原理1(现代计算机细分组成框图)
  15. Kettle(三):创建资源库
  16. PE4302射频衰减器 程控衰减器 高线性衰减器 原理图和PCB
  17. jeremy的路径规划学习-1.三维地图定义,散点拟合插值与粒子群算法(matlab实现)
  18. Boost Serialization 库(一个有效的调试工具)
  19. 第2章 列表与字典(一)
  20. 人脸识别系统具有哪些管理功能

热门文章

  1. ENABLING SPIKE-BASED BACKPROPAGATION FOR TRAINING DEEP NEURAL NETWORK ARCHITECTURES
  2. combinatorial_identities习题1.1分析与解答
  3. 阿里iconfont使用教程
  4. idea中的一个子模块中的pom文件带横线、maven为灰色
  5. CentOS8如何修改系统日志的时间戳格式(rsyslog8版本)
  6. 类写了package java命令出错_java/javac命令行如何同时引用多个包;错误 TypeError: 'JavaPackage' object is not callable 的含义...
  7. 华为交换机默认vlan都是通的吗_华为设备二层交换技术——Hybrid接口详解
  8. ROS入门笔记(九):编写ROS的第一个程序hello world(重点)
  9. c语言程序设计第二次网上作业,吉大21春《C语言程序设计》在线作业二题目【标准答案】...
  10. 代码补全_补全股票代码位数的一百种姿势