这题包含了太多情况,要考虑最后一个字符是数字还是字符,开头是不是数字等,还需要考虑是否没有数字。综合看,逻辑题。
while True: try: str1 = str(input()) flag = 0 k = [] for i in range(len(str1)): if(flag == 0 and '0' <= str1[i] <= '9'): flag = 1 k.append(i) elif(flag == 1 and (str1[i] > '9'or str1[i] < '0')): flag = 0 k.append(i) if(len(k) == 0): print(str1) else: res_str = '' for i in range(len(k)): if(i == 0): if(k[i] != 0): res_str = res_str + str1[0:k[i]] + '*' else: res_str = res_str + '*' elif(i == len(k) - 1): res_str = res_str + str1[k[i-1]:k[i]] + '*' + str1[k[i]:] if('0' <= str1[k[i]] <= '9'): res_str += '*' else: res_str = res_str + str1[k[i-1]:k[i]] + '*' print(res_str) except: break