我的PYTHON学习笔记-字符串

笔记来源于B站小甲鱼教程

版本python3.7

改变大小写的函数

>>> x="I love Fishc"
>>> x.capitalize()
'I love fishc'
>>> #将字符串首字母变成大写,其他的全部变成小写
>>> x
'I Love Fishc'
>>> #可以看出返回的是新的字符串,而不是原来的x字符串
>>> x.casefold()
'i love fishc'
>>> #返回新的全小写的字符串
>>> x.title()
'I Love Fishc'
>>> #将每个单词的首字母变成大写

>>> x.swapcase()#全部变成大写
'i lOVE fISHC'
>>> x.upper()#也是全部变成大写
'I LOVE FISHC'
>>> x.lower()#全部小写
'i love fishc'
>>> #lower只能处理英语,casefold可以处理其他语言

对齐操作

>>> #对齐分类,width参数指定字符串宽度
>>> x="有内鬼,停止咩咩"
>>> x.center(5)
'有内鬼,停止咩咩'
>>> x.center(16)
'    有内鬼,停止咩咩    '
>>> x.ljust(16)
'有内鬼,停止咩咩        '
>>> x.rjust(16)
'        有内鬼,停止咩咩'
>>> x.zfill(16)
'00000000有内鬼,停止咩咩'
>>> #左填充0做数据报表比较实用
>>> "330".zfill(5)
'00330'
>>> #适用于要求字符串宽度的情况
>>> "-334".zfill(5)
'-0334'
>>> #还可以机智地处理带负号的情况

>>> x.center(16,"淦")
'淦淦淦淦有内鬼,停止咩咩淦淦淦淦'
>>> #可以指定填充字符

查找功能

 #查找功能
>>> x="上海自来水来自海上"
>>> x.count("海",0,5)
1
 #实现某位置范围,某内容的次数查找,返回某内容出现的次数
>>> #find rfind 从左往右 从右往左 但是不影响返回的目标索引本来的值
>>> x.find("海")
1
>>> x.rfind("海")
7
>>> x.find("1")
-1
>>> x.index("1")
Traceback (most recent call last):
  File "<pyshell#8>", line 1, in <module>
    x.index("1")
ValueError: substring not found

制表符

>>> #expandtabs()尽量多使用空格,并且不要混合使用tab和空格
#假如说有一段代码
>>> code="""
	print("咩咩")#/tab
    print("咩咩咩咩")"""#空格x4

>>> new_code=code.expandtabs(4)#用四个空格来替代tab制表符
>>> print(new_code)

    print("咩咩")
    print("咩咩咩咩")

替代功能

#替代功能
>>> "在吗,来切磋".replace("在吗","傻逼")
'傻逼,来切磋'

>>> #translate(表格) 表格:str.maketrans()获取
#错误示范
>>> table=str.maketrans("1234567","abcdefg")#获取表格的翻译规则
>>> "i love fishc".translate(table)#进行“翻译”
'i love fishc'
#这里没有翻译成功,所以要注意替换规则的前后顺序后面的是新的,前面的是要被替换的

>>> table=str.maketrans("abcdefg","1234567")#获取表格的翻译规则
>>> "i love fishc".translate(table)#进行“翻译”
'i lov5 6ish3'

>>> "i love fishc".translate(str.maketrans("abcdefg","1234567"))
'i lov5 6ish3'
>>> "i love fishc".translate(str.maketrans("abcdefg","1234567","love"))#去掉love单词
'i  6ish3'

判断和检错

 #判断和检测,返回布尔类型的值
>>> #startswith()
>>> x="我爱咩咩"
>>> x.startswith("咩")
False
>>> x.startswith("我")
True
>>> #该方法用于检测该字符是否位于第一位


>>> x.endswith("咩咩")
True
>>> x.endswith("我")
False
>>> x.endswith("i")
False
>>> #方法里参数有方括号表示参数是可选参数,相当于高级定制版本
>>> x.startswith("我",1)
False

>>> #从索引为1的字符串开始找“我”,但“我”并不是相对第一位,返回F值
>>> x.startswith("爱",1)
True
>>> 

>>> x="我爱气纯"
>>> if x.startswith(("你","我","她")):
	print("气纯牛逼")#如果有人赞美气纯那就夸一句气纯牛逼

	
气纯牛逼

判断首字母和数字

#测试是否单词仅为首字母大写
>>> x="I love qichun"
>>> x.istitle()
False
>>> x.isupper()
False
>>> x.upper().isupper()
True
>>> #从左往右调用方法
>>> 
>>> #检测是否全为拼音或者字母
>>> x.isalpha()
False
>>> #空格不算字母,所以铁返回F

>>> "	  \t\y\n".isspace()#带了空格
False
>>> "	\n".isspace()#没带空格,仅用制表符和转义字符
True
>>> 


>>> x.isprintable()
True
>>> "qqwwerr\n".isprintable()
False
>>> #转义字符不是可打印字符
>>> 


 #判断数字
>>> x="12345"
>>> x.isdecimal()#判断十进制
True
>>> x.isdigit()#判断数字
True
>>> x.isnumeric()#可数判断
True
>>> x="2²"
>>> x.isdecimal()
False
>>> x.isdigit()
True
>>> x.isnumeric()
True
>>> 

>>> #罗马字符 1F 2F 3T
>>> #打不出来,就不实验了
>>> x="一二三四五"
>>> x.isdecimal()
False
>>> x.isdigit()
False
>>> x.isnumeric()#繁体中文一二三四五也行
True


