Python技能树共建字符串方法

Posted 梦想橡皮擦

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python技能树共建字符串方法相关的知识,希望对你有一定的参考价值。

文章目录

Python 字符串方法是什么

Python 字符串是 Python 内置的一种数据类型,本篇博客要学习的内容就是字符串对象的方法。

先来学习第一个知识点,Python 字符串,字符串是一个编程名词,翻译过来就是字符组成的串(跟没说一样)

在 Python 中,用引号来表示字符串,例如 双引号 ",单引号 ',还有一个奇葩的三引号 """,对应的三单引号 '''

所以下述代码都是在 声明 一个字符串。

name = "橡皮擦"
name = '橡皮擦'
name = """橡皮擦"""
name = '''橡皮擦'''

此时你应该尝试输入一下上述代码,找找编程的感觉,如果你能得到如下几个结论,证明水平还不错。

  • 引号都是成对出现的,前面一个后面一个;
  • 单引号对应单引号,双引号对应双引号,三引号对应三引号;
  • 所有引号都是在英文模式下输入的,不能用中文的引号。

字符串会伴随我们的整个编程生涯,几乎每段代码都会碰到,因此咱们将其放在一开始就进行讲解。

怎么用

截止目前,你只接触到了 Python 字符串的概念,那你来看一下 '1' 是字符串吗?
答案肯定是,因为 1 被单引号包裹起来了。

既然字符串是一个字符的串,那你就可以把它当成糖葫芦串,你可以对糖葫芦做什么,就能对字符串做什么,
例如吃第一个,吃最后一个,吃中间的 2 个,在头上插入一个山楂,在尾部插入一个山楂,数数山楂的数量……

这些对应到 Python 字符串中,就是各种编程语法,编程概念,咱们一起翻译翻译。

我有一个字符串(糖葫芦),我要吃第一个

tang_hu_lu = "都说冰糖葫芦儿酸" # 声明字符串
print(tang_hu_lu) # 打印输出字符串
print(tang_hu_lu[0]) # 打印字符串的第一个字符

注意代码都是在 jupyter 中进行编写,然后点击运行实现效果,运行的快捷键是 shift+enter

又是一段代码,里面又涉及了很多编程概念,例如 tang_hu_lu 你已经知道它是一个变量了,
但是 Python 变量是有命名规范的,例如 1_a 就是错误的,命名规范是啥呢?
学习建议是直接搜索,只有一个原则需要告诉你,就是命名尽量有含义,哪怕你用拼音。

# 表示注释,相当于备注的意思,写在 # 后面的内容不会被 Python 软件 执行。
tang_hu_lu[0] 这里就有趣了,在变量名称后面跟了一个中括号[],并且在里面写了一个数字 0
它表示取这个串里面的第一个字符,在编程语言中,报数一般从 0 开始,也就是 0 表示第一位,
是不是又有疑问了,为啥这么安排?

知道二进制不?二进制用 01 表示,所以从 0 开始数。

取第一个字符咱们已经会了,那最后一个呢

tang_hu_lu = "都说冰糖葫芦儿酸" # 声明字符串
print(tang_hu_lu) # 打印输出字符串
print(tang_hu_lu[-1]) # 打印字符串的最后一个字符
print(tang_hu_lu[7]) # 打印字符串的最后一个字符

上述代码就实现了,注意中括号里面的数字 [-1] 就是倒着数最后一个,当然你可以顺着数,
数到 7 就是第八个山楂了,这里尝试把 7 修改成 8 ,看一下会报什么错误吧。


到这里就不得不抛出一个新的名词了,索引,刚才中括号中的数字就是 索引值,又是一个新概念,这就是编程。

字符串的第一个和最后一个你都能获取到了,吃中间的怎么办

tang_hu_lu = "都说冰糖葫芦儿酸" # 声明字符串
print(tang_hu_lu) # 打印输出字符串
print(tang_hu_lu[2:4]) # 输出冰糖
print(tang_hu_lu[3:5]) # 输出糖葫

注意中括号扩展了,变成了 2 个数字,中间还有一个英文的冒号,此时一定要对比着原字符串进行学习。

- 都说冰糖葫芦儿酸
- 0 1 2 3 4 5 6 7

看好各个的位置

  • [2:4] 输出冰糖,分别对应索引 2,索引 3 位置的字符;
  • [3:5] 输出糖葫,分别对应索引 3,索引 4 位置的字符;

[0:6] 你知道输出什么了吗?能说出来,恭喜你,Python 字符串切片你已经掌握 90%了,想不到吧,又是一个新概念,
切片,多么形象!

字符串扩展方法

字符串除了切片用法以外,还可以使用一个新的概念,叫做 对象的方法,在 Python 中有一个说法,叫做万物皆对象(对象的概念我们在后文展开学习,现在知道这么回事即可),例如现在有一个字符串,内容是 "都说冰糖葫芦儿酸"

先看代码

my_str = "都说冰糖葫芦儿酸"
a = my_str.find("糖")
print(a) # 输出内容为 3

上述代码中,在字符串变量 my_str 的后面增加一段代码 .find("糖"),其中 .find() 就是一个字符串对象的方法,它的用途你顺着刚才的代码在细琢磨,就能知道,是查找 "糖" 这个小字符串在大字符串中的索引值。

同理,还有哪些需要掌握的字符串对象方法呢?

my_str = "AaBbCcDd"
new_my_str = my_str.title()
print(new_my_str) # Aabbccdd

.title() 方法表示将字符串首字母大写

my_str = "AaBbCcDd"
new_my_str = my_str.upper()
print(new_my_str) # AABBCCDD

.upper() 方法表示将字符串全部大写,全部小写是 .lower()

字符串去除左右两端的空格。

my_str = " AaBbCcDd "
new_my_str = my_str.strip()
print(new_my_str)

除了这些,字符串对象的方法还有很多,但是不需要记忆,你需要去搜索一些相关的博客进行阅读,
搜索关键字为 Python 字符串方法,然后看上几篇博客,最终得到下面这个结论:

“哦~字符串对象有这些方法,可以大小写转换,可以去除空格,可以检索字符串,可以统计字符出现次数,
还能判断字符串中字符内容……”

内置函数

学到这里,还有一个概念要接触一下,内置函数,现在的需求如下所示,
我们需要统计有多少个糖葫芦,即字符串有多少个字符,先看代码,如下所示:

my_str = " AaBbCcDd "
len_my_str = len(my_str)
print(len_my_str) # 统计到了 10个

上述代码中的 len() 就是一个 Python 内置函数,它表示统计长度,
注意看内置函数和刚才学到的方法之间的差异,len() 函数,前面并没有对象去调用它,
调用 其实也是一个编程概念,就是那个 . 符号。

统计过程,你也会注意到 " AaBbCcDd " 算上空格,恰好是 10 个 字符,所以得出空格也是字符,这个基本认知。

后续我们还会学习更多的内置函数,接下来在学习 2 个,这两个有助于提高编程效率。

第一个是 help(),该函数用来查看编程对象的帮助手册,例如下述代码

my_str = " AaBbCcDd "
help(my_str )

不过该代码无法在 jupyter 中运行,会得到如下结果

这里可以直接输入 help(),进入手册模式,在进行查询即可。

在文本框输入 str,就可以获取到帮助手册中的相关内容,也就是获取到了字符串对象的相关方法。

第 3 个要学习的内置函数是 dir(),使用该函数可以直接把对象支持的方法全部输出。

my_str = " AaBbCcDd "
print(dir(my_str))


jupyter 的使用过程中,如果出现了 In [*],表示命令没有执行完毕,需要点击菜单栏的 Kernel,然后重启服务。

字符串格式化

在 Python 中,字符串格式化有三种方式,分别为 % 占位符格式化,format() 方法格式化,以及 f-string
重点学习的是第二种和第三种方式进行格式化,例如下述代码:

my_str = "小爱同学,今天天气"
answer_str = "今天的天气是: ".format("晴")
print(answer_str)

第二个字符串中出现了一个大括号 ,然后通过 format() 函数对其进行了填充,
同理,大括号可以出现多个,也可以有名称,例如下述代码:

# 多个大括号,format() 方法中需要多个值进行填充
my_str = "小爱同学,今天天气"
answer_str = "今天上午的天气是: ,下午的天气是:".format("晴","多云")
print(answer_str)
# 大括号中有占位符
my_str = "小爱同学,今天天气"
answer_str = "今天上午的天气是: shangwu,下午的天气是:xiawu".format(shangwu="晴",xiawu="多云")
print(answer_str)

在使用占位符的时候注意下,前后要一致,否则会出错的。

上述代码其实用到了函数相关支持,这些随着我们的学习,都将逐步展开,当下最有效的学习方式,就是临摹一遍代码啦。

以上是关于Python技能树共建字符串方法的主要内容,如果未能解决你的问题,请参考以下文章

技能树共建Python requests 模块

Python技能树共建python urllib 模块

Python技能树共建常用标准库

Python技能树共建python selectolax 模块

Python技能树共建断言

Python技能树共建python autoscraper 模块