python3自学之路-笔记11_常用的字符串操作详解

python3自学之路-笔记11_常用的字符串操作详解

下面一段代码说明一切:

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# File  : 字符串常用函数.py
# Author: DaShenHan&道长-----先苦后甜,任凭晚风拂柳颜------
# Date  : 2019/3/12

#查找计算类
'''
len(str) 返回字符串长度
str.find(sub,start=0,end=len(str)) 返回字符串中指定字符的下标 找不到就返回-1 返回第一个匹配,非贪婪
str.rfind(sub,start=0,end=len(str))返回字符串中指定字符的下标 找不到就返回-1 返回最后一个匹配,贪婪 end是不会被取到的 都是左闭右开
index 同JavaScript中indexOf的用法,从左往右查找 找不到会报错,找得到会返回一个位置
rindex  同index,区别是从右往左进行查找
count  计数

name='我是大佬,你是菜鸟'
len(name)
name.find('菜鸟')


name='我是大佬,你是菜鸟'
len(name)
str1=name.find('菜鸟',8)
str2=name.rfind('是')
str3=name.count('是')
str4=name.rindex('菜')
print(str1,str2,str3)
print(str4)
'''


#转换类
'''
str.replace(old,new,count) 待替换字符,替换成字符,替换多少个  count=str.count(old)的情况等于替换全部 默认count等于全部
str.capitalize()  将字符串首字母变成大写,字符串开头无字目就不会有变化
str.title() 将字符串中每个单词首字母变大写,只要字母分离了就会
str.lower() 将字符串中每个字母变成小写
str.upper() 将字符串中每个字母变成大写

name='我是大佬,你是菜鸟'
name1='hello my friend-jj-kk'
str1=name.replace('是','is ',1)
str2=name.rfind('是')
str3=name.count('是')
str4=name.rindex('菜')
str5=name1.title()
print(str1,str2,str3)
print(str4)
print(str5)

'''

#填充压缩类
'''
str.ljust(width,fillstr) #靠左后填充 填充后字符串总长度,填充符
str.rjust(width,fillstr) #靠右后填充
str.center(width,fillstr)  #中间填充
str.lstrip(char)  #移除字符串中的指定字符,默认移除空格\n等 仅仅只移除左侧的空字符
str.rstrip(char)  #移除字符串中的指定字符,默认移除空格\n等 仅仅只移除右边的空字符
被移除的内容是字符集合
开始检索时第一位被检索到的必须在字符集里面,否则无效
name='爆肝python'
name1='wwww00x25爆肝python'
print(name.ljust(10,'!'))
print(name.rjust(10,'!'))
print(name.center(10,'!'))
print(name1.lstrip('w0x'))
'''

#分隔拼接类

'''
str.split(sep,maxsplit) #分隔符,最大被分割次数,省略就是全部分割 返回一个列表
str.partition(sep) #分隔符 返回一个三元素元组  左侧元素,分割符,右侧元素  从左开始找
str.rpartition(sep) #分隔符 返回一个三元素元组  左侧元素,分割符,右侧元素  从右开始找
#如果找不到该分隔符,那么第一个元素就是整个字符串,右边两个元素为空
str.spitlines(keepends)  有换行符的字符串才会被如此分割 返回一个列表 参数可省略,true or false 默认false不保留换行符
str.join(iterale) 传入一个可迭代对象(可以被for遍历的对象) 是split的可逆过程

name='hello i am dashen , how are you ?'
name1='dashen-25-12#209-0813-13568'
list1=name.split(' ')
list2=name1.split('-',3)
tup1=name1.partition('-')
tup2=name1.rpartition('-')
str1='哈哈\n我是大佬\n你是菜鸟\n66666'
print(list1,list2)
print(tup1,tup2)
print(str1.splitlines())
items=['123','456','789']
a='-'.join(items)
print(a)

'''


#字符串判定类
'''
str.isalpha() #判定字符串是否全部由字母 (包含大写小写 不能包含转义) 组成 返回false or true  空串也是false
str.isdigit() #判定字符串是否全部由数字组成,空串也false  返回false or true
str.isalnum() #判定字符串是否全部由数字或者字母组成,空串也false  返回false or true 单独的数字或者字母都是true
str.isspace() #判定字符串是否全部都是空白符  空串也false  返回false or true 里面只能是空格换行等
str.startswith(prefix,start=0,end=len(str))  #判定字符串是否由prefix开头 后面两个参数有默认值,可以不管 返回false or true
str.endswith(prefix,start=0,end=len(str))#判定字符串是否由prefix结尾 后面两个参数有默认值,可以不管 返回false or true
name='2019-03-12.xls'
print(name.startwith('2018'))
name='2019-03-12.xls'
print(name.startswith('2019'))
print(name.startswith('19',2))
print(name.endswith('.xls'))
print(name.endswith('ls',-2))
'''

#特殊补充
'''
in  单独的语句 例如 'name' in 'my name is' 返回True
not in  单独的语句 例如 'name' in 'my name is' 返回False
'''

猜你喜欢

转载自blog.csdn.net/qq_32394351/article/details/88418349