python字符串添加成员_Python - 字符串的操作方法

字符串操作方法

生成字符串

str = 'Python string Function study'

sequence类型都支持的一些通用操作:

成员检查:in、not in 'Py' in str 'python' not in str

连接:+ str_new = str1 + str2

复制:* str * 2

下标取值:s[i] str[3]

切片:s[i : j] str[3:8]

长度检查:len(s) len(str) print('%s length = %d' % (str,len(str)))

最小值:min(s) min(str) 空格在上面字符串中是最小的

最大值:max(s) max(str) 大写字母要小于小写字母

字符串切片

1. 字符串变量名[x:y],表示下标从x到y的一段字符串(不包括y)。

当x不写,像[:y],表示从头开始,相当于[0:y]。当y不写时,表示一直到尾。当x和y两个都不写时,就表示整个字符串。

str_result = str[3:8]

2. 步长切片截取

使用两个冒号来实现按一定“步数”来取值的 [x:y:z]

str_result = str[1:9:3] #即从第1个字符开始,每隔3个位移取一个值,到第9个字符截止(不包括第9个字符)

一. 查找 & 替换类方法

1. str.count(sub, start= 0,end=len(string))

返回字符串里某个字符或是子字符串出现的次数。可选参数为在字符串搜索的开始(默认为第一个字符)与结束(默认为最后一个字符)位置。

str = 'Python string Function'

str_result = str.count('th', 2, 15)

2. str.find(str, beg=0, end=len(string)) str.rfind(sub[, start[, end]]) str.index(sub[, start[, end]]) str.rindex(sub[, start[, end]])

