#10. 实现字符串的upper、lower以及swapcase方法
#upper:
def upper(s):
result=''
for i in s:
if i>='a' and i<='z':
result+=chr(ord(i)-32)
else:
result+=i
return result
print(upper('df134sdA'))
#lower:
def lower(s):
result=''
for i in s:
if i>='A' and i<='Z':
result+=chr(ord(i)+32)
else:
result+=i
return result
print(lower('safWQERWE12334'))
#swapcase:
def swapcase(s):
result=''
for i in s:
if i>='a' and i<='z':
result+=chr(ord(i)-32)
elif i>='A' and i<='Z':
result+=chr(ord(i)+32)
else:
result+=i
return result
print(swapcase('affDFE12343***'))
#11. 实现字符串的find方法
#查找一个字符
def find(s,target_str):
if not isinstance(s,str) and not isinstance(target_str,str):
return False
result=[]
for i in range(len(s)):
if s[i]==target_str:
result.append(i)
return result
print(find('afdfddfd','d'))
#查找多个字符
def find(s,target_str):
if not isinstance(s,str) and not isinstance(target_str,str):
return False
result=[]
start=0
length=len(target_str)
for i in range(len(s)):
if s[i:i+length]==target_str:
result.append(i)
start+=length
else:
start+=1
return result
print(find('abababdadfdfab','ab'))
#12. 实现字符串的isalpha方法
import string
def isalpha(s):
if not isinstance(s,str):
return False
for i in s:
if i not in string.ascii_letters:
return False
else:
return True
print(isalpha('dfdsf'))
print(isalpha('dfd3243'))
13. 实现字符串的isdigit方法
import string
def isdigit(s):
if not isinstance(s,str):
return False
for i in s:
if i not in string.digits:
return False
return True
print(isdigit('221q232'))
print(isdigit('355466'))
#14. 实现字符串的isalnum方法
import string
def isalnum(s):
if not isinstance(s,str):
return False
for i in s:
if i not in string.ascii_letters and i not in string.digits:
return False
else:
return True
print(isalnum('ssdfd3243'))
print(isalnum('dfsad'))
print(isalnum('34234'))
print(isalnum('*er313'))
#15. 实现字符串的join方法
def join(s,join_str=None):
if join_str==None:
join_str=''
result=''
for i in s:
result+=i+join_str
if join_str=='':
return result
else:
return result[:-1] #开区间,最后一位不用加上join_str
print(join(['a','b','c']))
print(join(['a','b','c'],'*'))
#16. 实现字符串的replace方法
def replace(s,sub,dest,times=None):
if times == None:
times = s.count(sub)
sub_index = []#sub的索引位置
sub_length = len(sub)
dest_length = len(dest)
s = list(s)
for i in range(len(s)):
if s[i:i + sub_length] == list(sub):
sub_index.append(i)
n = 0#记录替换次数
print(n)
for index in sub_index:
if times > 0:
#每次替换后子串往后移动的位数
offset = n*(dest_length - sub_length )
#更新需要替换的index位置
index = index + offset
s[index : index + sub_length] = list(dest)
n += 1
times -= 1
return "".join(s)
print(replace("abca1a","a","xy"))
python 练习2020/7/19
最新推荐文章于 2024-10-05 08:57:27 发布