CDI.CZ
hledá
nové PHP programátory.
Požadavky:
- Zkušenosti s PHP
- Znalost OOP
- Zkušenosti s návrhem databáze (MySQL)
- Znalost problematiky webových aplikací
Strukturovaný životopis můžete zasílat na petr@cdi.cz.
Všimněte si priorit operátorů. Vyzkoušejte si je v interaktivním režimu Pythonu.>>> 3L % 2 1L >>> 3.0**(4/2) 9.0 >>> x = 3.0**4/2 >>> print x 40.5 >>>
Dále jsou v Pythonu bitové operátory >>, << (bitové
posuvy), ~ (vlnovka = binární komplement), | (bitové or),
& (bitové and). Tyto operátory pracují jen s celými čísly.
>>> x=0L >>> ~x # (vlnovka) -1L >>> x=1 >>> x<<1 2 >>> x=1 >>> x<<2 4
V řetězcích je možné používat speciální znaky podobně jako v jazyce C. Například \n jako další řádek, \\ jako lomítko, \' jako apostrof a \" jako uvozovku atd.>>> x='slovo' >>> print x slovo >>> x="'veta v apostrofech'" >>> print x 'veta v apostrofech' >>> x="""veta plna "uvozovek" a 'apostrofu'''""" >>> print x veta plna "uvozovek" a 'apostrofu''' >>>
Pokud nechcete, aby se speciální znaky interprtovali, napište před první uvozovku řetězce znak r (bez mezery).>>> x='pozor na uvozovku \'!\'\n\n\n' >>> print x pozor na uvozovku '!' >>>
Řetězce obsahují formátovací operátor %, který má téměř stejný význam jako v jazyce C. Do řetězce se dosazují hodnoty pomocí n-tice.>>> x= r'pozor na uvozovku \'!\'\n\n\n' >>> print x pozor na uvozovku \'!\'\n\n\n >>>
Za výraz %i se dosazuje v řetězci celé číslo, za %s řetězec, za %f racionální číslo atd. Na dalším příkladě je vidět, co všechno tento operátor ještě umí.>>> x = 'cislo %f a retezec %s' % (4,'4') >>> print x cislo 4.0000 a retezec 4 >>> x = 'cislo %i a retezec "%s"' % (4,x) >>> print x cislo 4 a retezec "cislo 4.0000 a retezec 4"
Poslední vymožeností operátoru % je v použití slovníku. Za % lze uvést do kulatých závorek jméno klíče a tím zajistit přiřazení správné hodnoty.>>> 'retezec %20s retezec' % 'a' 'retezec a retezec' >>> 'retezec %-20s retezec' % 'a' 'retezec a retezec' >>> 'retezec %2i retezec' % 4 'retezec 4 retezec' >>> 'retezec %5i retezec' % 4 'retezec 4 retezec' >>> 'retezec %-5i retezec' % 4 'retezec 4 retezec' >>> 'retezec %-5.2f retezec' % 4 'retezec 4.00 retezec'
>>> slovnik = {'text':'abcdefg','cislo':123,'cislo2':456}
>>> 'tady je text "%(text)s" a tady cislo %(cislo2)i' % slovnik
'tady je text "abcdefg" a tady cislo 456'
K jednotlivým znakům v řetězci se dá přistupovat pomocí operátoru
[] (hranaté závorky). První znak má index 0, druhý 1 atd. Poslední
znak se dá indexovat číslem -1, předposlední -2 atd. Návratová
hodnota tohoto operátoru je však stále typ string!>>> x='12345' >>> x[0] '1' >>> x[4] '5' >>> x[-1] '5' >>> x[0:2] '12' >>> x[2:] '345' >>> x[2:-2] '3' >>> x=x[1:-2] >>> print x 23
Pokud chcete k řetězci přičíst výraz jiný než řetězec, můžete použít vestavěnou funkci str(). Výrazem může být například samotný objekt (např. seznam), nebo početní výraz (např. a + b).>>> x='abc' >>> x=x+" "+x >>> print x abc abc >>> 5*"X" 'XXXXX'
>>> 'list: '+str([0,12,'text']) "list: [0, 12, 'text']" >>> 'cislo: '+str(3+5)+'.' 'cislo: 8.'
Seznam lze násobit podobně jako řetězce (nebo n-tice). Navíc lze modifikovat příkazem del, přiřazením, nebo pomocí vlastních metod (viz. dále).>>> x=[3,'ahoj',None] >>> print x[1] ahoj >>> print x[1:] ['ahoj', None]
Metody jsou funkce implementované uvnitř seznamu a volají se přez tvz. tečkovou notaci. Tj. napíše se jméno proměnné typu seznam, tečka a jméno funkce s případnými parametry. Všimněte si, že u metod (tedy funkcí) je nutné psát na konci závorky (), i když nepředáváte žádný argument.>>> x=3*x >>> print x [3, 'ahoj', None, 3, 'ahoj', None, 3, 'ahoj', None] >>> del x[3:6] >>> print x [3, 'ahoj', None, 3, 'ahoj', None] >>> x[3:6]=['1 hodnota misto tri'] >>> print x [3, 'ahoj', None, '1 hodnota misto tri']
>>> x=3*[3,'ahoj',None] >>> x.sort() >>> print x [None, None, None, 3, 3, 3, 'ahoj', 'ahoj', 'ahoj']
Závorky jsou zde nepovinné (vyzkoušejte). Pokud použijete několik výrazů oddělených od sebe čárkou, jsou automaticky vyhodnoceny Pythonem jako n-tice a podle toho se chovají.>>> x=(1,) >>> type(x) <type 'tuple'>
Všimně te si přiřazení a,b,c = 'a','be',3. Do n-tice složené ze tří proměnných a,b,c byla uložena n-tice hodnot ('a','be',3) N-tice lze násobit podobně jako řetězce, nebo seznamy.>>> x=1,2,'ahoj',"""'"'""",None,3,4 >>> print x[3] '"' >>> a,b,c = 'a','be',3 >>> print b be >>> print a,c 'a', 3
>>> x={}
>>> x={'klic': 'hodnota','none': None}
>>> print x['klic']
hodnota
>>> print x['hodnota']
Traceback (most recent call last):
File "<stdin>", line 1, in ?
KeyError: hodnota
>>> x['novy_klic'] = 'nova_hodnota'
>>> print x
{'klic': 'hodnota', 'novy_klic': 'nova_hodnota', 'none': None}
Všimněte si, že hodnoty ve slovníku nejsou uspořádány podle toho,
jak byli do slovníku vloženy. Hodnoty ve slovníku nejsou uspořádány
nijak!
Slovník má také metody, podobně jako seznam
Některé metody slovníku:
Chcete-li zrušit z asociativního pole nějaký záznam, použijte příkaz del takto: del slovniky[klic].>>> for i in x.keys(): ... print i, ... klic novy_klic none
