美文网首页
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