Fehér Gábor: Python minitanfolyamMiért pont Python?
Python onlineElső lépésekA következő feladatsor azokat a Python elemeket mutatja be, amelyekkel a nagy feladat megoldható. print u"1.1 Írd ki, hogy hello, world!" print print u"1.2. Írd ki, hogy helló, világ!" print print u'1.3. Adottak a "hello" és "world!" stringek,' print u'írd ki, hogy hello, world!' s1 = "hello" s2 = "world!" print print u'1.4. Írd ki az adott s string első és második' print u'karakterét, 8-tól 13-ig terjedő részstringjét,' print u'a 8.-tól a végéig terjedő részstringjét.'
print print u'1.5. Írd ki az adott s string hosszát'
print print '2.1. Itt egy lista.' lista = [1, 4, 9] print lista print u'2.2. Írd ki a második elemét.' print print u'2.3. Készíts listát az 1900 utáni de 2014 előtti' print u'5-el osztható évszámokból.' print print u'2.4. Készíts két azonos listából egy számpárokból' print u'álló listát:' a = [1, 2, 3, 4, 5] b = [1, 4, 9, 16, 25] print print u'3.1. Itt egy hosszú szöveg (recept):' hosszu_szoveg = u''' Hozzávalók: 50 dkg liszt 5 dl szénsavas ásványvíz 7 dl tej 4 evőkanál kristálycukor 4 tojás 6 evőkanál olaj 1 csipet só Elkészítés: A lisztet, a cukrot, a tojásokat, a sót és a szódavizet keverőtálba tesszük, és simára keverjük, majd hozzáadjuk a tejet és az olajat. Kisütjük a palacsintákat forró serpenyőben, pici olajon. ''' print hosszu_szoveg print u'3.2. Alakítsd át a soraiból álló listává.' print print u'3.3. Ne legyenek üres elemek a listában:' print print u'3.4. Írd ki a recept első sorát, egy listát ami ' print u'a második és harmadik soraiból áll, és a negyedik ' print u'sorát.' print print u'3.5. Írd ki a receptet úgy, hogy minden sora *-al ' print u'kezdődjön:' print print u'3.6. Írd ki az összes sort, amiben szerepel szám:' print print u'3.7. Megy-e ügyesebben?' import re print print u'3.8. Írd ki az összes sorban található számot:' print print u'3.9. Írd ki a fenti számok összegét:' print Nagy feladatElemezzük, hogy évtizedenként hogyan alakult a keresztnevek gyakorisága a berzsenyis diákok körében.
Vázlat:
MegoldásokSchwarcz Tamás - Formanek András: import simpleplot data = u''' 1901-1909 4., Osztályfőnök: Bakonyi László, Báron Gyula, ... néhány ezer sor kihagyva ... Zoltán Ágota''' data = data.split('\n') ev = 0 eloszlas = [0] * 12 for sor in data: if len(sor) >= 100: nevek = sor.split(',') for nev in nevek: x = nev.strip().split(' ') for y in x[1:]: if y == u"Béla": eloszlas[(ev-1900)/10] += 1 if len(sor) == 9: ev = int(sor[:4]) #print ev #print '\n' if len(sor) == 4: ev = int(sor) #print ev lista = range(1900,2020,10) simpleplot.plot_lines('Nevek', 400, 300, u'évtized', u'előfordulás tíz évente', [zip(lista, eloszlas)], True, [u"Béla"]) Fehér Gábor (a fentieken felül itt még használunk egy asszociatív tömböt és egy lista-kifejezést "list comprehension" is): data = ''' BDG
import re import simpleplot def AddName(year, name, name_stats): if name not in name_stats: name_stats[name] = [0] * 11 bucket = (year - 1901) / 10 name_stats[name][bucket] += 1 def CollectStates(data, name_stats): year = 0 for line in data.split('\n'): year_match = re.search(r'[0-9][0-9][0-9][0- 9]', line) if year_match: year = int(year_match.group(0)) continue names = line.split(',') if len(names) <= 5: continue for name in names: name = name.strip() for last_name in name.split(' ')[1:]: AddName(year, last_name, name_stats) name_stats = {} CollectStates(data, name_stats) names = [u'Gábor', u'László', u'Péter', u'Judit', u'Bence', u'Erzsébet'] years = range(1900, 2020, 10) data_sets = [zip(years, name_stats[name]) for name in names] simpleplot.plot_lines('Nevek', 640, 480, 'nevek', u'előfordulás tíz évente', data_sets, True, names) ![]() |