https://www.jetbrains.com/pycharm/download/#section=windows

目录

python中字符串操作类型分为一下几种 

一、格式化方式

a.capitalize 首字母改成大写

a.casefold 全部变为小写并作对比 

 a.center  字符串两遍填充任意符号并居中

a.expandtabs 修改tab键的占位符

 a.ljust 从字符串右边填充

a.rjust 从字符串左边开始填充  #与ljust用法一致,区别一个左边 一个右边填充

a.lower 将字符串中所有的大写变为小写

 a.swapcase 大小写互换

 a.title 改成标题,即每个单词首字母大写

 a.upper 改成大写


 a.zfill 原字符串右对齐,前面填充0

 a.strip 将字符串内最左边和最右边的空格和多余字符去掉

 a.lstrip 左边去掉多余的空格与tab键        a.rstrip 右边去多余的空格与tab键

 a.format  引用外部变量

 二、字符串判断方式

 a.startswith 判断字符串中以什么开头 #如果字符串开始和结尾有空格判断结果为False

a.endswith 判断字符串中以什么结尾 #如果字符串开始和结尾有空格判断结果为False

a.isalnum 判断字符串是不是数字

a.isalpha  判断字符串中是否为字母

 a.isdigit 判断字符串是否为数字 #只能判断整数

a.isnumeric 判断字符串是不是数字 与 isdigit 有什么区别?

a.isdecimal 如果字符串是否只包含十进制字符返回True,否则返回False。

a.islower 判断字符串是否为小写

a.isupper  是不是全是大写  跟上面类似

 a.isprintable 是否可以打印

 a.isspace  是不是空格 

a.istitle 是否为标题

 三、字符串的查、改、计数、替换

a.find 查找字符串中单个字符 从左开始

 a.rfind  跟find一样  不同点在这个是从右开始找

a.index 与find查找方式类似,不同点在于find找不到会返回-1的值 而index会直接报错 

 a.rindex # 与rfind是一样的,从右边开始找,跟index同理 

a.count  计数  可将字符串中某个字符出现的次数统计出来

 a.split  默认按空格切割 将字符串内空格分开的所有字符分割为单个元素

 a.rsplit  与split同理 不过是从右边开始切割 同样可以使用maxsplit   

 a.splitlines 以特殊符号切割 比如:\t \n ....等

a.removeprefix  前缀某些字去掉

a.removesuffix 后缀某系子去掉 与removeprefix意思相同 区别就在于是从最后一个开始去除

 a.replace 替换

四、字符串特殊用法 

a.join 把列表转换成字符串 每个元素拼起来,按指定格式 

a.maketrans # 生成密码本 

a.translate # 加密  


python中字符串操作类型分为一下几种 

一、格式化方式

总览

a.capitalize  #首字符改成大写
a.casefold #为方便字符串之前对比,改成小写
a.center #字符串两遍填充
a.expandtabs #类似于tab键设定长度  这种写法在定义a的值时候需要加\t 如a = "abc\tabc"  \t为tab键默认占8个字符 这个可以修改\t的间隔
a.ljust #从字符串右边填充
a.rjust #从字符串左边填充
a.lower #全变小写
a.swapcase #大小写互换
a.title #改成标题,即每个单词首字母大写
a.upper #改成大写
a.zfill #字符串空的地方填0
a.strip #两边去死皮  就将字符串内最左边和最右边的空格和多余字符去掉
a.lstrip #左边去掉多余的空格与tab键
a.rstrip #右边去多余的空格与tab键
a.format #引用外部变量

详解 

a.capitalize 首字母改成大写

例如:

a = "this is my dog" #定义字符串    
print(a.capitalize()) #将首字母改成大写

运行结果:

Python中寻找字符串中字符出现的位置_开发语言

a.casefold 全部变为小写并作对比 

a = "this is my dog"
b = "This is My Dog"
print(b.casefold() == a) #表示将b的字符串全部小写并与a做对比

运行结果:  #如果你直接判断 不加casefold的情况 返回的值为False

Python中寻找字符串中字符出现的位置_pycharm_02

 a.center  字符串两遍填充任意符号并居中

a = "this is my dog"
print(a.center(50,"-")) #表示字符串以“-”形式填充够50个字符,将a的内容居中

