根据用户输入分隔字符串 python

Separating strings based on user-input python

今天早些时候得到了答案,但我想尝试其他方法,以防我可能对我的脚本进行任何更改,所以如果有解决方案,我将不胜感激。

您可以通过 查看我的其他问题的原始代码,但这里是快速浏览一下,它不会涵盖全部内容,但在这里:

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)

这是我的代码的一部分,我无法 post 直接回答,因为如果有人尝试使用它,他们会很困惑,但可以回答您问题的主要部分是:

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)

希望对有同样问题的人有所帮助。