检测字符串中是否包含子字符串 str ,如果指定可选参数 beg(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,如果包含子字符串返回开始的索引值,否则返回-1。

index()方法与find()方法一样,如果包含子字符串则返回开始的索引值,只不过index()方法如果str不在 string中会报一个异常。

str = 'Python string Function'

str_result = str.find('python', 1, len(str)) #find()查找的是子字符串在全字符串中出现的第一个位置,匹配到字符串就结束查找,不管后面还有没有匹配的字符串。

str_result = str.rfind('string', 1, len(str)) #从最右边开始查找,但返回的index位置却是从原字符串的最左边开始算的

str_result = str.index('Python', 0, len(str))

str_result = str.rindex('string', 0, len(str))

3. str.replace(old, new[, count])

返回一个新字符串,原串中的old被替换为new,可选参数count指定替换次数。

str = 'aaalllaaannn'

str_result = str.replace('a', 'd', 4)

4. str.maketrans(x[, [y, z]]) str.translate(map)

用于创建字符映射的转换表,接受两个参数x, y的最简单的调用方式,第一个参数是字符串中需要转换的字符组成的字符串,第二个参数也是字符串表示要转换的目标。 可选参数Z 的意思是删除原字符串中的相应字符

两个参数字符串的长度必须相同,且为一一对应的关系。

table = str.maketrans('al', 'bc', 'n')

str = 'alan'

str_result = str.translate(table)

二. 判断类方法,通常返回True和False

5. str.endswith(suffix[, start[, end]]) str.startswith(str, beg=0,end=len(string))

用于判断字符串是否以指定子字符串 结尾和开头,如果是则返回True,否则返回False。如果可选参数指定值,则在指定范围内检查。默认检索字符串的开始(默认为第一个字符)与结束(默认为最后一个字符)位置。

str_result = str.endswith('dy', 10, 30)

str_result = str.startswith('P', 0, 10)

6. str.isalnum()

检测字符串是否由字母和数字组成,如果 string 至少有一个字符并且所有字符都是字母或数字则返回 True,否则返回 False

str = 'abc 123'

str_result = str.isalnum() #字符串中包含空格也会返回False, 中文字符是被允许的,也会返回True

7. str.isalpha()

检测字符串是否只由字母组成, 如果字符串至少有一个字符并且所有字符都是字母则返回 True,否则返回 False

str = 'abc'

str_result = str.isalpha() #中文字符是被允许的,也会返回True

8. str.isdigit() str.isdecimal() str.isnumeric()

检测字符串是否只由数字组成, 如果字符串至少有一个字符并且只包含数字则返回 True 否则返回 False

str.isdecimal():判断字符串是否只包含十进制数字字符,包括多国语言的十进制数字字符表现形式

str.isdigit():判断字符串是否只包含数字,这里的数字包括十进制数字和其它特殊数字(如上标数字等),一个数字是拥有如下属性值的字符:Numeric_Type=Digit或Numeric_Type=Decimal。

str.isnumeric():判断字符串是否只包含数字字符。数字字符范围很大,一般来说,数字字符是拥有如下属性值的字符:Numeric_Type=Digit, Numeric_Type=Decimal或Numeric_Type=Numeric。

str = '12345'

str_result = str.isdigit()

str_result = str.isdecimal()

str_result = str.isnumeric()

9. str.isspace()

检测字符串是否只由空格或制表符(\t)组成. 是则返回True, 否则返回False

str = ' '

str_result = str.isspace()

10. str.islower() str.isupper()

检测字符串中的字母字符是否全部由小写字母组成. 如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True,否则返回 False

isupper()方法检测字符串中所有的字母是否都为大写。同样返回True, 或是False

这两种方法仅判断字符串中的字母字符,不理会其它字符。字符串必须至少包含一个字母字符,否则返回False

str = 'al%an'

str_result = str.islower()

str_result = str.isupper()

11. str.istitle()

检测字符串中所有的单词拼写首字母是否为大写,且其他字母为小写。是则返回 True,否则返回 False.

字符串必须至少包含一个字母字符,否则返回False。即使首字母字符前面有非字母字符,如中文、数字、下划线等,也不影响对首字母字符的判断。

str = "Alan Python"

str_result = str.istitle() #"Alan's Python" 返回的结果是False

12. str.isidentifier()

判断字符串是否是合法的标识符,字符串仅包含中文字符合法,实际上相当于判断的是变量名是否合法

str = "_Alan_Python"

str_result = str.isidentifier()

13. str.isprintable()

判断字符串所包含的字符是否全部可打印。字符串包含不可打印字符,如转义字符,将返回False

str = 'alan\n python'

str_result = str.isprintable()

三. 格式化类方法,返回一个格式化的新字符串

14. str.lower() str.upper() str.swapcase()

把全部字母字符转换成小写 / 大写,不去管其它非字母字符。字符串全部为非字母字符也是合法的,但返回原字符串.

swapcase()方法把字符串中的大小写字母互换,大写转换成小写,小写转换成大写。不去管非字母类字符。

str = '中国 Alan Xu'

str_result = str.lower()

str_result = str.upper()

str_result = str.swapcase()

15. str.capitalize()

将字符串的第一个字符转换为大写, 其余转换为小写

如果字符串首字符为非字母字符,将返回原字符,但其余字符仍转换为小写。字符串仅包含非字母字符合法,但返回原字符串。

str = '中Alan Xu'

str_result = str.capitalize()

16. str.title()

字符串中每个单词的首字母大写,其余小写。单词的首字符为非字母字符也不影响转换。字符串仅包含非字母字符合法,但返回原字符串

str = '中alAn xU'

str_result = str.title()

17. str.center(width[, fillchar]) str.ljust(width[, fillchar]) str.rjust(width[, fillchar])

返回一个指定的宽度 width 居中 / 左对齐 / 右对齐 的字符串,可选参数fillchar 为填充的字符,默认为空格。 如果 width 小于字符串长度直接返回字符串

str = 'Alan Xu'

str_result = str.center(50, '*') #width为偶数时,fillchar将平均地填充到原字符串的开头和结尾;为奇数时,fillchar优先填充前面

str_result = str.ljust(50, '*')

str_result = str.rjust(50, '*')

18. str.lstrip([chars]) str.rstrip([chars]) str.strip([chars])

返回一个去除了特定字符的新字符串,chars参数是一个字符串,它包含了所有将要被移除的字符集合。默认为空格

从原字符串的 最左边 / 最右边 / 两端 开始,匹配chars里包含的所有字符,直至遇到第一个非chars字符为止,原字符串中匹配到的所有字符都被移除。

str = 'alan xu python'

str_result = str.lstrip('a ln') #当遇到字符x不属于'a ln'时结束,移除x前的所有字符

str_result = str.rstrip('a ln')

str_result = str.strip('a ln')

19. str.expandtabs([tabsize])

把字符串中的所有制表符替换成零个或多个空格,每个制表符替换成多少个空格,由制表符在字符串中的位置和tabsize共同决定。tabsize指定每个制表符替换成的空格数,默认为8个

tr = '\t\talanhah\tis hero'

str_result = str.expandtabs() #制表符的制表位是从每行开头算起的,所以第三个制表符的制表位是从行首开始的第24个位置,所以就只有1个空格出现

20. str.zfill(width)

返回一个长度为width的字符串,最左边填充0。如果width小于等于原字符串长度,则返回原字符串。主要用于数字类字符串的格式化。

str = '123'

str_result = str.zfill(8)

21. str.format(*args, **kwargs) str.format_map(mapping)

增强了字符串格式化的功能, 基本语法是通过 {} 和 : 来代替以前的 %

format() 函数可以接受不限个参数,位置可以不按顺序。

21.1 通过位置

str_result = '{0},{1}'.format('Alan', 'Xu') #Alan,Xu

str_result = '{},{}'.format('Alan', 'Xu') #Alan,Xu (不能出现同时一个{}和一个{1}这样)

str_result = '{1}{0}{1}'.format('Alan', 'Xu') #XuAlanXu

21.2 通过关键字参数

str_result = '我的名字叫:{name},我的年龄:{age}'.format(name = 'Alan', age = 26)

21.3 通过对象属性

class person:

def __init__(self, name, age):

self.name, self.age = name, age

def __str__(self):

return '我的名字叫:{self.name}, 年龄是:{self.age}'.format(self = self)

str_result = person('Alan', 26)

21.4 通过下标

str_list = ['Alan', 26]

str_result = '名字:{0[0]}, 年龄:{0[1]}'.format(str_list)

格式限定符

21.5 填充与对齐

^、分别是居中、左对齐、右对齐,后面带宽度

:号后面带填充的字符,只能是一个字符,不指定的话默认是用空格填充

str_result = '{:*^16}'.format('alan') #******alan******

str_result = '{:*<16}'.format('alan') #alan************

str_result = '{:*>16}'.format('alan') #************alan

21.6 精度与类型f

str_result = '{:.2f}'.format(3.1415926) #3.14 其中.2表示长度为2的精度,f表示float类型。

21.7 其他类型

主要就是进制,b、d、o、x分别是二进制、十进制、八进制、十六进制。

str_result = '{:b}'.format(26) #11010

str_result = '{:d}'.format(26) #26

str_result = '{:o}'.format(26) #32

str_result = '{:x}'.format(26) #1a

用,号还能用来做金额的千位分隔符。

str_result = '{:,}'.format(1234567890) #1,234,567,890

用 % 号实现百分比

str_result = '{:.2%}'.format(0.26) #26.00%

指数记法

str_result = '{:.2e}'.format(26) #2.60e+01

str.format_map(mapping)类似 str.format(*args, **kwargs) ,不同的是 mapping 是一个字典对象。

People = {'name':'alan', 'age':26}

str_result = 'My name is {name},i am {age} old'.format_map(People) # 'My name is john,i am 56 old'

新增1. str.encode(encoding='UTF-8',errors='strict')

以 encoding 指定的编码格式编码字符串(如"UTF-8")。errors参数可以指定不同的错误处理方案。该方法返回编码后的字符串。

errors -- 设置不同错误的处理方案。默认为 'strict',意为编码错误引起一个UnicodeError。

其他可能的值有 'ignore', 'replace', 'xmlcharrefreplace', 'backslashreplace' 以及通过 codecs.register_error() 注册的任何值。

str = '我在学习Python'

str_result = str.encode('UTF-8','strict')

str_result.decode('UTF-8', 'strict') #byte类型 方法 decode()解码

四. 拆分组合类方法

22. str.partition(sep) str.rpartition(sep)

拆分字符串,返回一个包含三个元素的元组。

如果未能在原字符串中找到Sep,则元组的三个元素为:原字符串,空串,空串;否则,从原字符串中遇到的第一个Sep字符开始拆分,元组的三个元素为:Sep前的字符串,Sep字符,Sep之后的字符串;

rpartition(sep)从原字符串的最右边开始拆分,返回:倒数第一个Sep之前的字符串,Sep字符,Sep之后的字符串。

str = 'aabcdefgdeh'

str_result = str.partition('de') #sep为空时,会报错

str_result = str.rpartition('de')

23. str.split([sep[, maxsplit]]) str.rsplit([sep[, maxsplit]])

返回一个以Sep分隔的列表,maxsplit指定拆分次数(因此,列表中元素的个数为maxsplit + 1)。Sep默认为空格,maxsplit默认不限制拆分次数。

1)如果未指定Sep或指定Sep为None,str两端的空格将舍弃;如果指定Sep(不管能否在原字符串中找到Sep),str两端的空格将保留

