《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