(MAX第三篇)Python--字符串操作(一)

Jacinthe ·
更新时间:2024-11-10
· 880 次阅读

Python字符串及操作(一)

此片文章总结涉及到字符串的引入、使用、索引选取、连接重复以及成员判断

字符串(string)

字符串是以单引号’ '或者双引号“ “括起来的任意文本。
由于我是新手,只是进行所学内容的总结,所以字符串编码这一块还不是特别的熟练,可以参考廖雪峰。

字符串用单引号’ ': >>> name='Max' >>> name 'Max' >>> smart='你聪明么' #可以输入中文,但是要记住不能在中文状态下输入引号 >>> smart '你聪明么' >>> Me='I am Max' >>> print(Me) #当使用print()打印,输出的文本不带单引号,输出的文本包含空格等 I am Max

使用单引号,则在输入的文本中不能在出现单引号,如果要用单引号,可以使用转义符\ 进行转化

>>> b='I\'m Max, my name\'s Max' >>> print(b) #当使用print()打印,输出的文本不带双引号 I'm Max, my name's Max 字符串用双引号’" ",使用双引号的同时还可以使用单引号: >>> name="Max" >>> name 'Max' >>> Introduce="I'm Max" >>> print(Introduce) #当使用print()打印,输出的文本不带双引号 I'm Max 字符串可以使用三引号,把文本完全输出 >>> sample='''I am Max, I want to show you some "sample", could I''' >>> sample #原文由换行,所以在此处会有一个\n换行符 'I am Max,\nI want to show you some "sample", could I' >>> print(sample) #使用print(),则会原文输出。 I am Max, I want to show you some "sample", could I

同样可以输出中文

>>> Matchgirl="""我是一个卖女孩的 火柴, 我今天快要被“冻死”了,因为没有了“燃料”,而且女孩都 回家了""" >>> Matchgirl '我是一个卖女孩的\n火柴,\n我今天快要被“冻死”了,因为没有了“燃料”,而且女孩都\n回家了' >>> print(Matchgirl) 我是一个卖女孩的 火柴, 我今天快要被“冻死”了,因为没有了“燃料”,而且女孩都 回家了 >>> 常用的转义字符

如果字符串里面有很多字符都需要转义,就需要加很多\,为了简化,Python还允许用 r’ ‘(原始字符串) 表示’'内部的字符串默认不转义,原样输出。

>>> print('\\\n\\')#使用了三个转义 \ \ >>> print('\\\t\\') #使用了\t tab四个键 \ \ >>> print(r'\\\t\\') #不转义,原样输出 \\\t\\
转义字符 结果
(在行尾时) 续行符
\ 反斜杠符号
单引号
" 双引号
\a 响铃
\b 退格(Backspace)
\e 转义
\000
\n 换行
\v 纵向制表符
\t 横向制表符
\r 回车
\f 换页
\oyy 八进制数,yy代表的字符,例如:\o12代表换行
\xyy 十六进制数,yy代表的字符,例如:\x0a代表换行
\other 其它的字符以普通格式输出
字符串的操作

字符串可以进行不同的操作,这篇总结文章先涉及到比如查找,选取、连接,重复,成员查询等操作,

查找、选取 索引(index)-- obj[ i ]

对于每一个字符串中的字符都有一个位置索引,而且是从0开始,也就是说0指的是第1个,1指的是第2个,这种在IP地址、列表、集合、元组等中都是如此定义.

每一个字符的索引值,空格也是一个字符. 索引采取 :

>>> Me='I am Max' >>> Me[0] #返回字符串的第一个字符 'I' >>> Me[2] #返回字符传的第三个字符 'a' >>> Me[4] #在字符串中,空格也是表示一个字符,所以此处返回空的字符 ' ' >>> Me[9] #该字符串最大索引为7,9超出范围,出现IndexError. Traceback (most recent call last): File "", line 1, in Me[9] IndexError: string index out of range

字符串可以从左到右索引,可以使用负数值索引,最后一个索引值为-1,从左到右的负数依次增加1.
在这里插入图片描述

>>> ST='卖女孩的小火柴' >>> ST[1] '女' >>> ST[-6] #可以发现同一个字符可以有不同的索引取值方法 '女' >>> ST[4] '小' >>> ST[-3] '小' 选取字符串一部分 – [:]

命令代码为 string[m:n] ,这里的m和n表示索引值(可以取正,也可以取负,与上面的索引相同),表示从索引m(第m+1个字符)开始,到索引n-1(第n个字符)结束。如果m省略,则表示从第一个字符开始,如果n省略,则表示取到最后一个字符,如果m和n都忽略,则表示取全部。
此处需注意:索引m和索引n的位置关系,必须是前到后,否则输出为空

