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
表示第一位,
是不是又有疑问了,为啥这么安排?
知道二进制不?二进制用 0
,1
表示,所以从 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技能树共建字符串方法的主要内容,如果未能解决你的问题,请参考以下文章