Sweet Sexy Teen Sweet Sexy Teen Sexy+teen Sexy

Www Sweetsexyteen No Page 2 Sweet Sexy Teen 3. Kötetlen bevezető a Pythonba

Www Sweetsexyteen No Page 2 Sweet Sexy Teen

operátor baloldali operandusa - további részletek itt olvashatók.


search3 Page 1 Page 3 Page U Www i Sweetsexyteen o1 Www searchwsearch Www Www Sweetsexyteen wa searchwsearche Page s Sweetsexyteen x Page t Page esearch sx Www t Www e Sweetsexyteen Page s Page a Www c Www e Page ersearchh Page Www weesearchs Page xy Page e Page n Sweetsexyteen

A Python 2.0-tól kezdve egy új adattípust használhatnak a programozók: az Unicode objektumot. Ezt Unicode adatok (lásd i18n", azaz "i" + 18 karakter + "n"). Az Unicode megoldotta a problémát azzal, hogy egyetlen kódlapot definiál a világ valamennyi nyelvéhez.

Unicode karakterláncokat ugyanolyan egyszerű Pythonban létrehozni, mint a hagyományos szövegeket:

>>> u'Hello World !'
u'Hello World !'

Az idézőjel előtti kis "u" mutatja, hogy Unicode karakterláncot kell létrehozni. Ha speciális karaktereket szeretnénk használni a szövegben, ezt megtehetjük Python Unicode-Escape kódolásával. A következő példa megmutatja, hogyan:

>>> u'Hello\u0020World !'
u'Hello World !'

A \u0020 escape-sorozat jelzi, hogy egy 0x0020 (a szóköz karakter) sorszámú Unicode karaktert kell beszúrni az adott helyen.

Más karaktereket úgy értelmez, hogy az illető karakter sorszámát felhasználja közvetlenül Unicode sorszámként. Ha szabványos Latin-1 kódolású szöveget használunk (ezt a kódolást használják sok nyugat-európai államban) észrevehetjük, hogy az Unicode első 256 karaktere ugyanaz, mint a Latin-1-es kódolás első 256 karaktere.

Szakértőknek: Van egyfajta nyers mód (raw mode), amilyen a normál karakterláncoknál is. Az idézőjel elé 'ur'-et kell írni, hogy a Python a Raw-Unicode-Escape kódolást használja. Ez a fenti \ uXXXX konverziót csak akkor fogja alkalmazni, ha páratlan számú vissza-per jel van a kis 'u' előtt.

>>> ur'Hello\u0020World !'
u'Hello World !'
>>> ur'Hello\\u0020World !'
u'Hello\\\\u0020World !'

A nyers mód akkor a leghasznosabb, ha sok vissza-per jelet kell beírni, mint például reguláris kifejezéseknél.

A szabványos kódoláson kívül is számos egyéb mód van a Pythonban Unicode szövegek létrehozására valamely ismert kódolás alapján.

A beépített unicode()függvény gondoskodik a használható Unicode kódolók és dekódolók eléréséről. Néhány közismertebb az ilyen kódolások közül, amelyeket átkódolhatunk: Latin-1, ASCII, UTF-8, és UTF-16. Az utóbbi kettő változó hosszúságú kódolás, amely minden Unicode karaktert egy vagy két bájton tárol. Az alapértelmezett kódolás az ASCII, amely a 0-tól 127-ig terjedő karaktereket alakítja át, a többit hibautasítással elutasítja. Ha az Unicode karakterláncot kiíratjuk, fájlba írjuk, vagy az str() függvénnyel átalakítjuk eszerint a kódolás szerint megy végbe.

>>> u"abc"
u'abc'
>>> str(u"abc")
'abc'
>>> u"äöü"
u'\xe4\xf6\xfc'
>>> str(u"äöü")
Traceback (most recent call last):
 File "<stdin>", line 1, in ?
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-2: ordinal not in range(128)

Ahhoz, hogy a Unicode karakterláncot egy 8-bites karakterlánccá alakítsuk a Unicode objektum egy encode() metódussal szolgál, amely egy argumentumot vár, a kódolás nevét. Kisbetűs kódolásneveket használjunk.

>>> u"äöü".encode('utf-8')
'\xc3\xa4\xc3\xb6\xc3\xbc'

Ha van egy speciális kódolású adatunk, és meg szeretnénk kapni a megfelelő Unicode karakterláncot, a unicode() függvényt használjuk második argumentumként a kódolás nevével.

>>> unicode('\xc3\xa4\xc3\xb6\xc3\xbc', 'utf-8')
u'\xe4\xf6\xfc'


3.1.4 Listák

A Python többfajta összetett adattípust ismer, amellyel több különböző értéket csoportosíthatunk. A legsokoldalúbb a lista, amelyet vesszőkkel elválasztott értékekként írhatunk be szögletes zárójelbe zárva. A lista elemeinek nem kell azonos típusúaknak lenniük.

>>> a = ['spam', 'tojások', 100, 1234]
>>> a
['spam', 'tojások', 100, 1234]

Ahogy a karakterlánc-indexek, úgy a lista-indexek is 0-val kezdődnek, és a listákat is szeletelhetjük, összeilleszthetjük és így tovább:

>>> a[0]
'spam'
>>> a[3]
1234
>>> a[-2]
100
>>> a[1:-1]
['tojások', 100]
>>> a[:2] + ['sonka', 2*2]
['spam', 'tojások', 'sonka', 4]
>>> 3*a[:3] + ['Boe!']
['spam', 'tojások', 100, 'spam', 'tojások', 100, 'spam', 'tojások', 100, 'Boe!']

A karakterláncokkal ellentétben - amelyek megváltoztathatatlanok - a listák egyes elemeit módosíthatjuk:

>>> a
['spam', 'tojások', 100, 1234]
>>> a[2] = a[2] + 23
>>> a
['spam', 'tojások', 123, 1234]

A szeleteknek értékeket is adhatunk és ez akár a lista elemszámát is megváltoztathatja:

>>> # Pár elem átírása:
... a[0:2] = [1, 12]
>>> a
[1, 12, 123, 1234]
>>> # Pár elem törlése:
... a[0:2] = []
>>> a
[123, 1234]
>>> # Pár elem beszúrása:
... a[1:1] = ['bletch', 'xyzzy']
>>> a
[123, 'bletch', 'xyzzy', 1234]
>>> a[:0] = a # Beszúrja magát (pontosabban egy másolatát) a saját elejére.
>>> a
[123, 'bletch', 'xyzzy', 1234, 123, 'bletch', 'xyzzy', 1234]

A beépített len() függvény listákra is alkalmazható:

>>> len(a)
8

A listák egymásba ágyazása is lehetséges:

>>> q = [2, 3]
>>> p = [1, q, 4]
>>> len(p)
3
>>> p[1]
[2, 3]
>>> p[1][0]
2
>>> p[1].append('xtra') # Nézd meg az 5.1-es szakaszt!
>>> p
[1, [2, 3, 'xtra'], 4]
>>> q
[2, 3, 'xtra']

Figyeld meg, hogy az utolsó példában p[1] és q valóban ugyanarra az objektumra hivatkozik! Még később visszatérünk az objektumok értelmezésére.


3.2 Első lépések a programozás felé

Természetesen a Pythont sokkal összetettebb feladatokra is használhatjuk annál, minthogy kiszámoljuk 2+2 értékét. Például írhatunk egy rövid ciklust a Fibonacci-sorozat kiszámolására:

>>> # Fibonacci-sorozat:
... # az előző két elem összege adja a következőt
... a, b = 0, 1
>>> while b < 10:
...  print b
...  a, b = b, a+b
... 
1
1
2
3
5
8

Ebben a példában a Python több új tulajdonságát megtaláljuk: