《python核心编程第二版》课后习题6-12答案

  下午脑子瓦特,想了半天也没有想出算法,刚刚抽风终于实现了,特此记录。 ̄□ ̄||

 

题目

(a)创建一个名字为 findchr()的函数,findchr()要在字符串 string 中查找字符 char,找到就返回该值的索引,否则返回-1.

(b)创建另一个叫 rfindchr()的函数,查找字符 char 最后一次出现的位置.它跟 findchr()工作类似,不过它是从字符串的最后开始向前查找的.

(c)创建第三个函数,名字叫 subchr(),subchr()跟 findchr()类似,不同的是,如果找到匹配的字符就用新的字符替换原先字符.返回修改后的字符串.

注意:以上均不能使用string.*find()或者 string.*index()函数和方法 

 

def findchr(string, char):
    if char in string:
        i=0
        while string[i:i+len(char)]!=char:
            i+=1
        else:
            return i
    else:
        return -1
        

def rfindchr(string, char):
    if char in string:
        i=0
        while i<(len(string)-len(char)+1):
            if string[i:i+len(char)]!=char:
                i+=1
            else:
                s=i
                i+=1
        else:
            return s
    else:
        return -1


def subchr(string, origchar, newchar):
    if origchar in string:
        i=0
        while string[i:i+len(origchar)]!=origchar:
            i+=1
        else:
            new_string=string[:i]+newchar+string[(i+len(origchar)):]
            return new_string
    else:
        return -1

  

 

#运行结果
print(findchr('xabcxxxx', 'abc'))
print(rfindchr('abcxxxxabc', 'abc'))
print(subchr('abcxxxx', 'abc','lilip'))

1
7
lilipxxxx

  

 

转载于:https://www.cnblogs.com/lilip/p/9325141.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值