输入:一个18个数字的身份证号码
输出:替换后的字符
俺写不出来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)