import random   #randint(a,b)  

ajto=[]

def F1():

    print('1. feladat')
    fbe=open('ajto.txt','r')
    for sor in fbe:
        sor=sor.rstrip()        #enter eltávolítása
        ajto.append(sor)        #elem a listába kerül

    fbe.close()

def F2():

    print('2. feladat')
    global nyitokod         #globális adat lesz
    nyitokod=input('Adja meg, mi nyitja a zárat! ')

def F3():

    print('3. feladat')
    print('A nyitó kódszámok sorai:',end=' ')

    #kiválogatás
    for i,kod in enumerate(ajto,start=1):
        if kod==nyitokod:
            print(i,end=' ')
    print()

def F4():
    print('4. feladat')
    nincs=True
    i=0
    while i<len(ajto) and nincs:
        lista=list(ajto[i])         # list('239451') ---> ['2','3','9',...]
        halmaz=set(lista)           # ['3','3','9',...] --> {'3','9',...}
        if len(halmaz)<len(lista):
            nincs=False
        i+=1
    
    if nincs:
        print('Nem volt ismétlődő számjegy.')
    else:
        print('Az első ismétlődést tartalmazó próbálkozás sorszáma: ',i)

    '''
    van=False
    for i,kod in enumerate(ajto):
        lista=list(ajto[i])         # list('239451') ---> ['2','3','9',...]
        halmaz=set(lista)           # ['3','3','9',...] --> {'3','9',...}
        if len(halmaz)<len(lista):
            van=True
            break

    if van:
        print('Az első ismétlődést tartalmazó próbálkozás sorszáma: ',i+1)
    else:
        print('Nem volt ismétlődő számjegy.')
    '''

def F5():
    print('5. feladat')

    ujkod=[]
    while len(ujkod)!=len(nyitokod):
        b=str(random.randint(0,9))      # 6 ---> '6' str(6)='6' 
        if b not in ujkod:
            ujkod.append(b)
    
    ujkod=''.join(ujkod)

    print('Egy %d hosszú kódszám: %s' %(len(ujkod),ujkod))


def nyit(jo, proba):
    egyezik=(len(jo)==len(proba))
    if egyezik:
        elteres=ord(jo[0])-ord(proba[0])
        for i in range(1,len(jo)):
            if (elteres - (ord(jo[i])-ord(proba[i])) ) % 10 != 0:
                egyezik=False

    return egyezik

def F7():
    print('7. feladat')

    fki=open('siker.txt','w')

    for kod in ajto:
        if len(kod)!=len(nyitokod):
            print(kod,'hibás hossz',file=fki)
        else:
            if nyit(kod,nyitokod):
                print(kod,'sikeres',file=fki)
            else:
                print(kod,'hibás kódszám',file=fki)

    fki.close()
   
#*****************************F Ő M O D U L**************************************
F1()
F2()
F3()
F4()
F5()
F7()