您的位置:首页 > 编程语言 > Python开发

learn with python-第七章:字符串

2014-05-30 10:27 134 查看
第七章:字符串
7.1复合数据类型
目前为止我们遇见过三种数据类型:int,float,以及string,string和其他两种类型不一样,它是由多个字符组成。
包含其他小片数据的数据类型称之为组合数据类型。
中括号操作符从字符串中获取单独一个字符
>>> fruit = "banana"
>>> letter = fruit[1]
letter从fruit中获取第二个字符为a,下标是从0开始。

7.2长度
函数len返回字符串的长度
>>> fruit = "banana"
>>> len(fruit)
6
下标的值超过字符串长度会报字符串指针越界的错误。我们也可以使用负值从逆向获取字符串中的字符
fruit[-1]获取最后一个字符,fruit[-2]获取倒数第二个字符。

7.3遍历,for循环
很多操作需要每次处理字符串中的一个字符,通常从头开始,依次直到最后一个字符,这种行为称之为遍历,一种实现方式就是while语句:
index = 0
while index < len(fruit):
letter = fruit[index]
print letter
index = index + 1
这个循环遍历字符串并打印每个字符,循环的条件是index < len(fruit),因此当index等于字符串长度的时候,条件为false,方法体重的代码不会被执行,最后一个字符是下标为len(fruit-1)的值。
python提供了另外一种方式:
for char in fruit:
print char

7.4字符串分隔
选择某个分片和选择某个字符类似
>>> s = "Peter, Paul, and Mary"
>>> print s[0:5]
Peter
>>> print s[7:11]
Paul
>>> print s[17:21]
Mary
操作符[n:m]从第n个字符到第m个字符,包括第n个字符,但是不包括第m个字符。如果不写第一个字符代表从第一个字符开始截取,如果不写最后一个字符表示从截至至最后一个字符。
>>> fruit = "banana"
>>> fruit[:3]
'ban'
>>> fruit[3:]
'ana'

7.5string比较
让我们看看两个相等字符串的比较:
if word == "banana":
print "Yes, we have no bananas!"

7.6string是不可变的
如果试图通过[]操作符改变字符串的值会抛出异常
greeting = "Hello, world!"
greeting[0] = 'J' # ERROR!
print greeting
字符串是不可变的,意味着你不能改变一个已经存在的字符串的值,替代的办法是基于老的字符串创建一个新的字符串。

7.7find函数
def find(str, ch):
index = 0
while index < len(str):
if str[index] == ch:
return index
index = index + 1
return -1
find同[]操作符相反,[]通过下标索引找到对应的字符,find通过字符找到字符所处的位置,如果没有找到返回-1。如果找到字符串退出循环并返回。

7.8循环计数
下面的程序计算一个字符在字符串中出现的次数。
fruit = "banana"
count = 0
for char in fruit:
if char == 'a':
count = count+1
print(count)
这个程序展示了另外一种称之为计数器的模式,变量count被初始化为0,然后每次递增1,循环结束后count包含了计数结果。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: