20190112-自定义实现字符串的操作方法,如strip,upper,title,ljust,center,zfill,find,rfind等
1:自定义实现strip()
Python strip() 方法用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列
算法:strip()仅移除首尾的指定字符,不能移除中间的先从首部开始移除
def customerize_strip(s,value=' '):
result =''
front =0
end = len(s)
#step1:找到首部顺序开始一个非指定字符的index
for i in range(len(s)):
if s[i] == value:
continue
else:
front =i
break
#step2:找到尾部倒序开始第一个非指定字符的index
for j in range(len(s)-1,-1,-1):
#range是一个开区间,所有第一个值为len(s)-1,第二个值写作-1,表示取到第0位
if s[j]==value:
continue
else:
end = j
break
for k in range(front,end+1):
result+=s[k]
return result
print(s)
print(customerize_strip(s))
2:自定义实现str.upper()
算法,需要考虑字符串中不仅包含字母,可能还有其他字符的情况
def customerize_upper(s):
result=''
import string
for i in s:
if i in string.ascii_lowercase:
result+=chr(ord(i)-32)
else:
result+=i
return result
print(customerize_upper(s))
3.自定义实现str.lower()
算法,需要考虑字符串中不仅包含字母,可能还有其他字符的情况
def customerize_lower(s):
result=''
import string
for i in s:
if i in string.ascii_uppercase:
result+=chr(ord(i)+32)
else:
result+=i
return result
print(customerize_lower(s))
4.自定义实现str.swapcase()
Python swapcase() 方法用于对字符串的大小写字母进行转换
def customerize_swapcase(s):
result =''
import string
for i in s:
if i in string.ascii_uppercase:
result+=chr(ord(i)+32)
elif i in string.ascii_lowercase:
result+=chr(ord(i)-32)
else:
result+=i
return result
print(customerize_swapcase(s))
5.自定义实现str. capitalize()
Python capitalize()将字符串的第一个字母变成大写,其他字母变小写
def customerize_capitalize(s):
result =''
import string
for i in range(len(s)):
if i==0 and s[i] in string.ascii_lowercase:
result+=chr(ord(s[i])-32)
elif s[i] in string.ascii_uppercase:
result+=chr(ord(s[i])+32)
else:
result+=s[i]
return result
print(customerize_capitalize(s))
6.自定义实现str.title()
Python title() 方法返回"标题化"的字符串,就是说所有单词都是以大写开始,其余字母均为小写
def customerize_title(s):
result =[]
s= s.split()
import string
for i in s:
each =''
for j in range(len(i)):
if j==0 and i[j] in string.ascii_lowercase:
each += chr(ord(i[j])-32)
else:
each += i[j]
result.append(each)
return ' '.join(result)
s1= 'I am a good girl ha ha'
print(customerize_title(s1))
7.自定义实现str.ljust(numbe)
Python ljust() 方法返回一个原字符串左对齐,并使用空格填充至指定长度的新字符串。如果指定的长度小于原字符串的长度则返回原字符串
def customerize_ljust(s,lenth,fillchar=' '):
if lenth<=len(s):
return s
else:
fill =''
for i in range(lenth-len(s)):
fill+=fillchar
result =s+fill
return result
print(customerize_ljust(s1,23,'*'))
print(len(s1))
print(len(customerize_ljust(s1,23,'*')))
8.自定义实现str.center(numbe)
center() 方法返回一个指定的宽度 width 居中的字符串,fillchar 为填充的字符,默认为空格。如果指定的长度小于原字符串的长度则返回原字符串。
def customerize_center(s,lenth,fillchar=' '):
if len(s)>lenth:
return s
else:
result=''
front_period=int((lenth-len(s))/2)
end_period = lenth-front_period-len(s)
for i in range(lenth):
if i<front_period:
result+=fillchar
elif i>=front_period and i<lenth-end_period:
result+=s[i-front_period]
else:
result+=fillchar
return result
s2='aaa'
print(s2)
print(customerize_center(s2,7,'*'))
8.自定义实现zfill
Python zfill() 方法返回指定长度的字符串,原字符串右对齐,前面填充0
def customerize_zfill(s,lenth):
if len(s)>lenth:
return s
else:
result=''
for i in range(lenth):
if i<lenth-len(s):
result+=str(0)
else:
result+=s[i-(lenth-len(s))]
return result
print(customerize_zfill(s2,10))
9.自定义find函数
Python find() 方法检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,如果包含子字符串返回开始的索引值,否则返回-1
def customerize_find(s,str,beg=None,end = None):
if beg == None:
beg = 0
if end ==None:
end = len(s)
for i in range(beg,end):
if s[i:i+len(str)]==str:
return i
else:
return -1
s3='lkadsacedsfhlkwheldsfsdfskadsface'
print(s3)
print(customerize_find(s3,'ace'))
print(customerize_find(s3,'ace',9))
10.自定义实现rfind
Python rfind() 返回字符串最后一次出现的位置(从右向左查询),如果没有匹配项则返回-1
def customerize_rfind(s,str,beg=None,end=None):
if beg == None:
beg = 0
if end ==None:
end = len(s)
for i in range(end,beg-1,-1):
if s[i-len(str):i]==str:
if i-len(str)>=beg:
return i-len(str)
else:
return -1
print(s3)
print(customerize_rfind(s3,'ace'))
print(customerize_rfind(s3,'ace',3,8))
20190112-自定义实现字符串的操作方法,如strip,upper,title,ljust,center,zfill,find,rfind等的更多相关文章
- python 字符串常用操作方法
python 字符串常用操作方法 python 字符串操作常用操作,如字符串的替换.删除.截取.赋值.连接.比较.查找.分割等 1.去除空格 str.strip():删除字符串两边的指定字符,括号的写 ...
- python中字符串的操作方法
python中字符串的操作方法大全 更新时间:2018年06月03日 10:08:51 作者:骏马金龙 我要评论这篇文章主要给大家介绍了关于python中字符串操作方法的相关资料,文中通过示例代码详细 ...
- 【C++实现python字符串函数库】strip、lstrip、rstrip方法
[C++实现python字符串函数库]strip.lstrip.rstrip方法 这三个方法用于删除字符串首尾处指定的字符,默认删除空白符(包括'\n', '\r', '\t', ' '). s.st ...
- JaveScript基础(2)之数据类型转换和常用字符串的操作方法
1.JaveScript数据类型转换: A.转字符串:通过"+"或toString(); PS:如果都是数值类型,'+'会进行求和运算,否则会做字符串连接: var s=2.5;d ...
- C++自定义String字符串类,支持子串搜索
C++自定义String字符串类 实现了各种基本操作,包括重载+号实现String的拼接 findSubStr函数,也就是寻找目标串在String中的位置,用到了KMP字符串搜索算法. #includ ...
- day05数据类型,数字类型,字符串类型,字符串的操作方法,列表类型的操作方法,可变类型与不可变类型
复习 ''' 流程控制 1.顺序结构.分支结构.循环结构 2.if分支结构 if 条件: 代码块 elif 条件: 代码块 else: 代码块 # 可以被if转换为False:0 | '' | Non ...
- Redis自定义动态字符串(sds)模块(一)
Redis开发者在开发过程中没有使用系统的原始字符串,而是使用了自定义的sds字符串,这个模块的编写是在文件:sds.h和sds.c文件中.Redis自定义的这个字符串好像也不是很复杂,远不像ngin ...
- python字符串常用操作方法
python字符串操作常用操作,如字符串的替换.删除.截取.复制.连接.比较.查找.分割等,需要的朋友可以参考下. 1.去除空格str.strip():删除字符串两边的指定字符,括号的写入指定字符,默 ...
- Mysql 自定义随机字符串
前几天在开发一个系统,需要用到随机字符串,但是mysql的库函数有没有直接提供,就简单的利用现有的函数东拼西凑出随机字符串来.下面简单的说下实现当时. 1.简单粗暴. select ..., subs ...
随机推荐
- nginx 开启gzip压缩--字符串压缩比率很牛叉
刚刚给博客加了一个500px相册插件,lightbox引入了很多js文件和css文件,页面一下子看起来非常臃肿,所以还是把Gzip打开了. 环境:Debian 6 1.Vim打开Nginx配置文件 v ...
- zan扩展安装
官方地址 https://github.com/youzan/zan //提示缺少libcurl扩展时候安装 yum install libcurl-devel //安装完zan.so php -m提 ...
- UNIX和linux系统性能监控工具oswatcher
可以在一台机器上运行oswatcher.把运行的结果拷贝到有vnc的机器上进行分析.java -jar oswbba.jar -i /mnt/hgfs/database/oswbb/archive . ...
- Simotion 凸轮同步,偏移凸轮起点
将同步对象的 SyncingMotion.camReferenceBySlaveModeRelative 修改为 POSITION_AT_START_OF_CAMMING myRetDINT := _ ...
- Hibernate初探之一对多映射 及 myeclipse自动生成hibernate文件方法
实现单向一对多: 1)在one方的实体中添加保存many方的集合 2)在one方的配置文件中添加<one-to-many>配置 实现单向多对一: 1)在many方的实体中添加one方的引用 ...
- February 15 2017 Week 7 Wednesday
Youth is not a time of life, it is a state of mind. 青春不是一段年华,而是一种心境. Likewise, maturity is not a tim ...
- Future Research Directions in Social Recommendation
From the tutorial published by Martin Ester in RecSys 2013 Future Research Directions --Recommendati ...
- MongoDB删除文档
db.collection.deleteOne() 删除单个文档db.collection.deleteMany() 删除多个文档db.collection.remove() 删除单/多个文档,db. ...
- Java反编译工具Jad及插件JadClipse配置教程
Jad是一个Java的一个反编译工具,和eclipse的插件JadClipse,二者结合可以方便的在eclipse中查看class文件的源代码. 下面介绍一下配置: 下载JadClipse,http: ...
- php 日志扩展
今天发现一个比较好的php应用日志扩展,这里先mark一下,回头有空再详细介绍: http://neeke.github.io/SeasLog/