2013-03-20 1 views
0

비밀번호 생성기를 만들었습니다. 16 개이므로 가장 좋지 않을 수 있습니다. 그리고 8 0을 출력하고 01100101을 입력 한 다음 비밀번호를 출력합니다. FG4v10Y6과 같이 암호에 "10"이 있으면 다른 문자를 추가하므로 FG4v10Y6이 FG4v10Y6M이 될 수 있으므로 FG4v10Y6은 9 개 이상의 문자가 있으므로 "10"이 몇 개인 지에 따라 다릅니다.내 비밀번호 생성기에 문제가 있습니다

왜 이런 일을하는지 잘 모르겠습니다. 고마워!

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) 

왜 일부 코드는 코드에서 이상하게 나왔고 어떻게 수정합니까?

+0

나는 당신이 요구하는 것을 이해하는지 잘 모르겠습니다. 문제는 단지 줄'num1 = random.randint (0,10)'이 0에서 10까지의 값을 반환합니다 (종점 포함)? [문서화 됨] (http://docs.python.org/2/library/random.html#random.randint)입니다. 더 높은 값을 포함하고 싶지 않으면'random.randrange'를 시도하십시오. – Blckknght

답변

0

암호 생성기가 동전을 뒤집어서 문자 또는 숫자를 추가합니다. 숫자를 추가하기로 선택하면 추가 할 번호를 선택합니다.

num1 = random.randint(0,10) 

그러나 단 하나의 숫자 만 반환합니다. 11 가지 가능한 값 중 하나를 반환합니다. 0과 10 사이의 숫자입니다. 그래서 11시에 한 번, 문자열에 숫자 10을 더합니다. 물론 두 자리입니다.

당신이 원하는 :

num1 = random.randint(0,9) 

대신 한 자리를 추가 할 수 있습니다.

+0

오하이오 감사합니다. 나는 그것이 정말로 단순한 무엇인가 인 것이 기쁘다. 그러나 동시에 그것을 알고 있어야했다. – PygamePi