zar201605idny.py
1    import random   #randint(a,b)  
2    
3    ajto=[]
4    
5    def F1():
6    
7        print('1. feladat')
8        fbe=open('ajto.txt','r')
9        for sor in fbe:
10           sor=sor.rstrip()        #enter eltávolítása
11           ajto.append(sor)        #elem a listába kerül
12   
13       fbe.close()
14   
15   def F2():
16   
17       print('2. feladat')
18       global nyitokod         #globális adat lesz
19       nyitokod=input('Adja meg, mi nyitja a zárat! ')
20   
21   def F3():
22   
23       print('3. feladat')
24       print('A nyitó kódszámok sorai:',end=' ')
25   
26       #kiválogatás
27       for i,kod in enumerate(ajto,start=1):
28           if kod==nyitokod:
29               print(i,end=' ')
30       print()
31   
32   def F4():
33       print('4. feladat')
34       nincs=True
35       i=0
36       while i<len(ajto) and nincs:
37           lista=list(ajto[i])         # list('239451') ---> ['2','3','9',...]
38           halmaz=set(lista)           # ['3','3','9',...] --> {'3','9',...}
39           if len(halmaz)<len(lista):
40               nincs=False
41           i+=1
42       
43       if nincs:
44           print('Nem volt ismétlődő számjegy.')
45       else:
46           print('Az első ismétlődést tartalmazó próbálkozás sorszáma: ',i)
47   
48       ''' 
49       van=False 
50       for i,kod in enumerate(ajto): 
51           lista=list(ajto[i])         # list('239451') ---> ['2','3','9',...] 
52           halmaz=set(lista)           # ['3','3','9',...] --> {'3','9',...} 
53           if len(halmaz)<len(lista): 
54               van=True 
55               break 
56    
57       if van: 
58           print('Az első ismétlődést tartalmazó próbálkozás sorszáma: ',i+1) 
59       else: 
60           print('Nem volt ismétlődő számjegy.') 
61       '''
62   
63   def F5():
64       print('5. feladat')
65   
66       ujkod=[]
67       while len(ujkod)!=len(nyitokod):
68           b=str(random.randint(0,9))      # 6 ---> '6' str(6)='6' 
69           if b not in ujkod:
70               ujkod.append(b)
71       
72       ujkod=''.join(ujkod)
73   
74       print('Egy %d hosszú kódszám: %s' %(len(ujkod),ujkod))
75   
76   
77   def nyit(jo, proba):
78       egyezik=(len(jo)==len(proba))
79       if egyezik:
80           elteres=ord(jo[0])-ord(proba[0])
81           for i in range(1,len(jo)):
82               if (elteres - (ord(jo[i])-ord(proba[i])) ) % 10 != 0:
83                   egyezik=False
84   
85       return egyezik
86   
87   def F7():
88       print('7. feladat')
89   
90       fki=open('siker.txt','w')
91   
92       for kod in ajto:
93           if len(kod)!=len(nyitokod):
94               print(kod,'hibás hossz',file=fki)
95           else:
96               if nyit(kod,nyitokod):
97                   print(kod,'sikeres',file=fki)
98               else:
99                   print(kod,'hibás kódszám',file=fki)
100  
101      fki.close()
102     
103  #*****************************F Ő M O D U L**************************************
104  F1()
105  F2()
106  F3()
107  F4()
108  F5()
109  F7()