- 字符串
除了数字和布尔值之外,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\!
酱哦
如果还有什么问题或者发现了文章的错误,欢迎给我留言!邮箱可以随便乱写~