字符串的简单运算

版权声明

字符串,是诸多编程语言中最常见,也是最常用的一个数据类型。图中的“hello world”,就是一个字符串类型。在Python里用type函数,就可以明确的知道它是一个“str”类型(python中用来表示字符串)

但是,单单知道有这么个字符串类型还远远不够。因为在所有的编程过程中,对字符串的进一步操作才是使用最多的。

同基本的数字类型一样,字符串类型是可以进一步运算的。而这,才是我们日后在编程的路上经常使用到的。但同时,我相信你也会想到,字符串类型的运算与数字类型是略有区别的。因此,本文基于排坑和梳理的思路,介绍一些简单的字符串类型运算法则。

说到字符创基本运算,它可以解决两个比较基础的问题:

现在有两个字符串,一个“hello”,一个“world”,如果我们要把它们合并在一起,怎么操作?

如果我们要在“hello world”这个字符串中,选取“wor”这段字符的话,应该怎么操作。

先来看看第一个问题。其实很简单,因为即使你是Python小白,下一刻也一定会处理这个的问题。首先,不管你上没上过小学,你肯定知道一个运算法则:1+1=2。这里讲究的是加号的运算——叠加求和。

那么同理,在字符串的运算里,我们是不是也可以用加号来拼接两个及两个以上的字符串呢?如图:

看吧,第一个问题就这么解决了。但是,我们不能仅限于此是吧。发散一下:竟然加号可以,那么减号、乘号和除号是否也可以呢?不急,我们先敲击一遍。

毫不意外,通通报错。但这并不意味着我们就不能用其他的运算符号。

我相信细心的朋友肯定发现了,上图中的三个报错原因是不一样的:

减号和除号报错的原因是不支持字符串与字符串之间的操作;

乘号的报错则完全不一样:不能对一系列无整型(整数)的字符串类型进行乘号运算。

我知道你一定看出了什么:用减号和除号对字符串进行运算是完全不可能的,但乘号只要和整形待一块儿,就可以运算。如下图:

如图,只有当我们在运算的时候加入整形,才能对字符串进行乘号运算。而这个时候,Python则会把该字符串打印对应整形的次数。

好,第一问题解决好了,拉回到我们的第二个问题。

在说明第二个问题之前,我们需要了解一个东西:

如何在一个字符串中,选择其中的某一个字符。比如说,在“hello world”这个字符串中,我想要选取到“h”,应该怎么操作呢?

先思考一下:如果我们在生活中遇见同样的情况,会怎么处理呢?

我们是不是会先定位到我们想要选取的这个字符在字符串里的位置,然后告诉其他人,他在哪个方向的第几个,对不对。

好,如果你理解了这个逻辑,那么上面的问题其实就很好解决了。为什么呢?因为计算机就好比是我们定位好字母位置后,将要转述的人。这个时候,我们只需要告诉他,那个字符是从哪儿开始数的第几个就可以了嘛。

那要落实到Python中的话,这个逻辑要要怎么呈现呢?在字符串的最后,需要用到我们熟知的“中括号”。如下:

和平时我们数数的开始值不一样,Python中是从“0”开始数的。所以在中括号里输入0的话,就可以得到“h”了。那如果我们要选取最后的字符“d”,也是需要我们从左至右一个一个的数吗?可是可以,但这也未免太麻烦了一些,尤其在当字符有几百上千个的时候,真是数不死你。

因此,我们除了从左至右的数之外,还可以从右往左的数。字符“d”恰好是右起的最后一个。所以我们只需要在中括号里输入“-1”就可以了。它代表的就是从右往左的开始数的第一个字母。

好,既然我们知道了可以通过数数的方式抽取一个字符串中的某个字符,那如果要抽取一段字符的话,怎么办呢?逻辑也比较简单。我们收取单一的字符就好比给他开了一个头,然后我们告诉他在哪里结束就可以了。下图就用两种方法截取同一个字符串“wor”,话说你可得注意中括号里的变化哟。

不知你有没有发现,我多截了一行运算结果。但这可不是我手残多截了一段。你先从左至右的数一数,“r”这个字符,是不是在第8位。好,这时或许你会想,既然它在第8位,那在中括号里输入“6:8”就可以了。其实不是的,就如同第一行结果展示的那样,输入“6:8”并不会打印出“wor”,而是“wo”。这是因为在Python中,如果你要打印出前三位字符串,你必须得多数一位,也就是数到4才行。这也是为什么在中括号里输入“6:8”与“6:9”会得出不同结果的原因了。

  • 发表于:
  • 原文链接:http://kuaibao.qq.com/s/20180107G0H8RR00?refer=cp_1026

同媒体快讯

相关快讯

扫码关注云+社区