Informatika2-2012/Eloadas11

A MathWikiből
A lap korábbi változatát látod, amilyen Stma (vitalap | szerkesztései) 2012. április 23., 23:01-kor történt szerkesztése után volt.

<-- vissza

Tartalomjegyzék

bevezetés alapcsomagokba

A python egy széles körben használható nyelv, és ezt annak köszönheti, hogy rengeteg területre szolgáltat, vagy létezik 3rd party kiegészítő csomagjai. Itt most az alap csomagok egy kis részét fogjuk áttekinteni.

továbbiakban

regexp (re)

Célja hogy reguláris kifejezések segítségével szövegeken tudjatok keresni egy adott mintára és azok elemeit felhasználni.

reguláris kifejezés

a reguláris kifejezés egy karaktersorozat amiben speciális karakterek segítségével mintákat adhatunk meg. a 'alma' egy olyan reg. kif. ami pontosan az alma karaktersorozatra fog egyezni.

speciális karakterek

'.' - a pont a bármilyen karaktert jelöli, kivéve a \n

'^' - azt jelzi, hogy az illesztés során ott van a karakter sorozat eleje

'$' - a kar. sor. végét jelöli

számosság

'*' - jelentése 0 vagy több (mohó)

'+' - 1 vagy több (mohó)

'?' - 0 vagy 1

  • ?, +?, ?? - ha az előzők mögé a ? tesszük akkor a mohó tulajdonságot vezérelhetjük

{m} - az ismétlés pontos számát adhatjuk meg

{m,n} - m és n közötti ismétlést

{m,n}? - hasonó...

escape karakter

'\'

halmaz

[] - ezen belül felsorolt karakter valamelyike lehet az erre illeszkedő karakter. Lehet tartományokat megadni mint a kisbetűk: [a-z], stb [a-zA-Z0-9]. A speciális karakterek elvesztik értelmüket a halmazon belül. Karakterosztályok is használhatóak lásd később. Ha az első karakter a '^' akkor a jelentése az lesz, hogy minden olyan karakter ami nincs a halmazban (ha más pozícióban szerepel akkor nincs különleges szerepe). Zárójelek: [()[\]{}] ua. []()[{}]


csoportosítás

'|' - A|B jelentése A vagy B, ahol A és B tetszőleges reguláris kif.

(...) - csoport jelzése. a Csoport újrahasználása a '\' és a csoport számával lehet: \1

(?...) -

Karakter osztályok

\A - a karakterlánc kezdete

\b - üres karakter a karakterláncon kívül

\B - üres karakter a karakterláncon belül

\d - [0-9]

\D - [^0-9]

\s - [ \t\n\r\f\v]

\S - [^ \t\n\r\f\v]

\w - [a-zA-Z0-9_]

\W - [^a-zA-Z0-9_]

\Z - a karakterlánc vége

felhasználása

prog = re.compile(pattern)
result = prog.match(string)

ami megegyezik

result = re.match(pattern, string, flag = re.I)
re.search(pattern, string, flags=0)

végigfut és egyezéseket keres

re.match(pattern, string, flags=0) csak a kezdeti egyezéseket adja vissza

az eredmény

>>> t=re.match(r'a{0,3}b','abaaab') >>> t <_sre.SRE_Match object at 0xb7235d78> >>> dir(t) ['__copy__', '__deepcopy__', 'end', 'expand', 'group', 'groupdict', 'groups', 'span', 'start']


Jelzők használata:
result = re.match(pattern, string, flag = re.I)

jelentése, hogy a nagy és kisbetűket ne különböztesse meg

glob

Az aktuális könyvtárban keresi azokat mikre illik a keresési feltétel.

glob.glob(pathname)
 
glob.iglob(pathname) # generátorral tér vissza

pathname - lehet relatív, és abszolút elérési útvonal, ami tartalmazhat reguláris kifejezésbeli elemeket...

math

Matematikai funkciók tárháza... (Ha komplex számokkal akarunk dolgozni, akkor a cmath modult használjuk) pl.: math.factorial(x), math.fabs(x)

konstansok

math.e
math.pi

transzformációk

math.degrees(x) # radiánt alakít fokká
 
math.radians(x) # fordítva

szögfugvények

math.acos(x)
math.asin(x)
math.atan(x)
math.cos(x)
math.sin(x)
math.tan(x)

kerekites

math.ceil(x)
math.floor(x)
math.trunc(x)

hatványozás, logaritmus

math.log(x[, base])
math.exp(x)
math.pow(x, y)
math.sqrt(x)

random

Random generálással kapcsolatos elemek tárháza...

elemei

random.seed([x])
# a generátor alapját határozhatjuk meg, ha nem adunk meg semmit akkor a aktuális időt veszi alapul. Ha nem hívjuk
# meg a fv. a generátor mindig ua. a sorozatot adja...
 
random.randrange([start], stop[, step])
 
# range(start, stop, step) elemekből választ random. (choice(range(start, stop, step)))
 
random.randint(a, b)
# a <= N <= b, N-el tér vissza
 
random.choice(seq)
# a listából választ egyet. IndexError ha nincs elem a paraméterként átadott listában.
 
random.random()
# lebegőpontos számmal tér vissza a [0.0, 1.0) - ból
random.uniform(a, b)
# lebegőpontos számmal tér vissza (a <= N <= b ha a <= b és b <= N <= a ha b < a)

urllib2

A modul által kínált függvények és osztályok segítségével képesek vagyunk az interneten található anyagokat kezelni. azonosítás, átirányítás, sütik, stb.

>>> import urllib2 as ul
>>> f = ul.urlopen('http://www.python.org')
>>> for i in f:
...   print i
...

, datetime, timeit, doctest, unittest, xml, json, email, smtplib, poplib, threading, zipfile, logging, weakref, gc, array, collections, bisect, heapsq ...

Személyes eszközök