美文网首页
Python入门:字符串方法

Python入门:字符串方法

作者: 洋阳酱 | 来源:发表于2019-05-28 14:55 被阅读0次

    三、字符串

    本章内容运行环境:Jupyter Notebook
    本单元视频链接:https://v.youku.com/v_show/id_XNDYyMjY0ODgyOA==.html

    我们在之前的数据类型里面讲过,字符串就是一系列的字符,用引号引起来,可以是英文,也可以是数。引号可以是单引号'字符串',双引号"字符串",三引号'''字符串'''

    关于字符串,我们之前提到了几个常用的函数

    str():将数字转变为字符串
    ord():获取字符的整数表示
    chr():把编码转换为对应的字符

    3.1 什么是方法

    方法就是执行一些指定的操作,比如,将字符串中的所有英文字母变成大写
    一般表示成

    操作对象.方法名称()
    

    3.2 大小写转换

    .upper() 将字符串中的所有英文字母变成大写
    .lower() 将字符串中的所有英文字母变成小写
    .swapcase()将大小写字母转换
    .title()将所有单词首字母大写

    text = "HELLO world"
    text.upper()  # 输出: 'HELLO WORLD'
    text.lower()  # 输出: 'hello world'
    text.swapcase()  # 输出: 'hello WORLD'
    text.title()  # 输出: 'Hello World'
    

    3.3 删空格或指定字符

    .strip() 删除字符串开头和结尾,两端的空格
    .rstrip() 删除右边的空格
    .lstrip() 删除左边的空格

    text = "   Hello world!        "
    print(text.strip())  # 输出:'Hello world!'
    print(text.rstrip())  # 输出:'   Hello world!'
    print(text.lstrip())  # 输出:'Hello world!    '    
    

    .strip("***") 删除指定字符

    text = "!!!!!!   Hello world   !!!!!!!"
    print(text.strip("!"))  # 输出:'   Hello world'
    print(text.rstrip("!"))  # 输出:'!!!!!!   Hello world   '
    print(text.lstrip("!"))  # 输出:'   Hello world   !!!!!!!'
    

    3.4 字符变成变量

    .format() 可以将字符串中的部分字符变成变量
    可以直接根据位置对应

    singer = "陈奕迅"
    song = "《浮夸》"
    print("我最喜欢的歌是{}的{}".format(singer,song))  
    # 输出:我最喜欢的歌是陈奕迅的《浮夸》
    

    也可以关键词对应

    print("我最喜欢的球星是{country}的{star}".format(star = "C罗",country = "葡萄牙")) 
    # 输出:我最喜欢的球星是葡萄牙的C罗
    

    3.5 切割字符串

    .split() 切割字符串

    text = "I love you."
    print(text.split())  # 什么都不填,默认是空格
    # 输出:['I', 'love', 'you.']
    
    email = "zhaojingyi0126@163.com"
    print(email.split("@")) # 根据@切割
    # 输出:['zhaojingyi0126', '163.com']
    
    text = "I love you."
    print(text.split()[0])  # 输出:I
    print(text.split()[1])  # 输出:love
    print(text.split()[2])  # 输出:you.
    

    3.6 替换字符串

    .replace() 替换字符串中的某一部分

    text = "我爱吃苹果"
    new_text = text.replace("苹果","哈密瓜")
    print(new_text)
    # 输出: '我爱吃哈密瓜'
    

    3.7 查找字符

    b.find(a) 返回字符串 a 在字符串 b中第一次出现所在的索引位置

    text = "Hello World"
    find_l = text.find("l")
    print(find_l) 
    # 输出:2
    # 这个是指出现的位置,从0开始数
    

    3.8 倒序

    str[::-1]列表倒序

    text = "Hello World"
    text[::-1]
    # 输出: 'dlroW olleH'
    

    3.9 字符串所有方法

    dir(str)
    
     'capitalize',
     'casefold',
     'center',
     'count',
     'encode',
     'endswith',
     'expandtabs',
     'find',
     'format',
     'format_map',
     'index',
     'isalnum',
     'isalpha',
     'isascii',
     'isdecimal',
     'isdigit',
     'isidentifier',
     'islower',
     'isnumeric',
     'isprintable',
     'isspace',
     'istitle',
     'isupper',
     'join',
     'ljust',
     'lower',
     'lstrip',
     'maketrans',
     'partition',
     'replace',
     'rfind',
     'rindex',
     'rjust',
     'rpartition',
     'rsplit',
     'rstrip',
     'split',
     'splitlines',
     'startswith',
     'strip',
     'swapcase',
     'title',
     'translate',
     'upper',
     'zfill'
    

    3.10 实践:清洗豆瓣数据

    我在豆瓣电影 Top 250上面,右击查看源代码,可以看到关于《肖申克的救赎》的详情

    text = """
    <div class="info">
        <div class="hd">
            <a href="https://movie.douban.com/subject/1292052/" class="">
                <span class="title">肖申克的救赎</span>
                <span class="title">&nbsp;/&nbsp;The Shawshank Redemption</span>
                <span class="other">&nbsp;/&nbsp;月黑高飞(港)  /  刺激1995(台)</span>
            </a>
            <span class="playable">[可播放]</span>
        </div>
        <div class="bd">
            <p class="">
                导演: 弗兰克·德拉邦特 Frank Darabont&nbsp;&nbsp;&nbsp;主演: 蒂姆·罗宾斯 Tim Robbins /...<br>
                1994&nbsp;/&nbsp;美国&nbsp;/&nbsp;犯罪 剧情
            </p>
    
        <div class="star">
            <span class="rating5-t"></span>
            <span class="rating_num" property="v:average">9.7</span>
            <span property="v:best" content="10.0"></span>
            <span>1966737人评价</span>
        </div>
    
        <p class="quote">
            <span class="inq">希望让人自由。</span>
        </p>
    """
    

    用今天学习的字符串的方法,把数据清洗出来,汇总成一句话:

    《肖申克的救赎》,豆瓣评分9.7,1966737人评价。推荐理由:希望让人自由。
    

    思路:
    1、先想一下,输出要怎么构成?

    title = "肖申克的救赎"
    rate = "9.7"
    number = "1966737人评价"
    quote = "希望让人自由。"
    print("《{}》,豆瓣评分{},{}。推荐理由:{}".format(title, rate, number, quote))
    

    2、怎么获取到这些数据?可以有几种方法?
    一层一层切割开来,选择合适的关键词切
    3、完整代码

    text = """--------"""  # text的内容在上面
    title = text.split('</span>')[0].split('>')[-1]
    rate = text.split('v:average\">')[1].split('</span>')[0]
    number = text.split('star')[1].split('<span>')[1].split('</span>')[0]
    quote = text.split('inq')[1].split('>')[1].split('<')[0]
    print("《{}》,豆瓣评分{},{}。推荐理由:{}".format(title, rate, number, quote))
    

    请在作业的最后一行输出:

    昵称:第3节课作业
    

    相关文章

      网友评论

          本文标题:Python入门:字符串方法

          本文链接:https://www.haomeiwen.com/subject/cqkdtctx.html