0

私はパスワード ジェネレーターを作成しました - 私はまだ 16 歳なので、おそらく最高ではありません - 8 0 と 01100101 のようなものを出力し、パスワードを出力する enderneath を出力します。FG4v10Y6 のようにパスワードに「10」がある場合、別の文字が追加されるため、FG4v10Y6 ではなく FG4v10Y6M になり、「10」の数に応じて 9 文字以上になります。

なぜこれをやっているのかわからないので、助けてください。サンクス!

import pygame
import random

pygame.init()

#letters

reg = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z']

CAP = ['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z']

final_pass = []
num_let_list = []
new_list = []

i = 0

file = open("password_test","w")


def num_list_gen(num_list):
    for i in range(8):
        num_let_list.append(random.randint(0,1))
        i += 1

    for each in num_let_list:
        each = str(each)
        new_list.append(each)   
    print ''.join(new_list)

def CAP_reg_num(final_pass,num_let_list,CAP,reg):
    for each in num_let_list:
        if each == 0:
            cap_reg = random.randint(0,1)
            if cap_reg == 0:
                let1 = random.randint(0,25)
                final_pass.append(reg[let1])
            if cap_reg == 1:
                let1 = random.randint(0,25)
                final_pass.append(CAP[let1])
        if each == 1:

                    num1 = random.randint(0,10)
            num1 = str(num1)
                    final_pass.append(num1)

def main(CAP,reg,num_let_list,final_pass):
    num_list_gen(num_let_list)
    CAP_reg_num(final_pass,num_let_list,CAP,reg)
    print ''.join(final_pass)
    file.write(''.join(final_pass))
    file.close

main(CAP,reg,num_let_list,final_pass)

いくつかの場所でコードがおかしくなったのはなぜですか?どうすれば修正できますか?

4

1 に答える 1

0

パスワード ジェネレーターがコインを投げて、文字を追加するか数字を追加するかを選択しています。数値を追加する場合は、追加する数値を選択します。

num1 = random.randint(0,10)

ただし、これは 1 桁の数字を返しません。11 の可能な値 (0 から 10 までの数値) のいずれかを返します。したがって、11 回に 1 回、数値 10 が文字列に追加されます。これはもちろん 2 桁です。

あなたがしたい:

num1 = random.randint(0,9)

代わりに 1 桁を追加します。

于 2013-03-20T06:01:46.817 に答える