主线任务
之前在 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畅想》等系列作者。华夏美食、国漫、古风重度爱好者,刑侦、无限流小说初级玩家。
如果看完文章有所收获,欢迎点赞👍 | 收藏⭐️ | 留言📝。