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 ...
随机推荐
- Connection Manager ->> Multiple Flat File Connection & Multiple File Connection
遍历一个文件夹下的所有文件的方法有两钟:1)使用Multiple Flat File Connection,把所有我们要的文件用"|"作为连接符拼凑出一条connection st ...
- AJAX原生JavaScript写法
GET方式 //创建XMLHttpRequest对象,为考虑兼容性问题,老版本的 Internet Explorer (IE5 和 IE6)使用 ActiveX 对象 var ajax = windo ...
- tree结构统一修改属性名(递归)
1 //data为需要修改的tree,这里主要是为antd design 里面select规范数据 const ass = (data) => { let item = []; data.map ...
- 一个较复杂的执行redis的lue脚本
- 如何将程序添加到Windows桌面右键菜单
在Windows桌面上右键单击鼠标时,将显示默认菜单.如果您想要将其它程序添加到Windows桌面右键菜单中,则可以按照以下步骤执行: 运行WinUtilities上下文菜单管理器 点击添加 选择菜单 ...
- 用jq给link和script标签加随机的版本号(兼容IE5)
$("link,script").each(function(){ var t=Math.random().toFixed(4); /*var $tag=$(this).prop( ...
- Django 数据模型的字段列表整理
一个模型最重要也是唯一必需的部分,是它定义的数据库字段. 字段名称限制: 1.一个字段名不能是一个Python保留字,因为那样会导致一个Python语法错误. 2.一个字段名不能包含连续的一个以上的下 ...
- 【[CQOI2014]数三角形】
lx让做的题,其实很简单,难度评到紫令人吃惊 首先读进来\(n,m\)先\(++\),之后就是一个格点数为\(n*m\)的矩阵了 我们直接求很那做,补集转化一下,我们容斥来做 首先所有的情况自然是\( ...
- php-------面向对象详解
php面向对象详解 面向对象 对象概念是面向对象技术的核心.在显示世界里我们所面对的事情都是对象,如计算机.电视机.自行车等.在面向对象的程序设计中,对象是一个由信息及对信息进行处理的描述所组成的整体 ...
- Codeforces Round #533 (Div. 2) B. Zuhair and Strings 【模拟】
传送门:http://codeforces.com/contest/1105/problem/B B. Zuhair and Strings time limit per test 1 second ...