1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > Python字符串地常规操作:取值 切片 查找 替换 分割 拼接 转义

Python字符串地常规操作:取值 切片 查找 替换 分割 拼接 转义

时间:2019-12-01 01:27:28

相关推荐

Python字符串地常规操作:取值 切片 查找 替换 分割 拼接 转义

字符串操作

字符串取值: 字符串取单个值

#举例#从零开始 每个字符对应的索引 h = 0 ,e = 1,l = 3 .......s = 'hell0,a tong'print(s[0])print(s[5])#在这里 ,(符号)也是一个字符print(s[7])#索引为7 对应的是 空格‘ ’ 索引打印出来就是空格print(s[-1])#倒叙取值 取字符串的最后一位打印:h,g

不能超出索引范围,会报错的。例下:

s = 'hell0,a tong'print(s[20])打印:IndexError: string index out of range翻译:字符串索引超出范围

IndexError 属于Python的内置异常。 要学会查看报错信息

异常相关知识:/nmb-musen/p/10856023.html

当然可以通过获取字符串的长度,避免索引越界的异常出现:

语句:len(字符串) 也可以采取下面方法:

s = 'hell0,a tong'print(len(s))打印:12

字符串取值: 字符串取多个值(切片)

举例说明:

1,取出所有字符串

zfc = 'abcdefgh'#语句 字符串[起始索引:结束索引:步长] 起始索引默认为0 结束索引默认为-1 步长默认是1print(zfc[:])print(zfc[::])print(zfc[::1])打印:abcdefghabcdefghabcdefgh

2,取出字符串中指定字符

zfc = 'abcdefgh' #对应的索引 a = 0 b =1 c = 2 d =3print(zfc[:3])#起始下标为0 结束下标为3 步长为1print(zfc[2:])#下标从2开始,一直取到最后,也就是从 c = 2开始,默认步长为1打印:abccdefgh

第一个输出 这里结束下标为3,难道不应该输出 abcd吗?

因为 这里是 字符串的切片 遵循 左闭右开 的策略,包含起始,不包含结束,索引打印的值为abc

2,按照步长为2取出字符串中的字符

zfc = 'abcdefgh' print(zfc[::1])print(zfc[::2]) #步长为2 也就是每隔一个字符取下一个字符 从零开始 下标+2print(zfc[::30])#不管我们步长取多大的值,都是从下标0开始的,除非你设置起始索引打印:abcdefghacega

3,反向取字符串中的字符。 正向,反向取值取决于步长

zfc = 'abcdefgh' print(zfc[::-1])#**倒叙 - 反转**打印:hgfedcba

下图是字符串其他的一些操作,可以尝试使用。

1,查找字符串

zfc = 'abcdefgh' print(zfc.find('e'))# 参数就是字符串('e') ,返回的是你查找字符串的索引值print(zfc.find("de"))# 只返回查找字符串的第一个下标print(zfc.find('1'))# '1'不在字符串中 找不到的话返回-1打印:43-1

2,返回一个字符的下标

zfc = 'abcdefgh' print(zfc.index('a'))打印:0zfc = 'abcdefgha' #字符串中有两个a字符print(zfc.index('a'))#返回第一个a,的值#根据上图看出index这个函数的参数是可以设置,start= 和 end= ,我们这里从下标是1开始查找字符aprint(zfc.index('a',1))打印:08

如果我们查找的字符不在字符串中,就会抛出异常(报错)

zfc = 'abcdefgh' print(zfc.index('1'))# ‘1’ 不在字符串中打印:ValueError: substring not found#没有找到字符串

find 和 index 都是返回字符的索引。那么他们的区别在哪里呢?

find中查找不到字符,返回值为-1.

index中找不到字符时,会报错

只能说是应用场景不同吧,可以使用find做判断,字符没在字符串中就返回-1

2,替换 用新值替换旧值

语句: 字符串.replace(旧值,新值)

zfc = 'abcde:fgh'print(zfc.replace(':',',,,,'))#用四个逗号,替换:print(zfc.replace('ss',',,,,'))#ss不存在字符串当中,如果不存在的话,就不做改动,也不会报错打印:abcde,,,,fgh

zfc = 'abcde:fgha'print(zfc.replace('a','111'))#把字符串中所有的'a',都替换为111#只替换字符串中的第一个‘a’字符,有上图可知:count= 为指定替换次数print(zfc.replace('a','111',1))打印:111bcde:fgh111111bcde:fgha

3,字符串的分割split()

定义:将字符串用分割符分割开,放到列表中去,split()参数为空时,默认通过空格隔开。

s ='狗子 二丫 张三 李四'b = s.split()#使用逗号将字符串s隔开打印:['狗子', '二丫', '张三', '李四']#使用ctrl+鼠标左键 点击split 查看他的源代码"""def split(self, *args, **kwargs): # real signature unknown"""Return a list of the words in the string, using sep as the delimiter string.sepThe delimiter according which to split the string.None (the default value) means split according to any whitespace,and discard empty strings from the result.maxsplitMaximum number of splits to do.-1 (the default value) means no limit."""pass翻译:使用sep作为分隔符字符串,返回字符串中的单词列表。9月用来分割字符串的分隔符。None(默认值)表示根据空格分割,并从结果中丢弃空字符串。maxsplit要做的最大劈叉次数。-1(默认值)表示没有限制。

由此看出我们时可以设定分割次数的

s='狗子 二丫 三 四'c=s.split(' ' , 1)#使用逗号隔开,指定分割一次s='狗子 二丫 三 四'b=s.split(' ',2)print(b)print(c)打印:['狗子', '二丫', '三 四']['狗子', '二丫 三 四']

4,字符串的拼接 join

将一个列表中的字符串拼接成一个字符串。

前提条件:列表的成员都必须是字符串

1,拼接符’ '.join 也必须是字符串类型

2,无规则要求拼接两个字符串用+

3,重复多次使用用*

s=['狗子', '二丫', '三', '四']b=','.join(s)print(b)打印:狗子,二丫,三,四print('-'*20)打印:--------------------a ='狗子'b='三ge'print(a+b)打印:狗子三ge

5,字符串的转义

1,\n 就是换行的意思print('sss \nsss')#换行打印:sss sss2,\\ 起始就是输出一个单斜杠print('D:\\录屏软件')#只打印一个\打印:D:\录屏软件3,r 转义符print(r'D:\录屏软件\程序\应用')#不会像上边\\那么麻烦,比较简介打印:D:\录屏软件\程序\应用

以上所有的操作都不会改变字符串的本身,因为字符串是不可修改的,不可变类型。

一旦赋值,就不可修改,所有的操作都是生成新的字符串。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。