#习题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:\Users\dell>py -3 C:\Users\dell\Desktop\练习\5\0504.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:\Users\dell>py -3 C:\Users\dell\Desktop\练习\5\0504.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:\Users\dell>py -3 C:\Users\dell\Desktop\练习\5\0504.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:\Users\dell>py -3 C:\Users\dell\Desktop\练习\5\0504.py
2
0

 

 

 

 

 

 

 










posted on 2019-05-04 23:08  腿短毛不多  阅读(217)  评论(0编辑  收藏  举报