俺写不出来ballball各位有人会吗
加入了号码初步判断,不要的去掉while那两行
字串转列表替换比较简洁: idlst[6:14] = ['*']*8
idstr = input('请输入身份证号:')
while(len(idstr)!=18 or (idstr[-1]!='X' and not idstr.isnumeric()) or (idstr[-1]=='X' and not idstr[:-1].isnumeric())):
idstr = input('身份证号不正确,请重输:')
idlst = list(idstr)
idlst[6:14] = ['*']*8
print('替换之后为:',''.join(idlst))
不转列表,直接用 字符串切片 相接也行:
idstr = input('请输入身份证号:')
while(len(idstr)!=18 or (idstr[-1]!='X' and not idstr.isnumeric()) or (idstr[-1]=='X' and not idstr[:-1].isnumeric())):
idstr = input('身份证号不正确,请重输:')
idstr = idstr[:6] + '*'*8 + idstr[-4:]
print('替换之后为:',idstr)
str_1 = input("请输入一个18位的身份证号:")
str_2=str(str_1)
str_3=str_2[0:5]+"********"+str_2[-1:-4]
print(str_3)
#望采纳