Ваша ошибка заключается в основном в Ассемблере
Ошибка 1: Total_char, S_Character_amt, Character_amt, Nums_amt
Запустите это:
def Assembler(A_o_C, C_c, S_C_c, N_c, Total_char, S_Char_amt, Char_amt, Num_amt, Pword):
one = random.shuffle(C_c)
two = random.shuffle(S_C_c)
three = random.shuffle(N_c)
print(Total_char)
for i in range(Total_char):
chooser = random.randint(1, 3)
if i + 1 <= Char_amt:
if chooser == 1:
temp_num = random.randint(0, len(Numbers)-1)
Pword += Numbers[temp_num]
two.pop(temp_num)
print("A")
if i + 1 <= S_Char_amt + Char_amt and i + 1 > Char_amt:
if chooser == 1:
temp_num = random.randint(0, len(Special_Characters))
Pword += Special_Characters[temp_num]
two.pop(temp_num)
print("B")
if i + 1 > S_Char_amt + Char_amt:
if chooser == 1:
temp_num = random.randint(0, len(three))
Pword += three[temp_num]
two.pop(temp_num)
print("C")
print(Pword)
return(Pword)
Вы заметите, что ваш Total_Char всегда равен 0, поэтому for l oop никогда не выполнялся. Это потому, что ваши Total_characters изначально были определены как 0
Nums_amt = 0
S_Character_amt = 0
Character_amt = 0
Total_characters = Nums_amt + S_Character_amt + Character_amt # 0+0+0
После чего выведите все ваши другие amts:
print(Total_characters) #0
print(S_Character_amt) #0
print(Character_amt) #0
print(Nums_amt) #0
Итак, по сути, пример запуска того, что ваши действия были
Assembler (6, ['l', 'Z', 'w', 'e', 'O', 'K', 't'], ['#', ' % ',' # ',' (',' * ',' $ ',' ^ ',') '], [' 3 ',' 2 ',' 3 ',' 8 '], 0, 0, 0, 0, "")
Ошибка 2: Shuffle
random.shuffle () перемешивает элемент списка на месте и возвращает None, таким образом, один, два и три - все Нет Типы
random.shuffle (C_ c) сам по себе достаточно, и вы можете заменить все в ассемблере обратно на C_ c. Аналогичным образом для двух и трех
Ошибка 3: L oop условие
Какое отношение ваш индекс l oop имеет к длине массива символов ? Вам, вероятно, следует смотреть только на длину ваших массивов. Если в списке уже ничего нет, пропустите.