|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 熊宝宝要当红军 于 2019-8-29 21:39 编辑
0,难点内置方法们
encode(encoding='utf-8', errors='strict') 【以 encoding 指定的编码格式对字符串进行编码。】 ( 小甲鱼老师说以后讲)
split(sep=None, maxsplit=-1)【不带参数默认是以空格为分隔符切片字符串,如果 maxsplit 参数有设置,则仅分隔 maxsplit 个子字符串(这句不太理解,求助各位路过的大佬),返回切片后的子字符串拼接的列表。】(默认下空格会被切没,按什么切可自定义)
splitlines(([keepends]))【在输出结果里是否去掉换行符,默认为 False,不包含换行符;如果为 True,则保留换行符。】(按行切成列表)
例子:
- >>> str1 = """
- 1111111111111111
- 22222222222222222
- 333333333333333333"""
- >>> str1.splitlines()
- ['', '1111111111111111', '22222222222222222', '333333333333333333']
- >>> str1.splitlines(keepends =True)
- ['\n', '1111111111111111\n', '22222222222222222\n', '333333333333333333']
- >>> str1.splitlines(keepends =False)
- ['', '1111111111111111', '22222222222222222', '333333333333333333']
复制代码
translate(table)
【根据 table 的规则(可以由 str.maketrans('a', 'b') 定制)转换字符串中的字符。】
replace(old, new[, count])
【把字符串中的 old 子字符串替换成 new 子字符串,如果 count 指定,则替换不超过 count 次。】
这两个方法的区别是什么,求助各位路过的大佬
isdigit()
【如果字符串只包含数字则返回 True,否则返回 False。】(没讲区别,弹幕说阿拉伯数字?)
isnumeric()
【如果字符串中只包含数字字符,则返回 True,否则返回 False】
例子:
- >>> str1 = "一二三" #中文数字可以被识别
- >>> str1.isdigit()
- False
- >>> str1.isnumeric()
- True
- >>> str1 = "one" #英文数字不行
- >>> str1.isnumeric()
- False
- >>> str1 = "廿" #这个居然也能被识别,好评!
- >>> str1.isnumeric()
- True
复制代码
islower()
【如果字符串中至少包含一个区分大小写的字符,并且这些字符都是小写,则返回 True,否则返回 False。】(所有字母都是小写的)
isupper()
【如果字符串中至少包含一个区分大小写的字符,并且这些字符都是大写,则返回 True,否则返回 False。】
举个栗子:
- >>> str1 = '%%%%%'
- >>> str1.islower()
- False
- >>> str1 = 'aaaa'
- >>> str1.islower()
- True
- >>> str1 = 'aaaaAA'
- >>> str1.islower()
- False
复制代码
详细字符串的内置方法们请见:[url=字符串的方法及注释 https://fishc.com.cn/thread-38992-1-1.html (出处: 鱼C论坛)]字符串的方法及注释 https://fishc.com.cn/thread-38992-1-1.html (出处: 鱼C论坛)[/url]
一些点
0,python 中如何注释
#用于单行注释 ; """ """ , ''' ''' 可用来进行多行注释
就像C/C++中//用于单行注释 ; /* */用于多行注释
1. 有字符串:str1 = '<a target="_blank">鱼C资源打包</a>',请问如何提取出子字符串:'www.fishc.com
1)用切片的方法
- >>> str2 = str1[16:29]
- >>> str2
- 'www.fishc.com'
- #索引值为负数时
- >>> len(str1)
- 61
- >>> 61-16 #16mod61 = -45
- 45
- >>> 61-29 #29mod61 = -32
- 32
- >>> str2 = str1[-45:-32]
- >>> str2
- 'www.fishc.com'
复制代码
2)用字符串的内置方法
- >>> str2 = str1.split('/')
- >>> str2
- ['<a href="http:', '', 'www.fishc.com', 'dvd" target="_blank">鱼C资源打包<', 'a>']
- >>> str2 = str2[2]
- >>> str2
- 'www.fishc.com'
- #索引值为负数时
- >>> len(str1.split("/"))
- 5
- >>> str2 = str1.split('/')[-3]
- >>> str2
- 'www.fishc.com'
复制代码
知识点:字符串的内置函数——split(sep=None, maxsplit=-1)【不带参数默认是以空格为分隔符切片字符串,如果 maxsplit 参数有设置,则仅分隔 maxsplit 个子字符串(这句不太理解,求助各位路过的大佬),返回切片后的子字符串拼接的列表。】(默认下空格会被切没,按什么切可自定义)
2,将 str1 = 'i2sl54ovvvb4e3bferi32s56h;$c43.sfc67o0cm99' 还原为有意义的字符串:
1)繁琐方法,利用字符串的各种内置函数
- str1 = 'i2sl54ovvvb4e3bferi32s56h;$c43.sfc67o0cm99'
- #通过观察,我们可以发现有效字符串是 i love fishc.com
- #去掉数字
- for i in range(10):
- str1 = str1.translate(str.maketrans(str(i),' '))
- >>> str1
- 'i sl ovvvb e bferi s h;$c .sfc o cm '
- >>> str1 = str1.replace(' ','')
- >>> str1
- 'islovvvbebferish;$c.sfcocm'
- >>> str1 = str1.replace(';
- ,'')
- >>> str1
- 'islovvvbebferishc.sfcocm'
- #利用 replace()方法去掉不要的字符
- >>> str1 = str1.replace("s",'',1)
- >>> str1
- 'ilovvvbebferishc.sfcocm'
- >>> str1 = str1.replace('vvb','')
- >>> str1
- 'ilovebferishc.sfcocm'
- >>> str1 = str1.replace('er','')
- >>> str1 = str1.replace('b','')
- >>> str1 = str1.replace('sf','')
- >>> str1
- 'ilovefishc.cocm'
- #去掉三个C中最后面那个
- >>> len(str1)
- 15
- >>> str1 = str1[:-2]+str1[14:]
- >>> str1
- 'ilovefishc.com'
- #整理格式,输出
- >>> str1 = str1.partition("love")
- >>> str1
- ('i', 'love', 'fishc.com')
- >>> for i in str1:
- print(i.capitalize(),end = " ")
- I Love Fishc.com
复制代码 2)更灵巧的方法,利用切片
- str1 = 'i2sl54ovvvb4e3bferi32s56h;$c43.sfc67o0cm99'
- #通过更仔细的观察,我们可以发现有效字符之间是等距离的所以。。。一句代码搞定
- >>> str1[::3]
- 'ilovefishc.com'
- #让它变得好看一点
- >>> str1 = str1.partition("love")
- >>> str1
- ('i', 'love', 'fishc.com')
- >>> for i in str1:
- print(i.capitalize(),end = " ")
- I Love Fishc.com
复制代码
我们一起来学python吧!!!
|
评分
-
查看全部评分
|