经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » Python » 查看文章
封装系统内置功能的函数(字符串)
来源:cnblogs  作者:Python及时行乐  时间:2019/5/15 9:19:24  对本文有异议

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

  1. def myLower(src):
  2. src1 = ''
  3. for i in src:
  4. if 'A' <= i <= 'Z':
  5. src1 += chr(ord(i) + 32)
  6. else:
  7. src1 += i
  8. return src1
  9. #print(myLower('AcdEjlG'))

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

  1. def myUpper(src):
  2. src1 = ''
  3. for i in src:
  4. if 'a' <= i <= 'z':
  5. src1 += chr(ord(i) - 32)
  6. else:
  7. src1 += i
  8. return src1
  9. #print(myUpper('aCdEf'))


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

  1. 第一种思路:
  2. def myFind1(src,sub):
  3. for i in range(len(src)-len(sub)+1):
  4. new_src = src[i:i+len(sub)]
  5. #print(new_src)
  6. if new_src == sub:
  7. return i
  8. else:
  9. return -1
  10. print(myFind1('abcde123abe','123a'))
  11. 第二种思路:
  12. def myFind(src,sub):
  13. if len(sub) > len(src):
  14. return -1
  15. for i in range(len(src)):
  16. if src[i] == sub[0]:
  17. index = i
  18. for j in range(len(sub)):
  19. if src[index] != sub[j]:
  20. break
  21. index += 1
  22. else:
  23. return i
  24. else:
  25. return -1

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

  1. 第一种思路:
  2. def myRfind(src,sub):
  3. #从右往左进行遍历
  4. for i in range(len(src)-1,-1,-1):
  5. #先找第一个字符,如果一致,在进行对应切片比较
  6. if sub[0] == src[i]:
  7. #如果切片出来的结果与子串一致,返回所在的索引值
  8. if sub == src[i:i+len(sub)]:
  9. return i
  10. #如果没找到,返回-1
  11. else:
  12. return -1
  13. # index = myRfind('abc123','c1')
  14. # print(index)
  15. 第二种思路:
  16. def myRfind(src,sub):
  17. if len(sub) > len(src):
  18. return -1
  19. for i in range(-1,-len(src)-1,-1):
  20. if src[i] == sub[0]:
  21. index = i
  22. for j in range(len(sub)):
  23. if src[index] != sub[j]:
  24. break
  25. index += 1
  26. else:
  27. return len(src) + i
  28. else:
  29. return -1
  30. #print(myRfind('abcdegabeda','ab'))

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

  1. def myIsdigit(src):
  2. for ch in src:
  3. if not '0' <= ch <= '9':
  4. return False
  5. else:
  6. return True
  7. print(myIsdigit('123'))
  8. print(myIsdigit('123a'))

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

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

 

原文链接:http://www.cnblogs.com/ilovepython/p/10864940.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号