封装系统内置功能的函数(字符串)

2019-05-17 00:00:08来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

1、封装类似lower()的函数

def myLower(src):
    src1 = ''
    for i in src:
        if 'A' <= i <= 'Z':
            src1 += chr(ord(i) + 32)
        else:
            src1 += i
    return src1
#print(myLower('AcdEjlG'))

 2、封装类似upper()的函数

def myUpper(src):
    src1 = ''
    for i in src:
        if 'a' <= i <= 'z':
            src1 += chr(ord(i) - 32)
        else:
            src1 += i
    return src1
#print(myUpper('aCdEf'))


 3、封装类似find()的函数

第一种思路:
def myFind1(src,sub):
    for i in range(len(src)-len(sub)+1):
        new_src = src[i:i+len(sub)]
        #print(new_src)
        if new_src == sub:
            return i
    else:
        return -1
print(myFind1('abcde123abe','123a'))
第二种思路:
def myFind(src,sub):

    if len(sub) > len(src):
        return -1
    for i in range(len(src)):
        if src[i] == sub[0]:
            index = i
            for j in range(len(sub)):
                if src[index] != sub[j]:
                    break
                index += 1
            else:
                return i
    else:
        return -1

 4、封装类似rfind()的函数

第一种思路:
def myRfind(src,sub):
    #从右往左进行遍历
    for i in range(len(src)-1,-1,-1):
        #先找第一个字符,如果一致,在进行对应切片比较
        if sub[0] == src[i]:
            #如果切片出来的结果与子串一致,返回所在的索引值
            if sub == src[i:i+len(sub)]:
                return i
    #如果没找到,返回-1
    else:
        return -1
# index = myRfind('abc123','c1')
# print(index)

第二种思路:
def myRfind(src,sub):
    if len(sub) > len(src):
        return -1
    for i in range(-1,-len(src)-1,-1):
        if src[i] == sub[0]:
            index = i
            for j in range(len(sub)):
                if src[index] != sub[j]:
                    break
                index += 1
            else:
                return len(src) + i
    else:
        return -1
#print(myRfind('abcdegabeda','ab'))

 5、封装功能类似isdigit()的函数

def myIsdigit(src):
    for ch in src:
        if not '0' <= ch <= '9':
            return False
    else:
        return True
print(myIsdigit('123'))
print(myIsdigit('123a'))

 6、封装功能类似partition()的函数

def myPartition(src,sub):
    if sub in src:
        #获取子串在目标字符串的索引值
        index = myRfind(src,sub)
        #切片操作划分三个元素:  1.str[0:index]  2.sub 3.[index+len(sub):]
        return (src[0:index],sub,src[index+len(sub):])
    else:
        return (src,'','')
# print(myPartition('abcdef','g'))
print(myPartition('abcdef','cd'))

 


原文链接:https://www.cnblogs.com/ilovepython/p/10864940.html
如有疑问请与原作者联系

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:数据结构(四):树

下一篇:odoo Windows10启动debug模式报错(Process finished with exit