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)