字符串
Python中可以有三种方式表达字符串:单引号,双引号,三引号
在Python中一下代码是完全相同的
print("I love Python")
print('I love Python')
但是为什么Python要提供两种实现方式呢?这是不是多此一举了,事实上不是的,我们看看下面这一行程序:
print('Let's go!')
运行这条语句会发生报错,我们在使用单引号或者双引号来表示字符串的时候,一定要注意文本两端的引号必须是成双成对的,否则就会像上面一样发生报错。Python会将Let
当作字符串,而s go!
会被当作无头的字符串,所以编译器就会发生报错。
当我们将程序用双引号括起来时,这个问题就会被解决了,同样的当字符串里面有双引号的情况也可以这样处理
print("Let's go!")
那么,但这样,脑洞大开的同学就会说了,那我字符串里面既有单引号又有双引号应该怎么呢?这时候,我们通常会采用加一个转义字符的方法来实现:
print('\"I love Python, Let\'s go!\"')
这样我们就不需要关心外面使用的是单引号还是双引号了。
关于常用的转义字符我也在下面列了一个表格:
转义字符 | 说明 |
---|---|
\a | 响铃 |
\b | 退格,将当前位置移到前一列 |
\f | 换页,将当前位置移到下页开头 |
\n | 换行,将当前位置移到下一行开头 |
\r | 回车,将当前位置移到本行开头 |
\t | 水平制表(跳到下一个TAB位置) |
\v | 垂直制表 |
\\ | 代表一个反斜线字符 |
\ ’ | 代表一个单引号字符 |
\ " | 代表一个双引号字符 |
? | 代表一个问号 |
\0 | 空字符 |
\ddd | 1到3位八进制数所代表的任意字符 |
\xhh | 十六进制所代表的任意字符 |
提到转义字符就不得不提到Python的原始字符串,我们先来看一段代码再来说说什么时候会使用到原始字符串。
print("C:\one\two\three")
我们可以猜到这一行代码的意图是想打印C:\one\two\three
这样一个文件路径,运行程序后我们来看一下效果。
C:\one wo hree
嗯?为什么会这样呢?稍加思考我们就会发现Windows的路径是以反斜杠\
为分隔符的,但是Python在这里会认为反斜杠\
加上一些特定的字符就是一个转义字符,所以由于\t
的存在,程序在它的位置打印了两个制表符(TAB)。为了解决上面的问题也很简单,我们用反斜杠\
来将反斜杠\
给转义出来就好了,好比这样:
print("C:\\one\\two\\three")
这样就能够正常的将路径给显示出来。但是,如果一个路径特别的长呢?一个一个的加反斜杠\
就显得太过于繁琐了,这时候使用原始字符串就能够非常轻松的解决这个问题了,原始字符串的使用也很简单,在字符串的前面加上一个r
即可。程序如下:
print(r"C:\one\two\three")
然而,这里有一个需要注意的是,反斜杠\
不能够放在末尾,如果放在末尾代表这段代码还没完儿,如果直接运行编译器是会报错的。
对于反斜杠\
放于末尾的情况一般是这样的:
如果上面这段代码没有在后面加反斜杠\
,编译器是会报错的:
长字符串
长字符串主要是为了实现“跨行字符串”,我们之前是通过在末尾加反斜杠\
来实现字符串的跨行的,但是使用长字符串就不需要在每一行的后面加一个反斜杠\
了,我们可以使用三引号来表明这是一个长字符串,这里使用单引号"
和双引号'
都是可以的,只要前后一致就行。
字符串的运算
与数字一样,字符串也可以进行运算的,不过字符串只可以做加法和乘法。
字符串的加法:
两个字符串的相加与数字的加法是不同的,它其实将两个字符串拼接起来,组成一个新的字符串。
字符串的乘法:
字符串的乘法是只能与数字相乘的,实现的功能就是将字符串乘以相应的倍数。
以上即是字符串内容的简单入门,后面会对字符串进行更详细的介绍。