运行结果:

Python中寻找字符串中字符出现的位置_pycharm_03

a.expandtabs 修改tab键的占位符

a = "this is my\t dog"
print(a.expandtabs(10)) #字符串中\t代表 tab键 默认为8个占位符 括号内10代表将tab键改为10个占位符

运行结果:

Python中寻找字符串中字符出现的位置_git_04

 a.ljust 从字符串右边填充

a = "this is my dog"
print(a.ljust(30,"~")) #表示从字符串最右边填充到30个“~”符号

运行结果:

Python中寻找字符串中字符出现的位置_开发语言_05

a.rjust 从字符串左边开始填充  #与ljust用法一致,区别一个左边 一个右边填充

a.lower 将字符串中所有的大写变为小写

a = "THIS Is My Dog"
print(a.lower()) #将字符串中所有的大写变为小写,只能用于英文

 运行结果:

Python中寻找字符串中字符出现的位置_python_06

 a.swapcase 大小写互换

a = "THIS Is My Dog"
print(a.swapcase()) #将字符串中所有的大小写转换一下

运行结果:

Python中寻找字符串中字符出现的位置_开发语言_07

 a.title 改成标题,即每个单词首字母大写

a = "THIS is my dog"
print(a.title()) #将字符串内容改成标题,并且首字母大写

运行结果:

 

Python中寻找字符串中字符出现的位置_字符串_08

 a.upper 改成大写

a = "THIS is my dog"
print(a.upper()) #将所有字符串内所有的英文转变为大写

运行结果:

 a.zfill 原字符串右对齐,前面填充0

a = "THIS is my dog"
print(a.zfill(20)) #从右侧填充0直到够20个字符

运行结果

Python中寻找字符串中字符出现的位置_pycharm_09

 a.strip 将字符串内最左边和最右边的空格和多余字符去掉

a = "\t                 THIS is my dog        "
print(a.strip())  #去除多余空
print(a)    #未去除多余空  做个对比

运行结果:

Python中寻找字符串中字符出现的位置_字符串_10

 a.lstrip 左边去掉多余的空格与tab键        a.rstrip 右边去多余的空格与tab键

a = "\t                 THIS is my dog        "
print(a.lstrip()) #左边去掉多余的空格与tab键
print(a.rstrip()) #右边去多余的空格与tab键

 运行结果:

Python中寻找字符串中字符出现的位置_字符串_11

 a.format  引用外部变量

c = "my name is {name} i years old is {age}"
print(c.format(name="张三",age=22))
#在字符串内应用设定的变量值 但只有引用时才能有效果
c1 = "my name is {0} i years old is {1}"
print(c1.format("李四",22))
#这种写法类似于传参的方式 将format后面的括号内的内容从第0个开始传入到对应的地方

 运行结果:

Python中寻找字符串中字符出现的位置_git_12

 二、字符串判断方式

总览

a.startswith #判断以什么开头   为真返回True  为假返回False
a.endswith  #判断以什么结尾
a.isalnum #是不是字母或者数字
a.isalpha #判断是不是字母  如果定义的值中有空格或者tab返回值也是False 
a.isdigit #判断是不是数字 只能判断整数
a.isascii #判断字符编码
a.isdecimal #如果字符串是否只包含十进制字符返回True,否则返回False。
a.isidentifier #是不是py语法关键词  是不是合法的可以做变量关键字
a.islower #判断是不是小写
a.isnumeric #是不是数字,跟isdigit有什么关系? 可以判断中文的数字 比如 二十五 三十五这样
a.isprintable #是否可以打印
a.isspace #是不是空格  
a.istitle # 是不是标题
a.isupper # 是不是全是大写

详解

 a.startswith 判断字符串中以什么开头 #如果字符串开始和结尾有空格判断结果为False

a = "This is my cat"
print(a.startswith("Th"))  #字符串中有Th开头则 返回为True
print(a.startswith("TH"))  #定义的字符串中明显没有TH 所以返回的值肯定为 False
如果定义的字符串内开头有空格或者tab 可以添加参数strip

 运行结果

Python中寻找字符串中字符出现的位置_字符串_13

a.endswith 判断字符串中以什么结尾 #如果字符串开始和结尾有空格判断结果为False

