1 tanc=[] 2 tancok=set() 3 #----------------------------------------------------------------------------------------- 4 # 1. Olvassa be a tancrend.txt állományban talált adatokat, s annak felhasználásával 5 # oldja meg a következő feladatokat! 6 #----------------------------------------------------------------------------------------- 7 def F1(): 8 print('1.feladat - adatok beolvasása') 9 10 fbe=open('tancrend.txt','r') 11 harom=[] 12 for sor in fbe: 13 sor=sor.strip() 14 if len(harom)==0: 15 tancok.add(sor) 16 harom.append(sor) 17 if len(harom)==3: 18 tanc.append(harom) 19 harom=[] 20 print(tancok) 21 print(tanc) 22 fbe.close() 23 24 #----------------------------------------------------------------------------------------- 25 # 2. Írassa ki a képernyőre, hogy melyik volt az elsőként és melyik az utolsóként 26 # bemutatott tánc neve! 27 #----------------------------------------------------------------------------------------- 28 def F2(): 29 print('\n2.feladat') 30 print('Elsőként bemutatott tánc : %s' %tanc[0][0]) 31 print('Utolsóként bemutatott tánc: %s' %tanc[-1][0]) 32 #----------------------------------------------------------------------------------------- 33 # 3. Hány pár mutatta be a sambát? A választ jelenítse meg a képernyőn! 34 #----------------------------------------------------------------------------------------- 35 def F3(): 36 print('\n3.feladat') 37 samba=0 38 for parok in tanc: 39 if parok[0]=='samba': 40 samba+=1 41 print('A samba-t bemutató párok száma: %d' %samba) 42 #----------------------------------------------------------------------------------------- 43 # 4. Írassa ki a képernyőre, hogy Vilma mely táncokban szerepelt! 44 #----------------------------------------------------------------------------------------- 45 def F4(): 46 print('\n4.feladat') 47 print('Vilma az alábbi táncokban szerepelt:') 48 nev='Vilma' #csak az esetleges tesztelések miatt 49 for parok in tanc: 50 if parok[1]==nev: #az 1 indexen a lányok vannak 51 print(parok[0]) 52 #----------------------------------------------------------------------------------------- 53 # 5. Kérje be egy tánc nevét, majd írassa ki a képernyőre, hogy az adott táncot Vilma 54 # kivel mutatta be! Például ha a bekért tánc a samba, és Vilma párja Bertalan volt, 55 # akkor „A samba bemutatóján Vilma párja Bertalan volt.” szöveg jelenjen meg! 56 # Ha Vilma az adott tánc bemutatóján nem szerepelt, akkor azt írja ki a képernyőre, 57 # hogy „Vilma nem táncolt samba-t.”. 58 #----------------------------------------------------------------------------------------- 59 def F5(): 60 print('\n5.feladat') 61 tancnev=input('Kérem egy tánc nevét: ') 62 if tancnev in tancok: 63 nev='Vilma' 64 oke=False 65 for parok in tanc: 66 if parok[0]==tancnev and parok[1]==nev: 67 print('A %s bemutatóján Vilma párja %s volt.' %(tancnev,parok[2])) 68 oke=True 69 break 70 if not oke: 71 print('Vilma nem táncolt %s-t.' %tancnev) 72 else: 73 print('Ilyen tánc nincs!') 74 75 #----------------------------------------------------------------------------------------- 76 # 6. Készítsen listát a bemutatón részt vett fiúkról és lányokról! A listát a 77 # szereplok.txt nevű szöveges állományba mentse el a következő formátumban: a neveket 78 # vesszők válasszák el egymástól, de az utolsó név után már ne szerepeljen írásjel. 79 # Például: 80 # Lányok: Lujza, Katalin, Andrea, Emma 81 # Fiúk: Ferenc, Ambrus, Andor, Kelemen, Bertalan 82 #----------------------------------------------------------------------------------------- 83 def F6(): 84 print('\n6.feladat') 85 fki=open('szereplok.txt','w') 86 global lanyok,fiuk 87 lanyok=set() 88 fiuk=set() 89 for parok in tanc: 90 lanyok.add(parok[1]) 91 fiuk.add(parok[2]) 92 ki='Lányok: ' 93 for lany in lanyok: 94 ki+=(lany+', ') 95 fki.write(ki[0:len(ki)-2]+'\n') 96 ki='Fiúk: ' 97 for fiu in fiuk: 98 ki+=(fiu+', ') 99 fki.write(ki[0:len(ki)-2]) 100 fki.close() 101 #----------------------------------------------------------------------------------------- 102 # 7. Írja ki a képernyőre, hogy melyik fiú szerepelt a legtöbbször a fiúk közül, és 103 # melyik lány a lányok közül! Ha több fiú, vagy több lány is megfelel a feltételeknek, 104 # akkor valamennyi fiú, illetve valamennyi lány nevét írja ki! 105 #----------------------------------------------------------------------------------------- 106 def F7(): 107 print('\n7.feladat') 108 #A 6.feladatban létrehozott halmazokat listává alakítom, hogy indexelhetőek legyenek. 109 llanyok=list(lanyok) 110 lfiuk=list(fiuk) 111 #Számlálni fogom az egyes lányokat és fiúkat 112 113 #Lányok --------------------------------- 114 max_lanyok=[0]*len(llanyok) 115 for i,lany in enumerate(llanyok): 116 for parok in tanc: 117 if parok[1]==lany: 118 max_lanyok[i]+=1 119 maxi=max(max_lanyok) 120 print('Legtöbbször szereplő lány(ok):') 121 for i,ertek in enumerate(max_lanyok): 122 if ertek==maxi: 123 print(llanyok[i]) 124 125 #Fiúk ----------------------------------- 126 max_fiuk=[0]*len(lfiuk) 127 for i,fiu in enumerate(lfiuk): 128 for parok in tanc: 129 if parok[2]==fiu: 130 max_fiuk[i]+=1 131 maxi=max(max_fiuk) 132 print('Legtöbbször szereplő fiú(k):') 133 for i,ertek in enumerate(max_fiuk): 134 if ertek==maxi: 135 print(lfiuk[i]) 136 137 138 #-----------------------------------F Ő M O D U L----------------------------------------- 139 F1() 140 F2() 141 F3() 142 F4() 143 F5() 144 F6() 145 F7() 146