到目前为止,我们已经学习了三种数据类型:int、float和string。string类型与其它两种类型的数据还有本质的区别,因为它是由多个字符组成的。 我们可以把字符串当成一个整体,也可以取得字符串的任何部分。
操作符“[]”从字符串中取出任意个连续的字符:
>>> name = "qswtp"
>>> print name[0]
q
>>> print name[4]
p >>> letter = name[2]
>>> print letter
w
>>> a = 1
>>> b = 2
>>> print name[a + b]
t
中括号内表达式是字符串的索引,它表示字符在字符串内的位置。字 符串第一个字符的索引是0,而不是1,切记。
函数len返回字符串的长度:
>>> address = "www.qswtp.com"
>>> len(address)
13
许多操作都涉及对字符串的处理,比如从第一个字符开始,按照顺序 读取字符,然后在做相应的处理,直到最后一个字符,这个处理过程叫做 遍历。可以用while语句遍历字符串中的每一个字符:
def travel(string):
index = 0
while index < len(string):
letter = string[index]
print letter
index = index + 1
当字符串的索引值等于字符串的长度时,while的条件为假,这时字符串已 经浏览完毕,退出循环。
Python提供了另一种语句for来遍历字符串,它的用法更加简练:
>>> for char in address:
print char
在每一次的循环中,依次把字符串中的一个字符赋值给变量char,然后打 印,直到最后一个字符被打印之后,for语句结束循环。
字符串的一部分叫做片断。选取片段与选单个取字符很相似:
>>> os = "Linux Unix FreeBSD"
>>> print os[0:5]
Linux
>>> print os[6:10]
Unix >>> print os[11:18]
FreeBSD
操作符[n:m]返回字符串的一部分,从第n个字符开始,到第m个字符结 束,包括第n个,但不包括第m个。如果你忽略了n,则返回的字符串从索 引0开始;如果忽略了m,则字符串从n开始,到最后一个字符。
>>> os = "Linux Unix FreeBSD"
>>> print os[:5]
Linux
>>> print os[11:]
FreeBSD
如果我们试图用“[]”操作符修改字符串中的任何一个字符,就像下 面车操作一样:
love = "python"
love[0] = P
你别指望着变量love的值变成“Python”,这时将产生运行时错误。这表 明字符串的值是不可改变的。最好的办法是取原字符串的一部分和添加的 字符串相加,生成一个新的字符串:
>>> str = "python"
>>> newstr = "P" + str[1:]
>>> print newstr
Python
下面的例子是从一个字符串中,寻找是否存在给出的字符:
def find(string, ch):
index = 0
while index < len(string):
if string[index] == ch:
return index
index = index + 1
return -1
如果string[index] == ch成立,函数立即返回字符的索引,并且退出循环。 如果在字符串中没有寻找的字符,程序正常退出循环,并返回-1。
我们再看一个计算字符串中出现字符次数的函数:
def count(string, ch):
count = 0
for char in string:
if char == ch:
count = count + 1
print count
用for语句做一个循环,每次发现一个相等的字符,变量就加1,最后打印 出变量count。