2)如果未能在原字符串中找到Sep,则返回一个仅包含一个元素的列表,这个元素就是原字符串。

3) str.rsplit()只是从最右边开始拆分。只有在指定maxsplit的情况下才会看到不同效果

str = ' hello alan '

str_result = str.split() #结果['hello', 'alan']

str_result = str.split('l', 2) #结果[' he', '', 'o alan ']

str_result = str.rsplit('l', 2) #结果[' hel', 'o a', 'an ']

24. str.join(iterable)

以指定字符串str作为分隔符,将iterable对象中所有的元素(字符串表示)合并为一个新的字符串. 如果传入一个非iterable对象,如整数、布尔值等,将返回Type Error。

iterable object或iterator type最主要的特征是支持两个函数:__iter__()和__next__(),虽然不是很准确,但可以简单的认为支持使用for语句逐个取值的数据类型都是迭代器对象。

sequence type(六种:strings、byte objects、byte arrays、lists、tuples、range objects)和dictionary都属于iterable对象

str = 'ab'

str_result = str.join('cdef') #结果cabdabeabf (即:cab dab eab f)

25. str.splitlines([keepends])

拆分一个包含多行的字符串,以每行为一个元素返回一个列表。如果字符串不是多行,则返回原字符串。keepends是一个True字符或非零整数,表示保留行尾标志(即换行符)。该方法多用于处理文件。

