测试时,请先不要使用中文输入法,最后会介绍如何让字符串包含中文字符的。
如下代码所示变量a就是字符串类型。字符串(String)是由数字、字母、下划线等组成的一串字符;用粗俗的语言来说,字符串就是一串字符。
a = "zhuanfou.com"
再多举一些例子,下面的变量都属于字符串类型。
a = "zhuanfou666" b = 'zhuanfou666' c = "zhuanfou666"
Python中常用定义字符串的方式是引号;单引号和双引号都可以。
a = "zhuanfou" b = 'zhuanfou'
连续使用三个相同的引号,可以定义多段文字作为字符串;单引号和双引号都可以。
a = '''zhuanfou 3.1415926 -_- 123456789'''
Python中空的字符串,即字符串长度为零,不含有字符。如下所示,变量a和变量b都是空字符串。
a = "" b = ''
Python中,字符串之间的运算符+
,代表的是将字符串首尾连接;如下所示,变量a的值会等于字符串"zhuanfou"
,变量b的值会等于字符串"123"
。
a = "zhuan" + "fou" b = "1" + "2" + "3"
Python中,字符串之间的运算符*
,代表的是将指定字符串,重复指定次数,并相互连接。在下例中,a的值就是将3个字符串"6"
相互连接,得到字符串"666"
。
a = "6" * 3
使用python的内置函数str()
即可将指定数字转换成字符串类型。
a = 666 b = 6.66 string_a = str(a) string_b = str(b)
使用python的内置函数len()
即可获得指定字符串的长度。
length = len("zhuanfou")
如下所示,可通过索引来获得字符串指定位置的字符。(索引从0开始)
a = "zhuanfou" print a[0] print a[2]
延伸学习一下,利用for循环依次输出字符串中的每个字符;试试呗:
a = "zhuanfou" for c in a: print c
字符串内置方法count
可用来统计该字符串中出现指定子串的次数,若没有出现过指定子串,则返回0。
times = "zhuanfou-fou-fou".count( "fou" )
字符串内置方法find
可用来找到指定子串的第一次出现的位置,若该子串从来没有出现过,则返回-1。
position1 = "zhuanfou".find( "fou" ) position2 = "fanqingfuming".find( "fou" )
字符串内置方法split
可将字符串按指定分割符划分,返回的是由分隔出的字符串而构成的列表对象。默认分隔符为空格。
>>> "zhuan fuo 666".split() ['zhuan', 'fuo', '666'] >>> "d.zhuanfou.com".split( "." ) ['d', 'zhuanfou', 'com'] >>> "123-_-321-_-abc".split( "-_-" ) ['123', '321', 'abc']
字符串的内置方法strip
可用来去除字符串首尾两端所有的空格;lstrip
方法可以去除字符串左侧开头所有的空格,rstrip
方法可以去除字符串右侧结尾所有的空格。(lstrip可以理解成“left strip”的缩写,rstrip可以理解成“right strip”的缩写。)
>>> " zhuan fou ".strip() 'zhuan fou' >>> " zhuan fou ".lstrip() 'zhuan fou ' >>> " zhuan fou ".rstrip() ' zhuan fou'
字符串内置方法upper
可将指定字符串中的小写字母转换成大写字母,如下例所示:
>>> "zhuanfou666".upper() 'ZHUANFOU666'
字符串内置方法lower
可将指定字符串中的大写字母转换成小写字母,如下例所示:
>>> "ZHUANFOU666".lower() 'zhuanfou666'
如果想在字符串中置入引号,若情况比较简单,可用双引号标记具有单引号的字符串,用单引号标记具有双引号的字符串。
a = "I'm a jerk." b = 'She said, "Yes."'
但若需要在字符串中同时置入单引号和双引号时,这时,最佳解决方案就是使用转义序列。python中常用的转义序列如下所示:
转义序列 | 说明 |
---|---|
\' |
单引号 |
\" |
双引号 |
\\ |
反斜杠 |
\n |
换行 |
\r |
回车 |
\t |
水平制表 |
\v |
垂直制表 |
如下例所示:
a = "zhuan\nfou" print a
不管是字符串中使用到中文字符,还是在python程序的注释中使用到中文字符,若无提前声明,一般来说都会报错,如下所示,只要程序中出现中文输入法输出的字符,请先在程序开始处,写上“#coding=utf-8”这段代码就ok啦。
只要python程序中出现中文字符,不管是字符串中出现,还是程序的注释中出现中文输入法输出的字符,都需要提前在python程序的开始部分,对程序的编码格式进行声明。如下所示,添加上#coding=utf-8
这段代码即可。
# coding=utf-8 a = "反清复明" print a
既然说到了中文字符,就不得不提unicode字符串。(关于unicode的详情点击这里)先看看在python中是如何定义unicode类型字符串?
使用u
加上引号来定义;如下所示变量a和变量b都是unicode类型字符串:
a = u"地振高冈,一派西山千古秀" b = u'门朝大海,三合河水万年流'
如下述交互环境的python代码所示,可对比一下python中str类型字符串和unicode类型字符串:
>>> # coding=utf-8 ... >>> a = "反清复明" >>> b = u"反清复明" >>> a '\xe5\x8f\x8d\xe6\xb8\x85\xe5\xa4\x8d\xe6\x98\x8e' >>> b 反清复明 >>> >>> type( a ) <type 'str'> >>> type( b ) <type 'unicode'> >>> >>> print len(a), a[0] 12 \xe5 >>> print len(b), b[0] 4 反
备注:抱歉,目前python2的专否沙盒关于unicode类型字符串会有一些bug,请尽量使用本地python环境来测试unicode字符串。