A halmazok, listák, szótárak metódusai:
Egy elemű tuple zárójel nélküli deklarációja: bar = 12 ,
szótárak - néha asszociatív tömböknek is nevezik őket - kulcsokkal indexelt, nem rendezett adategyüttesek.
Egy for ciklus definiál egy változót, ami egymás után fölveszi a bejárt szekvencia (lista, tuple) valamennyi értékét.
Az else klauzula kiértékelésére akkor kerül sor, ha a szekvencia elfogyott és nem volt break.
A range() függvény egy alsó és felső határok közé eső, egész számokból álló listát állít elő.
Ez a konstrukció akkor hasznos, amikor egy for ciklus egy egész számokból álló szekvenciát jár be.
Amíg ez a feltétel teljesül, addig a while hoz kapcsolt blokk utasításai értékelődnek ki.
Az else klauzula kiértékelésére akkor kerül sor, ha a feltétel hamis és nem volt break
A Python a lambda formula alkalmazásával lehetővé teszi anonym függvények definiálását. Egy ilyen függvény egyetlen kifejezésre korlátozódik.
Ha a kód importálva van, akkor a __name__ változó a modul nevét tartalmazza, ha végrehajtandó akkor a __main__ stringet
A modulok hierarchikus struktúrába rendezhetők. Ez esetben az almodulokat tartalmazó modulok,
amiket packageeknek is neveznek, a filerendszer könyvtáraiként vannak definiálva.
A modulok elnevezése tehát konkatenációval történik : modul.almodul.
A kód portabilitásának egyszerűbbé tételéhez mindegyik könyvtárnak tartalmazni kell egy __init__.py nevű fájlt.
Ahhoz, hogy lehetséges legyen valamennyi almodul betöltése, ennek a fájlnak tartalmazni kell a package moduljainak listáját az __all__ változóban.
Egy objektumot egy minta, az osztálya alapján hozunk létre, ami definiál egy struktúrát (az attribútumokat) és viselkedést (a metódusokat).
Az objektum orientált programozás alapelvei
-- Példányosítás (instantiation) Egy objektumot egy minta, az osztálya alapján hozunk létre, ami definiál egy struktúrát (az attribútumokat)
és viselkedést (a metódusokat). Egy osztály egy objektumtípust definiál. Egy objektum egy egyedi osztálynak egy példánya.
-- Egységbezárás (encapsulation) Az adatok «el vannak rejtve» az objektumok belsejében, az adatokhoz való hozzáférét metódusokkal kontroláljuk.
Egy objektum állapotát nem szabad közvetlen módon manipulálni. Az objektumra úgy tekinthetünk, mint egy szolgáltatóra, nem pedig mint adatokra.
-- Polimorfizmus Az azonos interfaceű (a Python esetében elegendő a metódusok szignatúrája) objektumokat általánosan módon manipulálhatjuk,
még akkor is, ha az egzakt típusuk eltérő. Ez az elv lehetővé teszi egy példánynak egy másikkal való helyettesítését is (amíg az interfaceek kompatibilisek).
-- Öröklés (inheritance) Ez a mechanizmus teszi lehetővé az alapdefiníciók, az alapértelmezett viselkedések újrafelhasználását
és bizonyos viselkedési formák specializálását. Két osztály közötti öröklési viszony nem korlátozódik egyszerűen a kód megspórolására.
Annak az osztálynak, amelyik örököl, annak egy olyan osztálynak kell lenni, mint amitől örököl :
a macska egy állat, tehát a macska az állat osztály egy alosztálya.
Minden objektum : a stringek, az egészek, a listák, az osztályok, a modulok, stb. Dinamikusan minden manipulálható.
A dir() függvény bármelyik objektumnak megadja a tartalmát (az attribútumainak és a metódusainak a listáját).
from xml.dom import minidom
newdoc = minidom.Document()
newdoc
newroot = newdoc.createElement('root')
rootattr = newdoc.createAttribute('name')
rootattr.nodeValue = 'Érték'
textnode = newdoc.createElement('Szoveg')
text = newdoc.createTextNode('Ez a node \ntartalmazza a szöveget')
comment = newdoc.createComment( 'Nagyon fontos információ')
newdoc.appendChild( newroot )
textnode.appendChild( text )
## serializáció és állományba mentés
foo = { 'a': 'aaa' , 'b': 'bbb' , 'c': 'ccc'}
output = open( 'foo.saved' , 'w')
pickle.dump( foo , output ) # (1 ,2) művelet
output.close()
## állománybol objektumok létrehozása
input = open('foo.saved' , 'r')
foo2 = pickle.load( input ) # (1 ,2)
input.close()
foo2
#!/usr/bin/env python3.2
#-*- coding:utf-8 -*-
input("A befejezéshez nyomja meg az Enter-t!")
Műveletei sorrend:
** a legerősebben köt
+ és - ha előjelként állnak (egyformán erősek), pl.: -2**4=-16 lesz, de (-2)**4 =16
* és / (egyformán erősek)
+ és - ha két operandust kötnek össze (egyformán erősek)
## szöveg manipuláció, elemzés
import random, time, os
# manipuláció
print("Hello" + " Lajos.") # összefűzés
text = ['K.', 'Lajos']
print(' '.join(text)) # lista tartalom összefűzés
print("kEcskeméti Lajos".upper()) # nagybetűsítés
print("KEcskeméti Lajos".lower()) # kisbetűsítés
print("kEcskeméti Lajos".capitalize()) # kezdő betű nagybetűsítés
print("kEcskeméti Lajos".title()) # szókezdet nagybetűsítés
print("kEcskeméti Lajos".swapcase()) # szöveg nagy betűit kicsire, kisbetűit nagyra cserél
print(" kEcskeméti Lajos ".lstrip()) # baloldali space-k eltávolitása
print(" kEcskeméti Lajos ".strip()) # mindkét oldalról a felesleges spaceket eltávolítja
print("Kecskeméti Lajos".replace("t", "X")) # csere
print("Kecskeméti Lajos".split("t")) # listába metszés
dict = {"k": "1", "e": "4", "c": "7"}
print("111 Kecskeméti Lajos".maketrans(dict))
## Elemzés
print("Kecskeméti Lajos".count("t")) # hányszor fordul elő benne
print("Kecskeméti Lajos".index("ét")) # hanyadik pozicióban fordul elő benne
print("Kecskeméti Lajos".find("ét")) # hanyadik pozicióban található meg benne
print("Kecskeméti Lajos".center(24, '*')) # középre igazított feltöltés
print("Hello {}.".format("lajos")) # formázott kitöltés
print("bin: {0:b}, oct: {0:o}, hex: {0:x}".format(12)) # formázott kitöltés octal, binary és hexadecimal format
point = {'x':4,'y':-5}
print('{x} {y}'.format(**point)) # formázott kitöltés
#
print(len("Kecskeméti Lajos")) # szöveg hossza
print("Kecskeméti Lajos".endswith('nem')) # végén megtalálható
print("Kecskeméti Lajos".startswith('Kecs')) # elején megtalálható
##----------------
## listák manipulálása, elemzése
names = ["Lajos", "Ildikó", "Dani", "Tamás"]
names.append("János") # bővítés a végére
names.insert(1, "Csilla") # bővítés a pozicióra
print(names)
names.remove("János") # elem törlése a listából
del names[0] # első pozició elem törlése
names[-1] = "Béla" # utolsó elem lecserélése
print(names)
names.clear() # lista kiürítés
Megjegyzések
Megjegyzés küldése