我今天早些時候發布了這篇文章,我得到了答案,但我想嘗試其他方法,以防我對腳本進行任何更改,因此如果有解決方案,我將不勝感激。
您可以通過此鏈接查看我的其他問題的原始代碼,但這里可以快速瀏覽一下,它不會涵蓋整個內容,但這里是:
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
那么我如何將它應用到我的腳本中呢?任何幫助都會很棒!
uj5u.com熱心網友回復:
如果將來有人想要它,我找到了答案,所以這里是:
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)
我希望這對有相同問題的人有所幫助。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/399302.html