a = "   This is my cat  "
print(a.endswith("t")) #判断字符串中结尾的字符是否为“t”  #直接判断结果为False
print(a.strip().endswith("t")) #如果你定义的字符串结尾有空格可以这样做判断

运行结果 

 

Python中寻找字符串中字符出现的位置_pycharm_14

a.isalnum 判断字符串是不是数字

a = "123com"
print(a.isalnum()) #如果字符中有数字与字母 结果为真
b = "123.456.qwe"
print(b.isalnum()) #如果有小数点或者特殊符号 结果为假

运行结果:

Python中寻找字符串中字符出现的位置_字符串_15

a.isalpha  判断字符串中是否为字母

b = "qwe"
print(b.isalpha()) #判断是否为字母

 运行结果:

Python中寻找字符串中字符出现的位置_开发语言_16

 a.isdigit 判断字符串是否为数字 #只能判断整数

a = "123"
print(a.isdigit())  #整数为真
b = "123.456"
print(b.isdigit()) #非整数为假

运行结果

Python中寻找字符串中字符出现的位置_git_17

a.isnumeric 判断字符串是不是数字 与 isdigit 有什么区别?

a = "十七"
print(a.isnumeric()) #判断中文数字的大写
b = "123.456"
print(b.isnumeric()) #如果不是整数 结果为假
c = "123"
print(c.isnumeric()) #判断是否为整数

运行结果

Python中寻找字符串中字符出现的位置_开发语言_18

a.isdecimal 如果字符串是否只包含十进制字符返回True,否则返回False。

a = "123"
print(a.isdecimal()) #如果只包含十进制数 结果为真
b = "123.456"
print(b.isdecimal()) #否则为假

 运行结果

Python中寻找字符串中字符出现的位置_python_19

a.islower 判断字符串是否为小写

a = " this is my cat "
print(a.islower()) #字符串为全小写 结果为真
b = "This is My cat" 
print(a.islower()) #如果字符串有大写 结果为假

 运行结果

Python中寻找字符串中字符出现的位置_字符串_20

a.isupper  是不是全是大写  跟上面类似

 a.isprintable 是否可以打印

 a.isspace  是不是空格 

a = " "
print(a.isspace()) #为空格 为真
b = " a b c "
print(b.isspace()) #否则为假
c = "\t"
print(c.isspace()) #\t 结果为真

运行结果

Python中寻找字符串中字符出现的位置_pycharm_21

a.istitle 是否为标题

a = "This is my cat"
print(a.istitle())

运行结果 

Python中寻找字符串中字符出现的位置_开发语言_22

 三、字符串的查、改、计数、替换

总览 

a.find # 查找字符串中的单个字符  是从左边开始找
a.rfind #  跟find一样 这个是从右开始找,并非左边
a.index ###比find好用  #  跟find功能是差不多,区别就是 find没有找到会返回-1的值 而index则会直接报错 
a.rindex # 与rfind是一样的,从右边开始找,跟index同理
a.count # 计数  可将字符串中某个字符出现的次数统计出来  ###可以选段操作
a.split #  默认按空格切割 将字符串内空格分开的所有字符分割为单个元素
a.rsplit # 与split同理 不过是从右边开始切割 同样可以使用maxsplit
a.splitlines # 切割元素
a.removeprefix #前缀某些字去掉
a.removesuffix #后缀某系子去掉 与removeprefix意思相同 区别就在于是从最后一个开始去除
a.replace #替换

详解

a.find 查找字符串中单个字符 从左开始

a = "This is my cat"
print(a.find("i")) #这里注意 只能从左边查到的第一个“i”的位置,第二个不会显示

print(a.find("is")) #也可以查找多个字符  返回的值为“i”所在的位置

print(a.find("i",3,10)) #截取的方式 意思是从第3个下标开始查找“i”的位置 直到第10个结束

print(a.find("d")) #如果查询没有则会返回-1的值 不会报错

运行结果

Python中寻找字符串中字符出现的位置_字符串_23

 a.rfind  跟find一样  不同点在这个是从右开始找

a = "This is my cat"
print(a.rfind("t")) #从最后一个字符开始找起 最后的结果是从第0个开始计数 直到找到“t”停

 运行结果

Python中寻找字符串中字符出现的位置_pycharm_24