>>> #isalnum()123方法有一个返回T 该方法就返回T
>>> #isidentifier()
>>> #判断该字符是否是一个合法的python标识符
>>> #判断该字符是否是一个合法的python标识符
>>> 
>>> 
>>> "I an a good miemie".isidentifier()
False
>>> "I_am_a_good_miemie".isidentifier()
True
>>> "520fish".isidentifier()#数字开头的变量名返回F
False
>>> "fish52".isidentifier()#这种命名才是正确的
True
>>> #iskeyword()看是不是被python封装好的
>>> import keyword
>>> keyword.iskeyword("if")
True
>>> keyword.iskeyword("h")
False

截取、拆分、拼接功能

部分补充语句没有注释掉

#截取字符串
strip(chars=None)
lstrip(chars=None)
rstrip(chars=None)
removeprefix(prefix 3.9版本新增 
#删除前缀匹配的字符“串”
removesuffix(suffix 3.9版本新增 删除后缀
#删除后缀匹配的字符“串”

#截取空白
>>> "     左侧不要留白".lstrip()
'左侧不要留白'
>>> "右侧不要留白".rstrip()
'右侧不要留白'
>>> "  左右都不留白    ".strip()
'左右都不留白'
.xstrip(内容)
#从左/从右/两边开始搜索到第一个与内容无关的停止	  

   
#拆分/拼接
#将字符串以参数指定的分隔符为依据进行切割,将切割后的结果返回一个三元组(三个元素的元组)
#partition(sep)从左到右找
>>> "www.ilovefish.com".partition(".")
('www', '.', 'ilovefish.com')
#rpartition(sep)从右到左
>>> "www.ilovefish.com".rpartition(".")
('www.ilovefish', '.', 'com')
#split(sep=None,maxsplit=-1)带默认参数,
#-1是找到就切
>>> "苟日新,日日新,又日新".split()
['苟日新,日日新,又日新']
>>> #把字符串变成了列表中的一个元素
>>> "苟日新,日日新,又日新".split(',')
['苟日新', '日日新', '又日新']

>>> "苟日新,日日新,又日新".split(',',1)
['苟日新', '日日新,又日新']
>>> "苟日新,日日新,又日新".rsplit(',',1)
['苟日新,日日新', '又日新']
#splitlines()将字符按行分割,结果按照列表形式返回
#不同操作系统的换行符都可以识别
#"分割符".join(["列表内容1","2","3"])
#jion(元组)也可以

变量传递、精度显示

>>>  format()传递变量值
format根据索引值引用变量值,若更改索引值,那么传递的变量值的位置也会发生改变

变量显示:{}括号括起来
>>> "{:^}".format(250)
'250'
>>> "{:^10}".format(250)
'   250    '
#^成了填充字符
>>> "{1:^>10}{0:^<10}".format(520,250)
'^^^^^^^250520^^^^^^^'
>>> "{1:>10}{0:<10}".format(520,250)
'       250520       '
#1是位置索引,:>是左对齐方向(从左开始填充,:<是右边对齐方向(从右边开始填充),(简记,开口朝哪就是从哪边开始填充),10是显示宽度

#:x=10是默认左边填充x,加上索引值一共10个字符
#:0xx,默认填充0,加起来一共xx个字符
#:^xx,两边填充,一边一共xx个字符
#
>>> "{:0=10}".format(520)
'0000000520'
>>> "{:1=7}".format(250)
'1111250'
>>> "{:110}".format(250)
'                                                                                                           250'
>>> "{:010}".format(250)
'0000000250'
>>> "{:2=10}".format(250)
'2222222250'
>>> "{:210}".format(250)
'                                                                                                                                                                                                               250'
>>> "{:0=10}".format(-250)
'-000000250'

#填充仅对数字有用,对其他字符会出现错误
>>> "{:0=10}".format(mie)
Traceback (most recent call last):
  File "<pyshell#11>", line 1, in <module>
    "{:0=10}".format(mie)
NameError: name 'mie' is not defined


千位分隔符
>>> "{:,}".format(2500)
'2,500'
>>> "{:_}".format(2500)
'2_500'
>>> "{:,}".format(250)
'250'

>>> #对type设定为f or F 的浮点数来说,精度显示为限定小数点后多少个数位
>>> #对type设定为g or G 的浮点数来说,精度显示为限定小数点前后一共多少个数位
>>> #对非数字类型来说,限定的是最大字段的大小
>>> #对证书类型来说,不允许使用[.precision]选项
>>> "{:.2f}".format(2.503112)
'2.50'
>>> "{:.2g}".format(2.503112)
'2.5'

进制转换

>>> #b2 cUnicode(就是对应的大小写字母) d10 o8 x16 X16 n≈d,区别要记 None=d
>>> # #符号==标出转化后的进制
>>> "{:#b}".format(40)
'0b101000'
>>> "{:b}".format(40)
'101000'
>>> 

字符串填充


>>> "{:{fill}{align}{width}.{prec}{ty}}".format(2.33333,fill='+',align='^',width=10,prec=2,ty='g')
'+++2.3++++'
>>> ==":+^10.2g".format(2.33333)
#F字符串
>>> f"{-222:010}"
'-000000222'
>>> f"{-222:^010}"
'000-222000'
>>> f"{222:^+=10}"
Traceback (most recent call last):
  File "<pyshell#41>", line 1, in <module>
    f"{222:^+=10}"
ValueError: Invalid format specifier
>>> f"{222:+^10}"
'+++222++++'
>>> #填充 两边 长

  • 8
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值