learn with python-第七章:字符串

第七章:字符串
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包含了计数结果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值