Python 主线任务之字符串,离开新手村指日可待【玩转Python】

举报
叶一一 发表于 2023/12/25 09:46:12 2023/12/25
【摘要】 本文分享Python中关于字符串相关知识点和笔记。主要分享学习了字符串是什么、如何在字符串中插入值、如何剔除字符串中多余的空白。

主线任务

之前在 AI 助手"伴读"下写了几个功能,与其说在学习,更像是在体验 AI 助手的辅导能力。

在上篇的"背包问题"的解题中,发现对 Python 的语法不够熟悉,会反过来影响解题思路。

我认真思考了一下,还是得系统的学习一下 Python。不过,仅是学习语法等知识点,肯定是不够的,最好有阶段性的功能实践。

正好《Python编程:从入门到实践》中每节的后面都有"动手试一试"的编程练习环节,可以帮助实验"学以致用"的效果。

今天这篇主要分享 Python 字符串及其操作的相关知识点,每节都附有练习题及解答。

接下来让我们一起开启 Python 的主线任务。

字符串

介绍

字符串就是一系列字符。在Python中,用引号括起的都是字符串,其中的引号可以是单引号,也可以是双引号。

str = "This is a string."
strSec ='This is also a string.'

笔记

在字符串中插入变量的值

1、Python 3.6 引入的 f 字符串,要在字符串中插入变量的值,可在前引号前加上字母 f ,再将要插入的变量放在花括号内:

first_name = "叶"
last_name = "一一"
full_name = f"{first_name}{last_name}"
print(full_name)

输出结果

叶一一

2、Python 3.5 或更早的版本,需要使用 format() 方法。上面的 full_name 变量赋值方式变成了下面的代码,输出的结果不变:

full_name = "{}{}".format(first_name, last_name)

删除空白

有时候额外的空白会带来不必要的麻烦,比如对比两个字符串的是否相同时,额外的空格会得到失败的结果。这个时候需要先将额外的空格删除。

1、删除字符串左右两侧的空格

  • rstrip():用于移除字符串右侧(尾)指定的字符(默认为空格或换行符)或字符序列。
  • lstrip():用于移除字符串左侧(头)指定的字符(默认为空格或换行符)或字符序列。
  • strip() :用于移除字符串两侧(头尾)指定的字符(默认为空格或换行符)或字符序列。

下面有三个字符串变量,分别是包含左侧空格、右侧空格,两侧空格的字符串。

word_f = 'I '
word_s = ' love'
favorite_language = " python "
full_sentence = f"{word_f}{word_s}{favorite_language}"
print(full_sentence)

连接三个变量,运行一下结果

I  love python 

我们分别使用三个方法去除空格

full_sentence = f"{word_f.rstrip()}{word_s.lstrip()}{favorite_language.strip()}"

再次运行结果

Ilovepython

2、删除字符串全部空格

除了左右两侧空格,有时候可能字符串中间也包含空格,这个时候上面的三种方法就不好使了。

如果想去掉字符串中间的空格,有几种思路:

(1)使用replace将所有空格替换掉。

full_sentence = "I  love python "
print(full_sentence.replace(' ', ''))

运行结果

Ilovepython

(2)逐个使用 strip() 去掉两侧空格。

full_sentence = "I  love python "
full_sentence.strip()
res = ''.join([i.strip(' ') for i in full_sentence])
print(res)

(3)使用 split 按照空格截取字符串得到一个列表,将列表中所有的空格对象去掉,最后列表重新生成字符串。

full_sentence = "I  love python "
sentence_split = full_sentence.split(' ')
sentence_List = [i for i in sentence_split if i != '' ]
sentence_str = ''.join(sentence_List)

练一练

所有练一练的题目,大家可以先自行尝试实现。而我自己实现的代码可能跟习题答案也不太一样,仅供参考。

练习2-4:调整名字的大小写

题目:

调整名字的大小写 用变量表示一个人的名字,再以小写、大写和首字母大写的方式显示这个人名。

实现:

这个题目还是很简答的,Python 提供了修改字符串大小写的方法。

name_s = 'ye yiyi'
print(name_s.lower())
print(name_s.upper())
print(name_s.title())

打印:

ye yiyi
YE YIYI
Ye Yiyi

练习2-5:名言

题目:

找一句你钦佩的名人说的名言,将其姓名和名言打印出来。输出应类似于下面这样(包括引号)。Albert Einstein once said, “A person who never made a mistake never tried anything new.”

实现:

这个题目主要注意表示字符串类型的引号最近的引号类型相同时,导致的语法错误的问题。需要使用不同引号。

print('Einstein once said, "A person who never made a mistake never tried anything new."')

打印:

Einstein once said, "A person who never made a mistake never tried anything new."

总结

读完本文的主要收获有:

1、对于字符串,学习了字符串是什么、如何在字符串中插入值、如何剔除字符串中多余的空白。

对于主线任务,主要是学习基础,此外加上了支线的练习任务,可以将一些容易被忽视的功能点和对比,产生关联的联系,更容易加深记忆。



作者介绍
非职业「传道授业解惑」的开发者叶一一。
《趣学前端》、《CSS畅想》等系列作者。华夏美食、国漫、古风重度爱好者,刑侦、无限流小说初级玩家。
如果看完文章有所收获,欢迎点赞👍 | 收藏️ | 留言📝

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。