sms200705.py
1    kodok=[2,2,2,3,3,3,4,4,4,5,5,5,6,6,6,7,7,7,7,8,8,8,9,9,9,9]
2    betuk=[chr(b) for b in range(97,123)]
3    
4    def betu_kodja(b):
5        return kodok[betuk.index(b)]
6    
7    def szo_kodja(sz):
8        kod=''
9        for betu in sz:
10           kod+=str(betu_kodja(betu))
11       return kod
12   
13   def kod_szavak(k):
14       return [szavak[i] for i in range(0,len(kodok)) if kodok[i]==k]
15   
16   def F1():
17       print('1. feladat - betű és kódja')
18       betu=input('Kérek egy betűt: ')
19       print('A megadott betű kódja:',betu_kodja(betu))
20   
21   def F2():
22       print('\n2. feladat - szó és kódolása')
23       szo=input('Kérek egy szót: ')
24       print('A megadott szó kódja:',szo_kodja(szo))
25   
26   def F3():
27       # 3. feladat - adatok beolvasása...
28       global szavak
29       szavak=[sz.strip() for sz in open('szavak.txt','r')]
30   
31   def F4():
32       print('\n4. feladat - leghosszabb szó')
33       rendezett=sorted(szavak,key=lambda sz:len(sz),reverse=True)
34       print(f'A leghosszabb szó: {rendezett[0]}, hossza: {len(rendezett[0])}')
35   
36   def F5():
37       print('\n5. feladat - rövid szavak száma (5 karakter vagy kevesebb)')
38       rovidek=[szo for szo in szavak if len(szo)<6]
39       print(len(rovidek))
40   
41       # db=0
42       # for sz in szavak:
43       #    if len(sz)<6:
44       #        db+=1
45   
46   def F6():
47       # 6. feladat - szavak kódjai (kodok.txt)
48       fki=open('kodok.txt','w')
49       global kodok
50       kodok=[szo_kodja(szo) for szo in szavak]
51       [print(kod,file=fki) for kod in kodok]
52       fki.close()
53   
54   def F7():
55       print('\n7. feladat - kódhoz tartozó szavak')
56       kod=input('Kérek egy kódot: ')
57       print('A kódhoz tartozó szavak:',end=' ')
58       [print(szo,end=' ') for szo in kod_szavak(kod)]   
59       print()
60   
61   def F8_9():
62       print('\n8. feladat - mely kódokhoz tartozik több szó is')
63       maxi={}
64       maxh=0
65       for kod in set(kodok):
66           lst=kod_szavak(kod)
67           if len(lst)>1:
68               if len(lst)>maxh:
69                   maxi={kod:lst}
70                   maxh=len(lst)
71               for szo in lst:
72                   print(f'{szo} : {kod};',end=' ')
73       print()
74       print('\n9. feladat - melyik kódnak megfelelő szóból van a legtöbb')
75       for key in maxi:
76           print('kód: ',key)
77       print('Hozzá tartozó szavak:',end=' ')
78       
79       for maxi_sz in maxi.values():
80           for sz in maxi_sz:
81               print(sz,end=' ')
82       print()
83   
84   F1()
85   F2()
86   F3()
87   F4()
88   F5()
89   F6()
90   F7()
91   F8_9()
92