首先我们要明白在python中当字符编码为:UTF-8时,中文在字符串中的占位为3个字节,其余字符为一个字节
下面就直接介绍几种python中字符串常用的几种字符串内置函数(本文中牵扯到了模块与一些之前章节没讲过的相关知识,坑我之后会填的)
字符串切片(截取字符串):
#字符串切片 string[开始位置:结束位置:步长] name = "巩祎鹏"print(name[0:]) #从第一个字符截取到最后一个字符 print(name[0:2]) #从第一个字符截取到第二个字符 print(name[:3]) #从第一个字符截取到第三个个字符 print(name[0:3:2]) #从第一个字符截取到最后一个字符,每次步长为2
输出结果如下:
巩祎鹏
巩祎
巩祎鹏
巩鹏
分割字符串:
#分割字符串 split()函数 string.splist(sep,maxsplit) #string.splist(用于指定分隔符(如果没有参数,默认为None即空格), 分割次数(默认为-1,即没有限制)) #eg word ="所 有 风 光 的 背 后,最 终 都 要 用 孤 独 来 偿 还" print(word.split()) #默认为用空格进行分割 print(word.split(',')) #使用逗号(,)进行分割 print(word.split(' ',5)) #使用空格(None) 来进行分割,且只分割前五个字符
输出结果如下:
['所', '有', '风', '光', '的', '背', '后,最', '终', '都', '要', '用', '孤', '独', '来', '偿', '还']
['所 有 风 光 的 背 后', '最 终 都 要 用 孤 独 来 偿 还']
['所', '有', '风', '光', '的', '背 后,最 终 都 要 用 孤 独 来 偿 还']
可以看出,分割完字符串后,返回值为数组.
检索字符串:count()函数 以及 find()函数 index()函数 startswitch()函数 endswitch()函数
#count()方法 返回值为:int 用于检索指定字符在另外一个字符串中出现的次数,如果检索的字符不存在则会返回0. #语法为string.count(sub[start[end]]) string:被检索的字符串 sub:要检索的字符 start:可选,开始位置 end:可选,结束位置 #eg: demoStr = "@中国,@美国,@英国" print(demoStr.count('@')) print(demoStr.count('国'))
输出结果如下:
3
3
find()函数
#find()函数 返回值为:int 用于检索指定字符在另外一个字符串中第一次出现的下标,如果没有发现字符则会返回-1 #语法为string.find(sub[start[end]]) string:被检索的字符串 sub:要检索的字符 start:可选,开始位置 end:可选,结束位置 #eg: testStr = "123123123" print(testStr.find('1')) print(testStr.find('3'))
输出结果如下:
0
2
index()方法 返回值为:int 与find()方法类似 只是如果index()方法没有查找到字符将会抛出异常
startswitch()方法与endswitch()方法
#startswitch()方法与endswitch()方法 返回值:boolean 用于检索是否以指定字符串开头亦或者是结尾 #语法:string.startswitch(sum[,start[,end]]) string.endswitch(sum[,start[,end]]) #eg: email = "g2982272986@qq.com" print(email.startswith('g')) print(email.endswith('.com'))
输出结果如下:
True
True
字符串转换大小写 lower()方法 upper()方法
#lower()转小写 语法: string.lower() #eg: demoStr_lower = "sfSLDFsdlfk" print("原字符串为"+demoStr_lower) print("转换后为:"+demoStr_lower.lower()) #upper()转大写 语法:string.upper() #eg: demoStr_upper = "sfSLDFsdlfk" print("原字符串为"+demoStr_upper) print("转换后为:"+demoStr_upper.upper())
输出结果:
原字符串为sfSLDFsdlfk
转换后为:sfsldfsdlfk
原字符串为sfSLDFsdlfk
转换后为:SFSLDFSDLFK
过滤字符串: re模块中的sub函数
直接上代码,看完演示就懂了
#定义一个函数来过滤字符串 #语法:#sub(repl, string[, count]) 或 re.sub(pattern, repl, string[, count]): #第一个参数:需要屏蔽的关键词 第二个参数:过滤后替换原来关键字的字符串 第三个参数:需要过滤的字符串 #使用repl替换string中每一个匹配的子串后返回替换后的字符串。 def filterfar(string): """ 用于过滤字符串 :param 需要过滤的字符串: 参数 :return: 过滤后的字符串 """ # 导入模块 import re #需要过滤的关键字 string_re = r"(黑客)|(监听)" #过滤字符串 sub = re.sub(string_re,"= =!",string) #第一个参数:需要屏蔽的关键词 第二个参数:过滤后替换的问题 第三个参数:需要过滤的字符串 print(sub) #打印输出 filterfar("我是一名黑客") filterfar("我现在正在监听你")
输出结果:
我是一名= =!
我现在正在= =!你
可以看到黑客以及监听二字被过滤成= =!了
至于语法中为什么有一个函数是直接函数名sub调用,一个是re.sub来调用,后续讲到模块时会讲到.
总结
以上所述是小编给大家介绍的Python中字符串String的基本内置函数与过滤字符模块函数的基本用法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对小牛知识库网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
本文向大家介绍Python字符编码与函数的基本使用方法,包括了Python字符编码与函数的基本使用方法的使用技巧和注意事项,需要的朋友参考一下 一、Python2中的字符存在的解码编码问题 如果是现在正在用Python2的人应该都知道存在字符编码问题,就举一个最简单的例子吧:Python2是无法在命令行直接打印中文的,当然他也是不会报错的,顶多是一堆你看不懂的乱码。如果想在直接显示中文,我们是可以
描述 (Description) Less支持下面列出的一些字符串函数 - escape e %格式 replace 下表描述了上述字符串函数以及描述。 Sr.No. 类型和描述 例 1 Escape 它使用特殊字符的URL编码对字符串或信息进行编码。 你不能编码一些字符,如,, / ? , @ , & , + , ~ ! , $ , '以及您可以编码的一些字符,例如\ , # , ^ , ( ,
以下函数用于对dtype numpy.string_或numpy.unicode_的数组执行矢量化字符串操作。 它们基于Python内置库中的标准字符串函数。 Sr.No. 功能说明 1 add() 返回两个str或Unicode数组的逐元素字符串连接 2 multiply() 以元素方式返回具有多个串联的字符串 3 center() 返回给定字符串的副本,其中元素以指定长度的字符串为中心 4 c
AWK具有以下内置String函数 - asort(arr [,d [,how]]) 此函数使用GAWK用于比较值的常规规则对arr的内容进行排序,并将排序值arr的索引替换为以1开头的连续整数。 例子 (Example) [jerry]$ awk 'BEGIN { arr[0] = "Three" arr[1] = "One" arr[2] = "Two" print "
问题内容: 在Python程序中,给定带有函数名称的字符串的最佳方法是什么。例如,假设我有一个模块,我有一个内容为的字符串。最好的通话方式是什么? 我需要获取函数的返回值,这就是为什么我不只是使用。我想出了如何通过使用eval定义一个返回该函数调用结果的函数来执行此操作的方法,但是我希望有一种更优雅的方法来执行此操作。 问题答案: 假设模块与方法: 你可以将第2行和第3行缩短为: 如果这对你的用例
这些内建函数作用于表达式左侧的字符串值。 如果左侧值是数字或日期/时间/日期-时间或布尔类型(从 2.3.20 版本开始), 根据当前的number-, date/time/date-time- 和 boolean-format设置, 那么它会自动被转成字符串值(当使用${...} 插入这些值时,应用的都是一样的格式程序)。 boolean 字符串转为布尔值。字符串必须是 true 或 false