a.index 与find查找方式类似,不同点在于find找不到会返回-1的值 而index会直接报错 

a = "This is my cat"

print(a.index("T")) #查找字符串中的“T”所在位置  
 
print(a.index("i",3,10)) #与find一致,可以截取位置查询

print(a.index("d")) #如果字符串中查到没有,则会报错

 运行结果

Python中寻找字符串中字符出现的位置_开发语言_25

 a.rindex # 与rfind是一样的,从右边开始找,跟index同理 

a.count  计数  可将字符串中某个字符出现的次数统计出来

a = "This is my cat"
print(a.count("i")) #查找字符串中i出现的次数 

print(a.count("i",3,10)) #从第三个位置开始(也就是s的位置) 查找“i”有几个,10可填可不填,不填默认到最后一个字符所在的位置结束

print(a.count("d")) #如果没有则会返回0的值

运行结果

Python中寻找字符串中字符出现的位置_开发语言_26

 a.split  默认按空格切割 将字符串内空格分开的所有字符分割为单个元素

a = "This is my cat"
print(a.split()) #以字符串中的空格作为切割,从而生成单个元素

print(a.split("i"))  #也可以已字母为切割点

print(a.split(maxsplit=1)) #可以设置切割次数 这里是从0开始算的

运行结果

Python中寻找字符串中字符出现的位置_pycharm_27

 a.rsplit  与split同理 不过是从右边开始切割 同样可以使用maxsplit   

 a.splitlines 以特殊符号切割 比如:\t \n ....等

a = "This\nis\nmy\ncat"

print(a) #直接打印会换行 作为一个对比

print(a.splitlines()) #以特殊字符切割

b = "This is my dog"

print(b.splitlines()) #如果字符串中没有特殊字符 那么只会有一个元素

 运行结果

Python中寻找字符串中字符出现的位置_开发语言_28

a.removeprefix  前缀某些字去掉

a = "This is my dog"
print(a.removeprefix("This is")) #将字符串中“This is”去掉
print(a.removeprefix("Thisis")) #如果字符串中有空格你去掉的时候没有空格就会失效

运行结果

Python中寻找字符串中字符出现的位置_python_29

a.removesuffix 后缀某系子去掉 与removeprefix意思相同 区别就在于是从最后一个开始去除

a = "This is my dog"
print(a.removeprefix("dog")) #从前缀去除

print(a.removesuffix("dog")) #从后缀去除

运行结果

Python中寻找字符串中字符出现的位置_字符串_30

 a.replace 替换

a = "This is my dog dog"
print(a.replace("dog","cat"))#将dog 替换成cat 默认是全部替换

print(a.replace("dog","cat",1)) #这里可以只替换一个  是从左边开始的第一个

print(a.replace("d","#"))  #也可以换成特殊字符

运行结果

Python中寻找字符串中字符出现的位置_python_31

四、字符串特殊用法 

总览

a.encode #字符编码相关  
a.join #把列表转换成字符串 每个元素拼起来,按指定格式
a.maketrans # 生成密码本 
a.translate # 加密

详解

a.join 把列表转换成字符串 每个元素拼起来,按指定格式 

a = ["This","is","my","dog"]
print(" ".join(a)) #以空格连接列表中的字符串
print("_".join(a)) #也可以自定义连接符号

运行结果:

Python中寻找字符串中字符出现的位置_pycharm_32

a.maketrans # 生成密码本 

a.translate # 加密  

例子:

import string  #导入工具
mi = string.printable[::-1] #将加密字符串倒转
mima = string.printable  #定一个正常的加密字符串
password = str.maketrans(mima,mi) #生成一个密码本
print(password)
a = "This is my dog"  #需要加密的内容
print(a.translate(password)) #查看加密后的样子
b = a.translate(password) #将加密的a字符串赋值给b
password1 = str.maketrans(mi,mima) #解密需要反着定义一个与刚才反着的密码本
print(b.translate(password1)) #将b的内容解密
#程序有个小bug 就说如果你直接将密文翻转加密的话,会出现同一个密码本能解开 而不需要从新翻转一下生成一个新的密码本 去解析 这样做是不安全的(正常的来说还需要通过些其他的加密算法去加密)

运行结果:

Python中寻找字符串中字符出现的位置_pycharm_33