str = '''ab

cd

ef'''

str_result = str.splitlines()

字符串方法实际操作

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/528103.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

作为神经网络的输入_MATLAB实战|基于神经网络河南省降水量预测

1 BP神经网络结构神经网络旨在通过模仿动物的神经系统利用神经元作为连接结点的新型智能算法&#xff0c;神经网络本身包含三层结构&#xff0c;输入层&#xff0c;隐含层&#xff0c;输出层&#xff0c;每一层都有自己的特殊功能&#xff0c;输入层进行因子的输入与处理。由于…

docker kafka互通有问题_Docker搭建kafka集群

拉取镜像docker pull wurstmeister/kafka docker pull wurstmeister/zookeeper启动镜像docker run --name zookeeper -p 12181:2181 -d wurstmeister/zookeeper:latestdocker run -p 19092:9092 --name kafka1 -d -e KAFKA_BROKER_ID0 -e KAFKA_ZOOKEEPER_CONNECT宿主机ip:1218…

示坡线高程判断_一步一步教你识别地形图

(五)地貌的表示方法地球表面是起伏不平的&#xff0c;有高山&#xff0c;有深海&#xff0c;有丘陵和平原&#xff0c;有沙漠和草原&#xff0c;还有江河和湖泊等等&#xff0c;这些高低不平&#xff0c;形状各异的地貌是怎样表示在平面图纸上的呢?地貌的表示方法&#xff0c;…

