def sub_use_xing(str):
'''
输入一个字符串,把与字符串的第一个字母相同的字母替换成‘*’
:param str:
:return:
'''
for i in range(1, len(str)):
if str[i] == str[0]:
str = str[:i] + '*' + str[i+1:]
return str
主程序
str = input('please input a string:')
print(sub_use_xing(str))
输入:babbleab
输出:ba**lea*
遇到的问题,切片操作不会报下标越界,但是访问越界下标会报错:
str = 'babbleab'
print(str[8:]) # 输出空
print(str[8]) # 报错,IndexError: string index out of range
另种解法:
def sub_use_xing(str):
'''
输入一个字符串,把与字符串的第一个字母相同的字母替换成‘*’
:param str:
:return:
'''
l = [str[0]]
for i in range(1, len(str)):
if str[i] == str[0]:
l.append('*')
else:
l.append(str[i])
return ''.join(l)