Python入门:字符串方法

三、字符串

本章内容运行环境: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节课作业
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,491评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,856评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,745评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,196评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,073评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,112评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,531评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,215评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,485评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,578评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,356评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,215评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,583评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,898评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,174评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,497评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,697评论 2 335

推荐阅读更多精彩内容