#习题5:自定义实现str.swapcase()
Python swapcase() 方法用于对字符串的大小写字母进行转换。
swapcase()方法语法:
str.swapcase();
#大写转换成小写,小写转换成大写
def change_swapcase(string): result ="" for i in string: if i>=chr(ord('a')) and i<=chr(ord('z')): result +=chr(ord(i)-32) else: result +=chr(ord(i)+32) return result print(change_swapcase("hdjDWhdkWO"))
C:Usersdell>py -3 C:UsersdellDesktop练习5 504.py
HDJdwHDKwo
#习题6:自定义实现str. capitalize()
Python capitalize()将字符串的第一个字母变成大写,其他字母变小写。
capitalize()方法语法:
str.capitalize()
def get_capitalize(s): result ="" for i in range(len(s)): if i==0 and s[i]>=chr(ord('a')) and s[i]<=chr(ord('z')): result +=chr(ord(s[i])-32) elif s[i]>=chr(ord('A')) and s[i]<=chr(ord('Z')): result +=chr(ord(s[i])+32) else: result +=s[i] return result print(get_capitalize("sdsjkeKLJ"))
#习题7:自定义实现str.title()
Python title() 方法返回"标题化"的字符串,就是说所有单词的首个字母转化为大写,其余字母均为小写(见 istitle())
title()方法语法:
str.title();
s="i am a good boy" def string_title(s): result ="" temp_result ="" for i in s.split(): if i[0]>=chr(ord('a')) and i[0]<=chr(ord('z')): temp_result =chr(ord(i[0])-32)+i[1:] result +=temp_result return result print(string_title(s))
#习题8:自定义实现str.ljust(number)
ljust() 方法返回一个原字符串左对齐,并使用空格填充至指定长度的新字符串。如果指定的长度小于原字符串的长度则返回原字符串。
ljust()方法语法:
str.ljust(width[, fillchar])
参数
- width -- 指定字符串长度。
- fillchar -- 填充字符,默认为空格
- #算法:比较指定的长度与原字符串的长度大小,小的话直接返回原字符串,否则使用空格填充至指定长度然后返回新字符串
def str_ljust(s,width,fillchar=" "): if (not isinstance(width,int)) or width <=len(s): return s string_length=width-len(s) if string_length<=0: return s else: return s+fillchar*string_length print(str_ljust("abc",'2',"*")) print(str_ljust("abc",8,"*"))
#习题9:自定义实现str.center(number)
center() 方法返回一个指定的宽度 width 居中的字符串,fillchar 为填充的字符,默认为空格。
center()方法语法:
str.center(width[, fillchar])
参数
- width -- 字符串的总宽度。
- fillchar -- 填充字符。
def str_center(s,width,fillchar=" "): if (not isinstance(width,int)) or width <=len(s): return s string_length=width-len(s) if string_length%2==0: return fillchar*(string_length//2)+s+fillchar*(string_length//2) else: return fillchar*(string_length//2)+s+fillchar*(string_length//2+1) print(str_center("ab",6,"*")) print(str_center("abc",6,"*"))
C:Usersdell>py -3 C:UsersdellDesktop练习5 504.py
**ab**
*abc**
#习题10:自定义实现zfill
Python zfill() 方法返回指定长度的字符串,原字符串右对齐,前面填充0。
zfill()方法语法:
str.zfill(width)
width -- 指定字符串的长度。原字符串右对齐,前面填充0。
def str_zfill(s,width,fillchar="0"): if (not isinstance(width,int)) or width <=len(s): return s string_length=width-len(s) if string_length<=0: return s else: return fillchar*string_length+s print(str_zfill("abc",'2')) print(str_zfill("abc",8))
C:Usersdell>py -3 C:UsersdellDesktop练习5 504.py
abc
00000abc
#习题11:自定义find函数
find() 方法检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,如果指定范围内如果包含指定索引值,返回的是索引值在字符串中的起始位置。如果不包含索引值,返回-1。
find()方法语法:
str.find(str, beg=0, end=len(string))
- str -- 指定检索的字符串
- beg -- 开始索引,默认为0。
- end -- 结束索引,默认为字符串的长度。
返回值
如果包含子字符串返回开始的索引值,否则返回-1。
def str_find(s,str_searched): if (not isinstance(s,str)) or (not isinstance(str_searched,str)): return "type error" elif len(str_searched) >len(s): return -1 elif len(str_searched)==len(s): return 0 else: for i in range(len(s)-len(str_searched)+1): if s[i:i+len(str_searched)]==str_searched: return i#返回索引位置 else: return -1 print(str_find('abc','c')) print(str_find("abc",'abc'))
C:Usersdell>py -3 C:UsersdellDesktop练习5 504.py
2
0