首页 > 解决方案 > 如何使用python屏蔽输入并显示最后4位数字

问题描述

我在制作这个程序时遇到了麻烦。我需要的是一个程序,它会询问用户卡的数量,示例输入是这样的:

in1 = '1234 4214 1521 5132'
in2 = '52310259 1269102392'

输出应如下所示:

'xxxx xxxx xxxx 5132'
'xxxxxxxx xxxxxx2392'

它应该显示输入的最后 4 位。你们能帮我用python这个程序吗?

将不胜感激一些帮助

标签: python

解决方案


你可以这样做:

credit1 = '1234 4214 1521 5132'
credit2 = '52310259 1269102392'

s = credit1[-4:].rjust(len(credit1), '*')
print(s)
s = credit2[-4:].rjust(len(credit2), '*')
print(s)

你得到的输出是:

***************5132
***************2392

使用正则表达式的另一种解决方案:

import re
print(re.sub('\d', '*', credit1[:-4]) + credit1[-4:])
print(re.sub('\d', '*', credit2[:-4]) + credit2[-4:])

将保留空格,输出为:

**** **** **** 5132
******** ******2392

编辑k针对用户希望保留位数 的情况的解决方案:

import re
k = 7
c1 = len(re.sub("[^0-9]", "", credit1)) - k
c2 = len(re.sub("[^0-9]", "", credit2)) - k

print(re.sub('\d', '*', credit1, c1))
print(re.sub('\d', '*', credit2, c2))

的输出k=3/4/5/6/7是:

**** **** **** *132
******** *******392

**** **** **** 5132
******** ******2392

**** **** ***1 5132
******** *****02392

**** **** **21 5132
******** ****102392

**** **** *521 5132
******** ***9102392

推荐阅读