html 图片 高度无效_HTML笔记(详细)

HTML的标签分类双标签&#xff1a;如<strong>标签的内容</strong> 语法&#xff1a;<开始标签> 标签内容 </结束标签><strong>我要变粗</strong> <head></head>...... 单标签&#xff1a;<br/>单标签都是功能性的标签&…

elementui 上传七牛_element ui使用上传组件上传文件到七牛(qiniu-js)

博主正在重构博客中&#xff0c;刚开始时静态资源都是上传到本地服务器的&#xff0c;但这个项目博主最后打算真正上线运营的。索性就改进了下&#xff0c;把静态资源尽量放到云存储中&#xff0c;方便后续开发。这里把方法和遇到坑给记录下。1.使用前提注册七牛云并创建存储空…

bool类型0和1真假_MySQL整理5—数据类型和运算符

数据科学探路者&#xff1a;MySQL整理4—数据表的基本操作2​zhuanlan.zhihu.com一、数据类型数据科学探路者&#xff1a;MySQL知识整理1—数据库基础​zhuanlan.zhihu.com在上面链接的部分内容中&#xff0c;介绍了以下数据类型&#xff1a;整数类型&#xff1a;BIT、BOOL、TI…

mysql 消息队列_MYSQL模拟消息队列(转载) | 学步园

《PHP核心技术与最佳实践》第5章中的内容&#xff1a;MYSQL模拟消息队列主要用于微博&#xff0c;团购秒杀等场合&#xff0c;其用意是将大量并发的数据库操作变得缓慢可控&#xff0c;达到削峰的目地。同时实现方式也比较简单易行。比如微博某大V发布了一条微博&#xff0c;那…

mysql查询后调用mysql_free_result_怎么释放_关于mysql_free_result和mysql_close的解惑

之前用mysql的时候一直是在用短链接&#xff0c;调用mysql_store_result获取一次数据之后就直接调用&#xff1a;以下是代码片段&#xff1a; mysql_free_result(m_result); mysql_close(m_Database);但是有两个问题&#xff1a;以下是引用片段&#xff1a;1.当使用长连接时(即…

mysql查询 百万_MySQL百万级数据分页查询优化

前言当需要从数据库查询的表有上万条记录的时候&#xff0c;一次性查询所有结果会变得很慢&#xff0c;特别是随着数据量的增加特别明显&#xff0c;这时需要使用分页查询。对于数据库分页查询&#xff0c;也有很多种方法和优化的点。下面简单说一下我知道的一些方法。准备工作…

mysql mac 中文乱码_Mac mysql 解决中文乱码

Mac mysql 解决中文乱码问题出现“???”之类的无法识别的乱码到/etc目录下自己建一个my.cnf文件(需要最高权限,使用sudo su)&#xff0c;然后写入内容&#xff1a;[client]default-character-setutf8[mysqld]character-set-serverutf8保存&#xff0c;修改。关掉重启mysql&a…

tos重装mysql_云服务器(腾讯云)从零开始部署记录(3)之mysql5.7安装

