我今天早些时候发布了这篇文章,我得到了答案,但我想尝试其他东西,以防我可能对脚本进行任何更改,所以如果这能得到解决方案,我将不胜感激。
你可以通过这个链接查看我的另一个问题的原始代码,但这里有一个快速的查看,它不会涵盖全部内容,但它在这里:
import re
string = "RV49CJ0AUTS172Y"
length = int(len(string) / 3)
separated = "-".join(re.findall('.{%d}' % length, string))
print(separated)
所以我有这个:
2 = 14
3 = 12-15-18-21
4 = 12-16
5 = 10-5
这就是我需要的分隔部分,左边的数字是我希望字符串也被分隔的部分的数量,右边的数字是用户可以输入的长度,根据用户的输入,字符串应该根据数字返回的位置进行分隔。例如,如果用户选择18作为长度,则字符串应分为3部分。如果用户选择16,则字符串将分为4部分,依此类推
Char_18 = AS0MN5R1V85HN10OLA
separated = AS0MN5-R1V85H-N10OLA
Char_16 = NAH9186GMZLO1P09
separated = NAH9-186G-MZLO-1P09
那么我该如何将其应用于我的脚本呢?任何帮助都会很棒!
如果将来有人想要,我找到了答案,所以这里是:
import re
chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
numbers = "0123456789"
all = chars + numbers
while True:
length = int(input("Select the length you want for your key: "))
if 5 <= length <= 21:
break
length_1 = 0
div_2 = 14
div_3 = 12,15,18,21
div_4 = 16,20
div_5 = 10,5
if length % div_2 == 0:
length_1 = 2
elif any(length % i == 0 for i in div_3):
length_1 = 3
elif any(length % i == 0 for i in div_4):
length_1 = 4
elif any(length % i == 0 for i in div_5):
length_1 = 5
key = "".join(random.sample(all, length))
length_2 = int(len(key) / length_1)
separated = "-".join(re.findall('.{%d}' % length_2, key)
这是我代码的一部分,我无法发布直接的答案,因为如果有人试图使用它,他们会很困惑,但可以回答你问题的主要部分是:
while True:
length = int(input("Select the length you want for your key: "))
if 5 <= length <= 21:
break
length_1 = 0
div_2 = 14
div_3 = 12,15,18,21
div_4 = 16,20
div_5 = 10,5
if length % div_2 == 0:
length_1 = 2
elif any(length % i == 0 for i in div_3):
length_1 = 3
elif any(length % i == 0 for i in div_4):
length_1 = 4
elif any(length % i == 0 for i in div_5):
length_1 = 5
这个:
length_2 = int(len(key) / length_1)
separated = "-".join(re.findall('.{%d}' % length_2, key)
我希望这对任何有同样问题的人都有帮助。