python字符串内置函数讲解

python字符串内置函数

这里每一点都是小编自己整理的,不求点赞,只求大家能给小编留下宝贵的意见,小编也有一些学习python的书籍,如果想要直接私信小编,会免费共享给学习爱好者的!!

python具有很多很强大的处理字符串的函数与方法当然, 这些方法没有必要一下全部了解, 全部背下来, 小编在这里整理只是为了可以感受一下,python的强大!
当然,主要目的还是为了以后的查阅等比较方便。单独看这些函数很是枯燥乏味的, 每个内置函数他的实现其实是可以自己来写的, 所以在研究算法的同学, 可以自己来编写这些函数并能实现这个函数的所有功能, 深入了解每个函数的时间复杂度, 这是很有帮助的。

来先进入一段讲解前的废话吧, 这也是小编在复习的时候发现的一个小问题吧.
字符串的拼接运算符’+’, 拼接顾名思义, 就是两个字符串来拼接成一个长的字符串
这很简单, 就不多说了, 还有一个就是字符串的倒序输出, 学过python的人都知道, 字符串是不可变序列, 如果要是倒序输出, 你会用什么方法呢?
转换成列表然后用reverse函数来反过来(注意字符串是不可变序列, 不能直接用reverse()), 然后再转换为字符串, 或者用循环来进行从后面打印, 这两种方法都还行, 但是就是感觉还是有一些臃肿, 比较麻烦.
比较简单的方法就是用切片的方法, 创建一个副本, 直接打印, 很多人都忽略了, 切片里面的三个参数[起始, 终止, 步长], 这个步长可以是负的

str1 = 'abcde'
print(str1[::-1])

如果需要有起始点和终止点的话, 那就要注意一下, 这个是倒序输出的, 所以起始点必须得是后面的值, 终止点得是前面的值, 如果弄反了, 那肯定是什么都输出不出来的, 小编认为吧, 这个方法主要是学切片的时候是在列表的章节, 然后就忽略了字符串这个很好用的方法了

好了废话结束,开始进入正题了, 上python字符串内建函数
最后废话一句,内建函数记得用’.’

大小写相关的字符串内置函数:

  1. capitalize()
    就是将字符串的第一个字符转换为大写的函数,这不津让人联想到了title()函数,这两个有什么区别呢?代码测试一些
str1 = 'liu de hua'
print(str1.title())
print(str1.capitalize())
# 输出结果如下
# Liu De Hua
# Liu de hua

结果很明显的看出来了区别title()将每一个小字符块儿(小编自己取的名, 别介意, 嘿嘿) 的首字母全部大写了, 而capitalize()只是将第一个字母大写了

  1. title()
    上面已经叙述了用法, 不再重复, 这个函数的意思就是标题化, 看外国文章, 你会发现人家的文章每一个单词首字母都是大写的
  2. istitle()
    is 就是是的意思, 这个函数就是用来判断这个字符串是不是标题化的, 所以返回值就是布尔值, True 和 False
  3. upper()
    将字符串全部转为大写字母
  4. lower()
    将字符串全部转为小写字母
    这两个函数比较简单可以自己去尝试一下

查找 , 替换相关的内建函数还是比较重要的:

  1. find(str, [beg=0, end=len(string)])
    检测str 是否包含在字符串中, 如果指定范围 beg 和 end, 则检查是否包含在指定范围内, 如果包含返回开始的索引值, 否则返回-1
s1 = 'index lucy lucky goods'
position = s1.find('R')
print(position) # R没有包含在字符串内,所以返回值为-1
position = s1.find('l', beg=0, end=5)
print(position) # l没有包含在索引值为0-5内,所以返回值为-1
position = s1.find('l')
print(position) # l在里面,所以返回第一次出现的索引值为6
  1. rfind(str, [beg=0, end=len(string)])
    这个就是从右开始寻找索引, 下面讲解一个好玩的实例
# 比如说某站首页的一个图片地址为:
# https://img-bss.csdn.net/1585488316036.png
# 如果只想找到这个图片名称就可以用到这个方法
url = 'https://img-bss.csdn.net/1585488316036.png'
p = url.rfing('/') 
print(p)  # 此时返回值就为/的索引
print(url[p+1:]) # 这样打印的就为图片的名称
  1. lfind(str, [beg=0, end=len(string)])
    这个就是left 缩写, 所以就是从左开始索引
  2. index(str,[beg=0, end=len(string)])
    和find()方法一样, 只不过如果str不在字符串中会报一个ValueError异常, 下面的rindex()和lindex()就不过多赘述了
  3. rindex(str, [beg=0, end=len(string)])
  4. lindex(str, [beg=0, end=len(string)])
  5. replace(old, new [, max])
    把字符串中的str1替换成str2, 如果max指定, 则替换不超过max次
