2017-12-04 12 views
1

간단한 암호 생성기를 만들려고하지만 내 기능이 원하는 결과 나 결과를 얻지 못하는 것입니다. 나는. 빈 목록을 확장하기 위해 합산하지 않습니다. 내가 뭐라도 바꿔야 할까?내 기능이 작동하지 않는 이유는 무엇입니까?

import random 

def passstrength(): 
    return input("Please state how strong you have the password to be? (1 = strongest, 2 = medium, 3 = weakest): ") 

passstrength = passstrength() 

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

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

list3 = [1,2,3,4,5,6,7,8,9,0] 

list4 = ["@","$","%","&"] 

r = [] 

def getpass(x): 
    return random.sample(x,2) 

def mergepass(first,second,third): 
    if passstrength == 1: 
     a = getpass(first) 
     b = getpass(second) 
     c = getpass(third) 
     r = (a + b + c) 
     return r 
    elif passstrength == 2: 
     a = getpass(first) 
     b = getpass(second) 
     r = (a + b) 
     return r 
    else: 
     a = getpass(first) 
     r = (a) 
     return r 

print (mergepass(list1,list2,list3)) 

답변

0

passstrength는 당신이 int에 비교할 때 너무 실패 문자열로 전달됩니다.

당신은 수행하여 문제를 해결할 수 있습니다

passstrength = int(passstrength())