2024-09-24 02:21:47 发布
网友
我在制作这个程序时遇到了麻烦。 我需要的是一个程序,它将询问用户卡的数量,示例输入如下:
in1 = '1234 4214 1521 5132' in2 = '52310259 1269102392'
输出应如下所示:
它应该显示输入的最后4位数字。你们能帮我用python编写这个程序吗。在
谢谢你的帮助
也可以使用regex,例如:
import re p= re.compile(r'(\d{4})$')
Try it online!
import re def mask(string, digits_to_keep=4, mask_char='x'): num_of_digits = sum(map(str.isdigit, string)) digits_to_mask = num_of_digits - digits_to_keep masked_string = re.sub('\d', mask_char, string, digits_to_mask) return masked_string
这样可以得到:
你可以这样做:
credit1 = '1234 4214 1521 5132' credit2 = '52310259 1269102392' s = credit1[-4:].rjust(len(credit1), '*') print(s) s = credit2[-4:].rjust(len(credit2), '*') print(s)
您得到的输出是:
另一种使用regex的解决方案:
import re print(re.sub('\d', '*', credit1[:-4]) + credit1[-4:]) print(re.sub('\d', '*', credit2[:-4]) + credit2[-4:])
将保留空格,输出为:
**** **** **** 5132 ******** ******2392
编辑 用户希望保留k位数的解决方案:
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的输出是:
k=3/4/5/6/7
**** **** **** *132 ******** *******392 **** **** **** 5132 ******** ******2392 **** **** ***1 5132 ******** *****02392 **** **** **21 5132 ******** ****102392 **** **** *521 5132 ******** ***9102392
也可以使用regex,例如:
Try it online!
这样可以得到:
^{pr2}$你可以这样做:
您得到的输出是:
^{pr2}$另一种使用regex的解决方案:
将保留空格,输出为:
编辑 用户希望保留
k
位数的解决方案:k=3/4/5/6/7
的输出是:相关问题 更多 >
编程相关推荐