s1 = 'I love Python'
s1 = s1.replace('love','like') # 注意: 这里是有返回值的,是创建了一个副本,没有将原来的改变
print(s1)  # 结果会发现这个love会被替换成了like
  1. 编码(很重要哦): encode (encode=‘UTF-8’, errors=‘strict’)
    以encode指定的编码格式字符串, 如果出错默认报一个valueerror的异常,除非errors指定的是’ignore’(表示忽略)或者’replace’,python3默认为utf-8(万国码) 还有 gbk(中文) , gb2312(简体中文),Unicode编码等
    编码完成后
s1 = '我要上天'
result = s1.encode('uft-8')
print(result)  # 结果为b'\xe6\x88\x91\xe8\xa6\x81\xe4\xb8\x8a\xe5\xa4\xa9'
# 这就是这几个字的utf-8编码,前面的b就是二进制形式,但是会返回十六进制形式给我们看
# 编码完成后需要解码
message = result.decode('uft-8')
print(message)
# 结果为我要上天这几个字
  1. 解码(很重要哦): decode()
    编码解码应用在网络层,中文一般会涉及编码问题
  2. startswith()
    这两个返回值全为bool类型,判断是否是以xxx开头的
  3. endswith()
    判断是否为xxx结尾的
    在开发中应用为文件上传, 比如说只能上传图片(.jpg .png .bmp .gif)等案例,来演示一下吧
filename = '笔记.doc'
result = filename.endswith('txt') # 是否是txt结尾
print(result) # 返回值为False

关于对齐方式的了解一下就好

  1. center(width, fillchar)
    返回一个指定的宽度width居中的字符串, fillchar为填充的字符, 默认为空格。
  2. rjust(width, [fillchar])
    返回一个源字符串右对齐, 并使用fillchar(默认空格)填充至长度width的新字符串
  3. count(str, beg=0, end=len(string))
    返回str在string里面出现的次数, 如果 beg 或者 end 指定则返回指定范围内str出现的次数
  4. expandtabs(tabsize=8)
    把字符串string中的tab符号转为空格, tab符号默认的空格数是8
  5. isalnum()
    如果字符串至少有一个字符并且所有字符都是字母则返回True, 否则返回False
  6. isalpha()
    如果字符串中至少有一个字符并且所有字符都是字母则返回True, 否则返回False
  7. isdigit()和isnumeric()
    如果字符串中只包含数字则返回True, 否则返回False
  8. islower()
    如果字符串中至少有一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写, 则返回True,否则返回False
  9. isspace()
    如果字符串中只包含空白, 则返回True, 否则返回False
  10. join(seq)
    以指定字符串为分隔符, 将seq中的所有元素(的字符串表示)合并为一个新的字符串
new_str = '-'.join('abc')
print(new_str)  # 这里将会打印a-b-c
# 也可以将列表来进行转化
list1 = ['a', 'b', 'c']
new_list1 = ''.join(list1)
print(new_list1) # 结果将会打印abc, 就会将列表的字符转化为字符串
  1. max(str)
    返回字符串中最大的字符
  2. min(str)
    返回字符串中最小的字符
  3. strip()
    截掉字符串中前面和后面的空格, 这个可以应用在用户名输入时, 或者网络检索时, 去掉多余的空格, 很有用
  4. rstrip()
    截掉字符串后面的空格
  5. lstrip()
    截掉字符串前面的空格
  6. split(str=’’[, num=string.count(str)])
    分割字符串, 第一个参数就是按照什么参照物来分割, 第二个参数为分割几次, 默认为有几个分割点分割几次, 如果指定num, 则截取num+1个字符串
s = 'Hello word'
result = s.splot(' ')  # 将会按照空格来进行分割字符串, 并返回一个列表
print(result) # ['Hello', 'word']

好了就先整理到这里,一些基本不可能见到的就不整理了,如果内容有不当,或者错误的信息,请及时在评论区纠正!
感谢大家观看,生活愉快!!

你可能感兴趣的:(python,字符串)