python center函数_数据类型和数据结构(三):字符串(4) 字符串内置函数(1)
Photo by Ray Hennessy on Unsplash
4 字符串内置函数
除了使用+、*、in对字符串操作之外,我们还可以使用Python提供的多种字符串内置函数来对字符串进行操作处理。你可以使用如下命令,查看Python为我们提供的字符串内置函数。
>>> dir(str)
['__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']
其中,带双下划线的是Python中的魔法函数,这里不讲。让我们从capitalize函数讲起。
4.1 capitalize函数
要想了解某个函数的功能细节,我们可以使用help函数进行查看,例如:
>>> help(str.capitalize)
Help on method_descriptor:
capitalize(self, /)
Return a capitalized version of the string.
More specifically, make the first character have upper case and the restlower
case.
从函数的帮助信息,我们可以知道capitalize函数用来把给定字符串的首字母变成大写,然后将其返回。若给定字符串为非英文字母,则原样返回给定字符串。例如:
>>> s.capitalize()
'Python'
>>> "2".capitalize()
'2'
>>> "_".capitalize()
'_'
>>> "爱".capitalize()
'爱'
4.2 casefold函数
casefold函数用来把给定字符串中的大写字母转换成小写字母,返回转换后的字符串。这个函数不仅对英文有效,对于其他非英文语言也有效。
>>> s = "To bE,OR nOt ToBe"
>>> s.casefold()
'to be,or not to be'
>>> s1 = "ß" #德文
>>> s1.casefold()
'ss'
4.3 center函数
s.center(with,fillchar=' '):返回一个把字符串s居中,并使用指定字符(默认为空格)填充至指定长度(width)的新字符串。
>>> s = "python"
>>> s.center(10)
' python '
>>> s.center(10,'/')
'//python//'
>>> s.center(3,'/')
'python'
>>> s.center(7,'/')
'/python'
>>> s.center(9,'/')
'//python/'
4.4 count函数
s.count(sub[, start[, end]]):返回sub在字符串s里面出现的次数。其中start和end参数是可选的。若指定start或者end,则返回s[start:end]范围内sub出现的次数。
>>> s = 'pythonpythonpython'
>>> s.count('o')
3
>>> s.count("th")
3
>>> s.count("th",4)
2
>>> s.count("yt",4,15)
2
4.5 encode函数
我们知道计算机内部只认数字,字符要在计算机内部进行处理存储,必须将其按照某种方式转换成数字形式。这种转换方式指的就是字符串的编码方式。编码方式有多种,比如ASCII编码、Unicode编码、UTF-8编码、GB2312、GBK等。
encode(encoding='utf-8', errors='strict'):该函数使用encoding指定的编码方式对字符串进行编码,返回一个bytes对象。encoding参数用来指定编码方式,error参数用来指定不同的错误处理方案。
>>> s = "你好"
>>> s
'你好'
>>> s.encode("gb2312")
b'\xc4\xe3\xba\xc3'
>>> s.encode("gbk")
b'\xc4\xe3\xba\xc3'
>>> s.encode("utf-8")
b'\xe4\xbd\xa0\xe5\xa5\xbd'
encode函数在对给定字符串编码之后会返回一个bytes对象,然后我们就可以使用bytes对象的decode方法来解码给定的bytes对象。有关这方面的内容,我们将在后面讲解,此处不谈。
4.6 endswith函数
s.endswith(suffix, start, end)检查字符串s是否以suffix结束,若是,返回True,否则返回False。其中start和end都是可选参数,它们用来指定检查的范围,省略它们表示检查整个字符串。
>>> s = "python" * 3
>>> s
'pythonpythonpython'
>>> s.endswith('th')
False
>>> s.endswith('on')
True
>>> s.endswith('thon')
True
>>> s.endswith('py',0,8)
True
4.7 startswith函数
startswith函数的完整格式为:
s.startswith(prefix[, start[, end]])
该函数用来检查字符串s是否以prefix开始,若是,返回True,否则返回False。其中start和end都是可选参数,它们用来指定检查的范围,省略它们表示检查整个字符串。若只指定start,则检查子串s[start:]是否以prefix开始;若同时指定了start和end参数,则检查子串s[start:end] 是否以prefix开始。
>>> s
'pythonpythonpython'
>>> s.startswith('py')
True
>>> s.startswith('th')
False
>>> s.startswith('th',2,8)
True
4.8 expandtabs函数
s.expandtabs(tabsize=8)用来把字符串s中的\t转换为若干个空格,具体转换成多少个空格,与tabsize和\t在字符串s中的位置有关。为了确定要转换成多少个空格,可以采取如下几个步骤:
第1步:首先根据\t所在的位置把字符串s分成若干组。请注意,最后一个\t之后的字符不再参与分组。
第2步:然后再根据tabsize进一步细分分组(每tabsize个字符分为一组,若某个分组中的总字符数小于或等于tabsize,则不再分组。\t算一个字符)。
第3步:忽略那些不包含\t字符的分组。在各个包含\t字符的分组中,把\t转换成空格,空格个数等于tabsize减去\t之前的字符数(同一个分组中,\t是一个字符)。
>>> s ="I\tlove\tpython"
# 查看一下字符串长度
>>> len(s)
13
>>> s
'I\tlove\tpython'
# 若tabsize为0,
# 则直接从字符串中删除\t字符
>>> s.expandtabs(0)
'Ilovepython'
# 前面1个空格,后面一个空格
>>> s.expandtabs(1)
'I love python'
# 前面1个空格,后面2个空格
>>> s.expandtabs(2)
'I love python'
# 前面2个空格,后面两个空格
>>> s.expandtabs(3)
'I love python'
# 前面3个空格,后面4个空格
>>> s.expandtabs(4)
'I love python'
# 前面4个空格,后面1个空格
>>> s.expandtabs(5)
'I love python'
# 前面4个空格,后面两个空格
>>> s.expandtabs(6)
'I love python'
下面我们以s.expandtabs(4)为例,画个图把计算空格格式的过程描述一下。
第1步:根据\t的位置对s分组,如下:
图5-18
第2步:根据tabsize(本例为4)进一步分组,如下图:
图5-19
第3步:算出各组需要补齐的空格数(前面3个空格,后面4个空格),并把\t字符替换掉。
图5-20
4.9 find函数
find函数用来在某个字符串中查找指定字符串,若找到,则返回待查字符串的最小索引值;找不到就返回-1。find函数的完整格式如下:
s.find(sub[, start[, end]])
其中,s指定要在哪个字符串中查找,sub是待查找字符串,start和end参数是可选的,它们用来指定在字符串s的哪个范围内进行查找。如果不指定start和end参数,则默认在整个字符串s中进行查找。若只指定start,则在s[start:]范围内查找;若同时指定了start和end参数,则在s[start:end]范围中查找sub子串。若找到,则返回sub在s[start:end]范围中首次出现的索引值(最小索引值),找不到,就返回-1。
>>> s = "python"*3
>>> s
'pythonpythonpython'
>>> s.find('th')
2
>>> s.find('th',4)
8
>>> s.find('th',4,8)
-1
>>> s.find('th',4,18)
8
4.10 rfind函数
与find函数类似,rfind函数也用来在某个字符串中查找指定字符串。两者的不同之处在于,find函数按照从左到右的顺序查找,而rfind函数按照从右到左的顺序查找。除此之外,rfind函数和find函数都是一样的。
>>> s
'pythonpythonpython'
>>> s.rfind('th')
14
>>> s.rfind('th',4)
14
>>> s.rfind('th',4,10)
8
>>> s.rfind('th',16,18)
-1
4.11 index函数
index函数完整格式如下:
s.index(sub[, start[, end]])
index函数功能和find函数一样,唯一的区别在于,当找不到sub时,index会引发一个值错误(ValueError),而非像find函数那样返回-1。
>>> s
'pythonpythonpython'
>>> s.index('th')
2
>>> s.index('th',4)
8
# 若找不到,则抛出ValueError
>>> s.index('th',4,8)
Traceback (most recent call last):
File "", line 1, in
s.index('th',4,8)
ValueError: substring not found
>>> s.index('th',4,18)
8
4.12 rindex函数
rindex函数的完整格式为:
s.rindex(sub[, start[, end]])
rindex函数的功能和rfind一样,不同之处在于,当找不到sub时,rindex会引发一个值错误(ValueError),而非像rfind函数那样返回-1。
>>> s
'pythonpythonpython'
>>> s.rindex('th')
14
>>> s.rindex('th',4)
14
>>> s.rindex('th',4,10)
8
>>> s.rindex('th',16,18)
Traceback (most recent call last):
File "", line 1, in
s.rindex('th',16,18)
ValueError: substring not found
4.13 format函数
format函数是字符串诸多函数中非常重要的一个,用来对字符串进行格式化。有关使用format函数对字符串进行格式化的内容,我们将在“字符串格式化”一节中详细讲解,这里暂且只举几个简单的例子。
>>> "{} likes Python,{} likesPython,too!"\
.format('Tom','Jack')
'Tom likes Python,Jack likes Python,too!'
>>> "{1} likes Python,{0}likes Python,too!"\
.format('Tom','Jack')
'Jack likes Python,Tom likes Python,too!'
>>> "{name1} likesPython,\
{name2} likes Python,too!"\
.format(name2='Tom',name1='Jack')
'Jack likes Python,Tom likes Python,too!'
4.14 lower函数
s.lower()函数用来把字符串s中的所有大写字母变为小写字母,对于不存在小写形式的字符原样输出。
>>> s = "PyTHoN"*3
>>> s
'PyTHoNPyTHoNPyTHoN'
>>> s.lower()
'pythonpythonpython'
>>> '我爱Pyhon'.lower()
'我爱pyhon'
4.15 upper函数
s.upper()函数用来把字符串s中的所有小写字母变为大写字母,对于不存在大写形式的字符原样输出。
>>> s
'PyTHoNPyTHoNPyTHoN'
>>> s.upper()
'PYTHONPYTHONPYTHON'
>>> '我爱Pyhon'.upper()
'我爱PYHON'
关注我
“人生苦短,要学Python”
python center函数_数据类型和数据结构(三):字符串(4) 字符串内置函数(1)相关推荐
- python不允许使用关键字作为变量名、允许使用内置函数_【判断题】Python不允许使用关键字作为变量名,但是允许使用内置函数名作为变量名,不过这会改变函数名的含义,所以不建议这样做...
[判断题]Python不允许使用关键字作为变量名,但是允许使用内置函数名作为变量名,不过这会改变函数名的含义,所以不建议这样做 更多相关问题 [单选,A2型题,A1/A2型题] <十四经发挥&g ...
- python不允许使用关键字作为变量名、允许使用内置函数_Python不允许使用关键字作为变量名,允许使用内置函数名作为变量名,但这会改变函数名的含义。...
Python不允许使用关键字作为变量名,允许使用内置函数名作为变量名,但这会改变函数名的含义. 答:对 对于检查出的无效MAC帧,以太网负责重传. 答:× 哪一年开始中国成为世界第二大经济体? 答:2 ...
- day4 匿名函数、装饰器、生成器、迭代器、内置函数、 json 与 pickle 模块
文章目录 1.列表生成式 2.匿名函数 3.装饰器 4.生成器 5.迭代器 6.内置函数 7.json & pickle 序列化与反序列化 1.列表生成式 可通过特定语句便捷生成列表 list ...
- python我想对你说_python学习第12天----内置函数
1.内置函数 python解释器提供的,直接可以使用的函数,如print,input等 1)作业域相关 ①globals() 以字典的类型返回全部局部变量 ②locals() 以字典的类型返回当前 ...
- 第三周 day14:内置函数
⼀. 本节主要内容: 1. 内置函数 什么是内置函数? 就是python给你提供的. 拿来直接⽤的函数, 比如print., input等等. 截⽌ 到python版本3.6.2 python⼀共提供 ...
- python中函数包括标准库函数吗_Python标准库:内置函数divmod(a, b)
本函数是实现a除以b,然后返回商与余数的元组. 如果两个参数a,b都是整数,那么会采用整数除法,结果相当于(a//b, a % b).如果a或b是浮点数,相当于(math.floor(a/b), a% ...
- 23-26 Python File方法、OS文件/目录方法、异常处理、内置函数
23Python File方法 23.1open()方法 Python open()方法用于打开一个文件,并返回文件对象,在对文件进行处理过程都需要使用到这个函数.如果该文件无法被打开,会抛出OSEr ...
- python列表内置函数_Python-列表总结(操作符、方法、内置函数、相关模块)
目录 上篇文章思考题 简介 创建与赋值 操作符 访问与更新(序列操作符切片) 判断元素是否存在(成员关系操作in,not in) 拼接列表(连接操作符+) 重复(重复操作符*) 删除 方法 添加 删除 ...
- Python学习 Day8-2 python的三元表达式(三目运算符)、lambda表达式、内置函数
Python中的三元表达式(三目运算符) 语法:为真时的结果 if 判断条件 else 为假时的结果(注意,没有冒号) >>print(1 if 5 > 3 else 0) 1 Py ...
最新文章
- python threading模块多线程源码示例(一)
- hiho_1089_floyd最短路
- 扩展中国剩余定理(模板)
- ubuntu19.10 安装搜狗输入法
- 国内程序员加班严重!听听外国网友怎么说。
- 用几何语言表示线段ab的中点c,做完这30道精选题,你的几何图形绝对满分!
- 魅族17将配备GaN氮化镓充电器:快充安全又高效
- web app开发利器 - iscroll4 解决方案
- python自学看什么书-自学Python一年,看了几十本书,我发现了这些捷径!
- matlab影像阿伯斯投影,D3.js 世界地图(一)投影方式
- java fakepath_解决文件上传取不到真实路径问题(fakepath)
- 开氏温度与摄氏度换算_温度是怎么来的,有没有物质没有温度?
- 计算机enter代表什么意思,enter是什么意思
- 计算机取消补考,2005级《计算机文化基础》补考通知
- 电脑PC端如何下载B站视频?
- 源码安装禅道11.0总结
- 【STC8H8K64U】开天斧3.1学习笔记——LED闪烁
- 我参加筑路机械专业筹建过程的回忆
- python实现AES对文件加解密(这里使用ECB密码本模式)
- TeamViewer商业版改成免费版
热门文章
- 网关冗余工作原理(总结)
- Okay 第一篇文章从java字符串开始
- 大整数相加链表实现(Add Two Numbers)
- 1.gloox开发环境搭建
- 你需要知道的基础算法知识——STL和基础数据结构(四)
- java写文件 自动创建目录吗_Java 自动创建日志目录及文件
- Go range实现原理及性能优化剖析
- docker的swarm介绍
- Android7.0 PowerManagerService 之亮灭屏(二) PMS 电源状态管理updatePowerStateLocked()...
- crazyradio焊接和下载固件过程