Python - tipy pro >>>
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Python - tipy pro >>>Python - tipy pro >>>

 

Python - tipy pro >>>

Google       Google       3. 10. 2005       14 754×

Příkazová řádka Pythonu alias shell alias konsole alias >>> je neobyčejně silná feature (součást) Pythonu. Můžeme na ní zkoušet vše, co v obyčejném programu, některé věci však daleko výhodněji. Můžeme tomu říkat "hraní si" s Pythonem, případně ladění.


Tipy pro >>>

Příkazová řádka Pythonu alias shell alias konsole alias >>> je neobyčejně silná feature (součást) Pythonu. Můžeme na ní zkoušet vše, co v obyčejném programu, některé věci však daleko výhodněji. Můžeme tomu říkat "hraní si" s Pythonem, případně ladění.


Jaké všechny metody má můj objekt

V Pythonu je objekt vše - číslo, řetězec, moduly, funkce, seznamy, ... Zastavme se třeba u seznamů. Pokud chceme vědět, co všechno můžeme se seznamem dělat, tj. jaké má všechny metody, můžeme se podívat do manuálu nebo si s ním pohrát na příkazovém řádku. Vyzkoušejte:


>>> znamky=[1,1,3,1,4,8]
>>> dir(znamky)
['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__delsli
ce__', '__doc__', '__eq__', '__ge__', '__getattribute__', '__getitem__', '__gets
lice__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__iter__', '
__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__r
educe_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__
', '__setslice__', '__str__', 'append', 'count', 'extend', 'index', 'insert', 'p
op', 'remove', 'reverse', 'sort']
>>> znamky.count(1)
3

dir() je funkce, která nám řekne o všech metodách, které má objekt v závorce. V našem případě tedy metody seznamu. Ty obyčejné (append, count,...) jsou až na konci. Ty, které mají dvě podtržítka (__) na začátku a na konci jsou systémové speciální metody, které se takto jak jsou sice dají použít, ale většinou se používají jinak, příjemněji:


>>> znamky.__add__([8])
[1, 1, 1, 3, 4, 8, 8]
>>> znamky + [8]
[1, 1, 1, 3, 4, 8, 8]
>>> znamky.__len__()
6
>>> len(znamky)
6
>>>

Ještě jedna ukázka na řetězce:


>>> mesto="Praha"
>>> dir(mesto)
['__add__', '__class__', '__contains__', '__delattr__', '__doc__', '__eq__', '__
ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__getslice__', '__g
t__', '__hash__', '__init__', '__le__', '__len__', '__lt__', '__mod__', '__mul__
', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '
__rmul__', '__setattr__', '__str__', 'capitalize', 'center', 'count', 'decode',
'encode', 'endswith', 'expandtabs', 'find', 'index', 'isalnum', 'isalpha', 'isdi
git', 'islower', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lst
rip', 'replace', 'rfind', 'rindex', 'rjust', 'rsplit', 'rstrip', 'split', 'split
lines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill
']

Jaké všechny proměnné jsem použil?

Funkce dir() se dá použít i pro zjištění, které všechny proměnné, funkce nebo i moduly jsem doposud použil. V ukázce také ukazuji konkrétní práci s jednou funkcí modulu time, kterou jsem tímto způsobem našel:


>>> x=10
>>> jmeno="John"
>>> import time
>>> boat=["one", "two", 3,"four"]
>>> dir()
['__builtins__', '__doc__', '__name__', 'boat', 'jmeno', 'time', 'x']
>>> time
<module 'time' (built-in)>
>>> dir(time)
['__doc__', '__name__', 'accept2dyear', 'altzone', 'asctime', 'clock', 'ctime',
'daylight', 'gmtime', 'localtime', 'mktime', 'sleep', 'strftime', 'strptime', 's
truct_time', 'time', 'timezone', 'tzname']
>>> dir(time.localtime)
['__call__', '__class__', '__cmp__', '__delattr__', '__doc__', '__getattribute__
', '__hash__', '__init__', '__module__', '__name__', '__new__', '__reduce__', '_
_reduce_ex__', '__repr__', '__self__', '__setattr__', '__str__']
>>> time.localtime
<built-in function localtime>
>>> time.localtime()
(2005, 10, 2, 11, 22, 49, 6, 275, 1)

Ladění

Hrátky na příkazovém řádku se dají využít i k ladění programu. Mějme následující program:

x=10
kniha="HW a SW"
posl=range(10)
for i in posl:
    print i+kniha

Po jeho spuštění se objeví následující chybová hláška:

Traceback (most recent call last):
  File "programujte.py", line 5, in ?
    print i+kniha
TypeError: unsupported operand type(s) for +: 'int' and 'str'

A my můžeme začít zkoumat, a následně opravovat svůj program:


>>> dir()
['__builtins__', '__doc__', '__file__', '__name__', 'i', 'kniha', 'posl', 'x']
>>> kniha
'HW a SW'
>>> posl
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> x
10
>>> kniha*i
''
>>> kniha*7
'HW a SWHW a SWHW a SWHW a SWHW a SWHW a SWHW a SW'
>>>

Nápověda na příkazovém řádku

Často také dokážu zjistit i něco více, než jen pouhý výpis metod objektu. Jedná se v podstatě o velmi podobnou nápovědu, jako v manuálu, ale v textovém provedení.


>>> x=[5,4,2]
>>> help(x)
Help on list object:

class list(object)
 |  list() -> new list
 |  list(sequence) -> new list initialized from sequence's items
 |
 |  Methods defined here:
 |
 |  __add__(...)
 |      x.__add__(y) <==> x+y
 |
 
 [...]
 
 |  reverse(...)
 |      L.reverse() -- reverse *IN PLACE*
 |
 |  sort(...)
 |      L.sort(cmp=None, key=None, reverse=False) -- stable sort *IN PLACE*;
 |      cmp(x, y) -> -1, 0, 1
 |
 
 [...]

Extra

S výše uvedenými funkcemi dir() i help() můžete samozřejmě pracovat i v programu, takže si můžete vytvářet programy, které budou generovat metody vašich objektů nebo nápovědy k nim....

Závěr

Najdete-li něco zajímavého, na co jsem zapomněl, napište to pls do komentářů.

×Odeslání článku na tvůj Kindle

Zadej svůj Kindle e-mail a my ti pošleme článek na tvůj Kindle.
Musíš mít povolený příjem obsahu do svého Kindle z naší e-mailové adresy kindle@programujte.com.

E-mailová adresa (např. novak@kindle.com):

TIP: Pokud chceš dostávat naše články každé ráno do svého Kindle, koukni do sekce Články do Kindle.

Hlasování bylo ukončeno    
0 hlasů
Google
(fotka) Pavel KosinaAutor programuje v Pythonu.
Web    

Nové články

Obrázek ke článku Stavebnice umělé inteligence 1

Stavebnice umělé inteligence 1

Článek popisuje první část stavebnice umělé inteligence. Obsahuje lineární a plošnou optimalizaci.  Demo verzi je možné použít pro výuku i zájmovou činnost. Profesionální verze je určena pro vývojáře, kteří chtějí integrovat popsané moduly do svých systémů.

Obrázek ke článku Hybridní inteligentní systémy 2

Hybridní inteligentní systémy 2

V technické praxi využíváme často kombinaci různých disciplín umělé inteligence a klasických výpočtů. Takovým systémům říkáme hybridní systémy. V tomto článku se zmíním o určitém typu hybridního systému, který je užitečný ve velmi složitých výrobních procesech.

Obrázek ke článku Jak vést kvalitně tým v IT oboru: Naprogramujte si ty správné manažerské kvality

Jak vést kvalitně tým v IT oboru: Naprogramujte si ty správné manažerské kvality

Vedení týmu v oboru informačních technologií se nijak zvlášť neliší od jiných oborů. Přesto však IT manažeři čelí výzvě v podobě velmi rychlého rozvoje a tím i rostoucími nároky na své lidi. Udržet pozornost, motivaci a efektivitu týmu vyžaduje opravdu pevné manažerské základy a zároveň otevřenost a flexibilitu pro stále nové výzvy.

Obrázek ke článku Síla týmů se na home office může vytrácet. Odborníci radí, jak z pracovních omezení vytěžit maximum

Síla týmů se na home office může vytrácet. Odborníci radí, jak z pracovních omezení vytěžit maximum

Za poslední rok se podoba práce zaměstnanců změnila k nepoznání. Především plošné zavedení home office, které mělo být zpočátku jen dočasným opatřením, je pro mnohé už více než rok každodenní realitou. Co ale dělat, když se při práci z domova ztrácí motivace, zaměstnanci přestávají komunikovat a dříve fungující tým se rozpadá na skupinu solitérů? Odborníci na personalistiku dali dohromady několik rad, jak udržet tým v chodu, i když pracovní podmínky nejsou ideální.

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý