字符串

  • 字符串

除了数字和布尔值之外,Python还支持一种更为复杂的数据类型,称为字符串(strings),简写为str。字符串是一系列字符(包括文本、符号、空格)排序在一起组成的。在Python中,字符串总是出现在引号内。例如,刚安装完Python的时候我们写过的:

>>> print('hello world')

其中’hello world’就是一个包含英文字母和空格的字符串,print()是一个很常用的命令,你可以先理解为打印出括号中的内容。注意字符串总是出现在引号内,单引号双引号都可以,但是不能一单一双。

有同学就要问啦,那如果字符串里面还有引号肿么办!答案是,如果字符串里有单引号,字符串两头就用双引号,反之亦然。那如果字符串里面即有双引号又有单引号怎么办→_→。嗯哼,这时候我们需要一个东西叫做转义字符,就是你键盘回车上方的那个斜杠\,例如:

>>> "I'm Ge"
"I'm Ge"
>>> 'I\'m Ge'
"I'm Ge"
>>> 'I said:"I\'m Ge"'
'I said:"I\'m Ge"'

Emm..最后一个好像不太对,怎么打出来还有个斜杠?这是因为Python为了防止歧义,保留了我们的转义字符,我们可以用print()来检验一下:

>>> print( 'I said:"I\'m Ge"')
I said:"I'm Ge"

 


转义字符\还有很多其他用途,比如输入\n就会换一行等等。如有兴趣可以查看官方文档

 

由于Python3开始,默认编码是Unicode(编码在后面的章节中会详细介绍),所以Python3还支持很多其他语言的字符,例如中文。因此,引号内也可以输入其他语言:

>>> print('哟')
哟

 

  • 针对字符串的操作

数字可以相加相乘,在Python中,字符串同样可以:

>>> 'h' + 'e' + 'l' + 'l' + 'o'
'hello'
>>> 'hello' * 2
'hellohello'

不过限制也是明显的,字符串没办法加上一个数字;字符串也不能和另一个字符串相乘;字符串不能乘以浮点数————这三种做法逻辑上都意义不明。

Python中,支持用in的方法,来查看某个字符、字符串是否出现在指定的字符串中出现,例如:

>>> 'llo' in 'hello'
True
>>> 's' in 'hello'
False

也可以用len()函数,来查询一个字符串的长度,即该字符串中字符的个数:

>>> len('hello world')
11

有的同学会说,hello五个字母,world五个字母,加起来不是10吗?我们强调一点:空格也是一个字符。一个空的字符串”和一个空格’ ‘是两个完全不同的字符串。

之前我们说,字符串是字符排序在一起的结果,这就使得字符串可以被索引。啥是索引呢,这就好比书上的目录,每个条目对应一个页码————字符串中的每个字符都对应一个索引号码。在计算机领域,索引号码是从0开始的,而不是平时习惯上的从1开头。我们可以在一个字符串后面输入一个中括号,中括号内输入索引号,就能够找到该字符串中对应索引号的字符:

>>> 'hello'[0]
'h'
>>> 'hello'[1]
'e'
>>> 'hello'[2]
'l'
>>> 'hello'[4]
'o'

刚开始学习容易混淆,字符串‘hello’的长度len(‘hello’)是5,但它内部字符最大的索引号是4,习惯就好啦。

最后,索引不仅仅可以从前往后数,也可以反过来数,例如:

>>> 'hello'[-1]
'o'
>>> 'hello'[-5]
'h'

只要记住,-1是字符串最后一个字符的索引号就可以了,这很常用。

关于字符串这个数据类型,还有很多其他的更高级的操作方法,我们在后面的章节中会逐步涉及。

 

  • 本节练习

将字符串’hello’和’world’组合成‘hello world’

看答案

>>> 'hello' + ' ' + 'world'
'hello world'

酱哦

用print()打印出:I’am learning \Python\!

看答案

>>> print('I\'m learning \\Python\\!')
I'm learning \Python\!

酱哦


如果还有什么问题或者发现了文章的错误,欢迎给我留言!邮箱可以随便乱写~

发表评论

邮箱地址不会被公开。 必填项已用*标注