#16、实现字符串的replace方法
‘‘‘
def replace(s,old_str,new_str):
result =""
for i in range(len(s)):
if s[i:i+len(old_str)]==old_str:
result +=new_str
else:
result +=s[i]
return result
print(replace(‘this‘,‘is‘,‘ewo‘))
‘‘‘
#17、实现字符串的split方法
‘‘‘
def split(s,str=" "):
result =[]
index =0
for i in range(len(s)):
if s[i:i+len(str)]==str:
result.append(s[index:i])
index =i+len(str)
result.append(s[index:i])
return result
print(split(‘this is string example‘))
‘‘‘
#18、实现字符串的strip方法
‘‘‘
def strip(s,str=" "):
result =""
for i in range(len(s)):
if s[i]!=str:
result +=s[i:]
break
for j in range(len(result)-1,0,-1):
if result[j]!=str:
result =result[:j+1]
break
return result
print(strip(" this "))
print(strip(" a b c "))
‘‘‘
#19、报数问题:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),
#凡报到3的人退出圈子,问最后留下的是原来第几号的那位
‘‘‘
s=list(range(1,10))
def func(s,i=1):
if not (isinstance(s,list) and len(s)>=3):
return None
while 1:
result =[]
for i in range(len(s)):
if (i+1)%3==0:
continue
else:
result.append(s[i])
s=result
if len(s)<3:
break
return s
for j in func(s):
print(s.index(j)+1)
print(func(s))
‘‘‘
#20、由单个字母组成的list,从键盘读入两个整数m、n(n>m),
#打印出list[m,n]之间的字母能组成的所有n-m+1位不同的字符串
import random
import math
list = [‘a‘, ‘b‘, ‘c‘,‘d‘,‘e‘, ‘f‘, ‘d‘, ‘h‘, ‘f‘, ‘g‘]
m = int(input("输入整数m:"))
n = int(input("输入整数n:"))
while 1:
if n <= m:
print("输入的n要大于或等于m")
n = int(input("请重新输入整数n:"))
else:
break
list_tmp = list[m:n]
print(math.factorial(len(list_tmp)))
result = []
while 1:
random.shuffle(list_tmp)
#将序列的所有元素随机排序
str1 = "".join(list_tmp)
if str1 not in result:
result.append(str1)
if len(result) == math.factorial(len(list_tmp)):
#math.factorial算阶乘的方法
break
print(result)
0512--习题
原文:https://www.cnblogs.com/wenm1128/p/10854088.html