0

私は初心者のプログラマーなので、明らかなことに気づいていない場合はご容赦ください。

パスワードジェネレーターで問題が発生しました。まず、スクリプトを実行するとコードが正しく実行されず、「Your password is: 」と表示され、パスワードが生成されません。

ブレークポイントを使用してコードをチェックしましたが、異常はないようです。なぜ生成されないのかを解決するために助けが必要です。

繰り返しますが、「明らか」に気付いていない場合はご容赦ください。

ありがとう!そして私のコードを以下に示します:

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))
4

2 に答える 2