1、安装yum repocentos的yum源中没有mysql(可尝试直接使用安装命令&#xff1a;yum install mysql-server尝试)&#xff0c;需要到mysql的官网下载yum repo配置文件&#xff0c;然后安装&#xff1a;#下载wget https://dev.mysql.com/get/mysql57-community-release-el7-9.noar…

linux启动mysql1820_linux 系统下MySQL5.7重置root密码(完整版,含ERROR 1820 (HY000)解决方案)...

mysql的root密码忘记了怎么重置&#xff1f;往下看&#xff1a;1.保证你的mysql服务处于关闭状态。(用ps -ef | grep mysql 查看进程&#xff0c;有则kill -9 进程号)2.在my.cnf所在目录中执行 vim my.cnf3.在[mysqld] 后边加入skip-grant-tables如图&#xff1a;并保存。4.启动…

mysql查询按值多的排序_MySQL查询结果按某值排序

MySQL查询结果按某值排序 使用MySQL很多时候我们不仅只是查询出结果&#xff0c;还需要对查询结构进行排序&#xff0c;下文对查询结果按某值排序的方法作了详细的介绍&#xff0c;供您参考。 AD&#xff1a; MySQL查询结果如何排序呢&#xff1f;这是很多人都提过的问题&#…

mysql 5.7 ssd_6T!阿里云MySQL 5.7 存储空间再刷新高

近日&#xff0c;阿里云宣布华东1(杭州)上线MySQL 5.7 高可用版 SSD云盘型实例&#xff0c;最高可支持6T存储空间容量&#xff0c;支撑海量数据存储&#xff0c;6T是个什么概念&#xff0c;之前MySQL 5.7 高可用版最大存储空间是3T&#xff0c;相当于翻了一倍。此次扩展存储空间…

ext get id js_Ext.getCmp(“id”) 简单应用 | 学步园

1.2.3. request.setAttribute("base", request.getContextPath());4.%>5.6.7. 8. 9. getCmp方法的简单应用10. 11. 12. 13. 14.15. 16.17. function ready(){18. var setTextfunction(){//重新设置文本函数19. var buttonExt.getCmp("btn");//根据id获取…

scrapy mysql测试连接_scrapy连接MySQL

Scrapy中连接MySQL所需要做的工作如下&#xff1a;1.settings中需要设置的部分#启动管道组件ITEM_PIPELINES {‘QianChengWuYu.mongoDBPiplelines.MongoDBPipline‘: 300,}#mysql的连接参数MYSQL_DB_NAME ‘qianchengwuyu‘MYSQL_HOST ‘localhost‘MYSQL_USER ‘‘MYSQL_PASS…

mysql谓词演算_MySQL基础知识

一、了解MySQL1、什么是数据库&#xff1f;数据库是一种以某种有组织的方式存储的数据集合。2、模式(schema):关于数据库和表的布局及特性的信息。3、列&#xff1a;正确的将数据分解为多个列极为重要。通过把它分解开&#xff0c;才有可能利用特定的列对数据进行排序和过滤。4…

maya python 游戏与影视编程指南_《Maya Python游戏与影视编程指南》【价格 目录 书评 正版】_中国图书网...

致谢 xi引言&#xff1a;欢迎使用maya python xii第 1 部分 python和maya的基础知识 1第 1 章 maya 命令引擎和用户界面 21.1 与maya 进行交互 3 maya 嵌入式语言 3 python 3 c 应用程序编程界面 3 python api 41.2 在maya 中执行python 4 命令行 4 脚本编辑器 5 maya 工具架 7…

mysql+缓冲池脏块率高_什么是数据库的 “缓存池” ?(万字干货)

原标题&#xff1a;什么是数据库的 “缓存池” &#xff1f;(万字干货)1、Buffer Pool 概述Buffer Pool 是什么&#xff1f;从字面上看是 缓存池 的意思&#xff0c;没错&#xff0c;它其实也就是 缓存池 的意思。它是 MySQL 当中至关重要的一个组件&#xff0c;可以这么说&…

mysql建库权限_mysql数据库用户权限及建库脚本

/* 创建系统数据库mydatabasename */drop database if exists mydatabasename;create database mydatabasename;/* 指定当前数据库为mydatabasename */use mydatabasename;/* 创建用户信息表user */drop table if exists user;create table user(user_idint not null auto_incr…