我是一个初学者程序员,所以如果我没有注意到显而易见的事情,请原谅我。
我的密码生成器遇到了问题。首先,当我运行脚本时代码没有正确执行,它打印“你的密码是:”,没有别的,密码不会生成。
我用断点检查了代码,似乎没有什么异常。我只是需要帮助来解决为什么它不会生成。
再次,如果我没有注意到“明显”,请原谅我。
谢谢!我的代码如下所示:
import random
Characters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
Special_Characters = "~!@#$%^&*()_"
Numbers = "1234567890"
Chosen_Characters = []
Chosen_Special_Characters = []
Chosen_Numbers = []
Password = ""
Nums_amt = 0
S_Character_amt = 0
Character_amt = 0
Total_characters = Nums_amt + S_Character_amt + Character_amt
def Amount_of_Characters():
num = random.randint(1, 9)
return(num)
def Character_chooser(A_o_C, Char_amt, Char):
global Chosen_Characters
for i in range(A_o_C):
Chosen_Characters += [random.choice(Char)]
Char_amt += 1
return(Chosen_Characters)
def Special_Character_chooser(A_o_C, S_Char_amt, S_Char):
global Chosen_Special_Characters
for i in range(A_o_C):
Chosen_Special_Characters += [random.choice(S_Char)]
S_Char_amt += 1
return(Chosen_Special_Characters)
def Number_chooser(A_o_C, Num_amt, Num):
global Chosen_Numbers
for i in range(A_o_C):
Chosen_Numbers += [random.choice(Num)]
Num_amt += 1
return(Chosen_Numbers)
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)
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(one))
Pword += one[temp_num]
two.pop(temp_num)
if i + 1 <= S_Char_amt + Char_amt and i + 1 > Char_amt:
if chooser == 1:
temp_num = random.randint(0, len(two))
Pword += two[temp_num]
two.pop(temp_num)
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)
return(Pword)
A = Amount_of_Characters()
B = Character_chooser(Amount_of_Characters(), Character_amt, Characters)
C = Special_Character_chooser(Amount_of_Characters(), S_Character_amt, Special_Characters)
D = Number_chooser(Amount_of_Characters(), Nums_amt, Numbers)
print("Your password is: " + Assembler(A, B, C, D, Total_characters, S_Character_amt, Character_amt, Nums_amt, Password))