>>> more='The smart Max is a international teacher' >>> print(more) The smart Max is a international teacher >>> more[1:10] #从索引1(第2个字符)开始到索引9(第10个字符)的取值(共9个),不包括索引10,是左闭右开 'he smart ' >>> more[:9] #冒号:前没有值,则从索引0即第一个开始,到索引8(第9个字符)结束(共9个)。 'The smart' >>> more[4:15] #从索引4(第五个字符)开始,到索引14(第十五个字符)结束。 'smart Max i' >>> more[4:-1] #-1代表最后一个字符,所以从索引4(第5个字符)开始,索引-2(倒数第2个字符)结束 'smart Max is a international teache' >>> more[:] #不加数字,只有一个冒号,则取全部字符,即整个字符串 'The smart Max is a international teacher' >>> more[-7:] #从索引-7到最后一个结束 'teacher' >>> more[-13:-4] 'ional tea' >>> more[-17:19] #因为-17索引的位置在索引19的位置后面,不能从后往前选取 '' >>> print(more[-7:]) #打印输出无单引号 teacher >>> print(more[:-1]) #从第一个开始,倒数第2个结束。 The smart Max is a international teache

同样可以每隔 i 个字符选取。
命令:string[ m:n:i ],其中 i 为正数的情况下,表示相隔 i个取字符, 如果i不输入值,则表示默认为1.此处索引的位置m在前,n在后

>>> more[1:10:2] 'h mr ' >>> print(more[3:15:4]) ra >>> print(more[2:16:2]) esatMxi

可以选择部分字符串并且逆序输出。
命令:==string[ m:n:i ]==其中的 i 为负值则可以逆序输出,但是**索引m的位置必须在索引n的位置之后。**

>>> a='abcdefghijklmnopqrst' >>> a[10:2:2] #i为2,则为空 '' >>> a[18:8:-2] #从索引18到索引8,逆序每隔两个选择字符 'sqomk' >>> a[-2:-10:-2] #-2>-10 'sqom' >>> a[-3:10:-2] #索引-3的位置在索引10的位置之后,-2表示每隔两个逆序选取 'rpnl' >>> a[::-1] #表示把整个字符串逆序输出 'tsrqponmlkjihgfedcba' 反查索引index

使用命令:string.index(str)

>>> alphabet='abcdefghijklmnopqrstuvwxyz' >>> alphabet.index('f') #查询f的索引 5 >>> alphabet.index('o') #查询o的索引 14

如果想查询一个子字符串的索引,则使用 ==string.find(str)==返回值为str第一个字符的索引位置。string.rfind(str)从右边开始查找,根据字符串的位置决定使用,可以缩短时间。

>>> Time.find('15') #返回1所在的索引 11 >>> alphabet.find('opqr') #返回o所在的索引 14 >>> alphabet.find('bfg') #'bfg'字符串不在字符串中,所以返回值为-1 -1 >>> alphabet.find('123') #‘123’不再字符串中,所以返回值为-1 -1 >>> alphabet.find('c',10,15) #检查字符是否在10-15之间,是则返回索引,不是则返回-1 -1 连接、重复、成员查询 可以用‘+’把两个或者多个字符串连接成一个字符串 可以用‘*’重复输入字符串 可以用‘in’,‘not in‘查询是否为字符串的成员 连接 >>> string1='I am ' >>> string2='Max' >>> string1+string2 'I am Max' >>> string3='a ' >>> string4='cool ' >>> string5='guy.' >>> string1+string3+string4+string5 'I am a cool guy.'

字符串的连接还可以使用内置函数join,并且可以利用不同的符号连接

>>> '-'.join(('I','am','Max')) #用短线连接,括号里为一个参数,必须加括号 'I-am-Max' >>> ' '.join(['I','am','Max'])#用空格连接,括号里为一个参数,可以为中括号 'I am Max' >>> sep='*' #设置分隔符 >>> a='相乘要使用' >>> b='字符串重复n次要用' >>> c='乘' >>> sep.join((a,b,c)) #用 *分割连接a,b,c三个量 '相乘要使用*字符串重复n次要用*乘'

字符串同样可以进行分割 string.split(sep),sep表示分割的符号

>>> Today='Today is 4th April 2020' >>> Today.split(' ')#使用字符串中的空格分割字符串,输出的为一个列表 ['Today', 'is', '4th', 'April', '2020'] >>> Time='2020-04-04-15-42-37' >>> Time.split('-') #使用字符还中的短线分割字符串,输出的是一个列表 ['2020', '04', '04', '15', '42', '37'] >>> Time.split('15') #使用15分割字符串 ['2020-04-04-', '-42-37'] 重复 >>> name='Maximum' >>>> name+name+name #加号连接三个变量name 'MaximumMaximumMaximum' >>> name*3 #*3表示重复3次,等同于上面 'MaximumMaximumMaximum' >>> print('-'*10+'Max'+'-'*10) #print()打印输出 ----------Max---------- >>> print('-'*10,'Max','-'*10) #pring()打印可以用逗号连接,但是两个字符串之间会有空格,表示的是输出三个字符串 ---------- Max ---------- 成员判断 >>> names='Max Kiki Melinda' >>> 'Max' in names #Max是names的部分字符串 True >>> 'Max ' in names #‘Max ’包含空格,同样是names的部分字符串 True >>> 'kiki' in names #大小写同样要注意 False >>> 'Tony' not in names True >>> 'Melinda' not in names False
作者:Maxwang888



字符串 max Python 字符

需要 登录 后方可回复, 如果你还没有账号请 注册新账号