鱼C论坛

 找回密码
 立即注册
查看: 1856|回复: 0

[迷途问路] 第014讲:字符串的难点内置方法们|一些题目|里面有两个疑问,求助!!!

[复制链接]
发表于 2019-8-29 21:40:42 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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吧!!!


评分

参与人数 1贡献 +1 收起 理由
zltzlt + 1

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-22 03:18

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表