LINUXSOFT.cz Přeskoč levou lištu
Uživatel: Heslo:  
   CZUKPL

> Python (1.) - Zkroťte si hroznýše

V našem seriálu o programovacím jazyce Python se vás pokusím naučit programovat v tomto bezesporu zajímavém jazyce.

2.11.2004 13:00 | Aleš Hakl | Články autora | přečteno 37493×

Programovací jazyk Python vytvořil Guido van Rossum o vánocích roku 1989. Při své práci v holandském institutu CWI potřeboval jazyk pro psaní utilit pro distribuovaný operační systém, jenž skupina, ve které pracoval, vyvíjela. Měl v úmyslu vytvořit snadno rozšiřitelný jazyk podobný jazyku ABC a podoporující výjimky. V únoru roku 1991 na Usenetu ohlásil první veřejnou verzi Pythonu.

Dnes je Python široce používán na mnoha místech, kde je potřeba přehledný a snadno spravovatelný kód. Můžeme uvést, že jej používá NASA pro uživatelské rozhraní systému řídícího lety raketoplánů, aplikační server Zope, originální implementace protokolu BitTorrent, balíčkovací systém Portage v distribuci Gentoo, stejně tak instalátor Anaconda pocházející z RedHat Linuxu a mnohé jiné větší či menší programové celky.

Python se vyznačuje poměrně netradiční syntaxí založenou na odsazování. Taktéž může být pro začátečníka matoucí, že Python je silně objektový beztypový jazyk s přístupem podobným spíše Smalltalku nežli "běžným" objektovým jazykům jako je třeba Java.

Python je jazyk interpretovaný a často považovaný za skriptovací. Přesto je v něm možno psát i docela rozsáhlé programové celky. Některé příklady takových celků jsem již zmínil výše. A ačkoli se Python považuje za jazyk skriptovací, osobně bych řekl, že je pro vývoj podobných rozsáhlejších programů velice vhodný, a rozhodně i vhodnější než pro psaní jednoduchých skriptů pro bezduché přežvýkávání dat.

Moduly jazyka Python napsané v Pythonu se takzvaně kompilují, fakticky se jedná o kompresi zdrojového kódu do formy, která se rychleji načte do paměti, taktéž se v tomto kontextu občas mluví o takzvané optimalizaci, jedná se o vypouštění nepotřebných nebo velmi zřídka potřebných částí zdrojového kódu, v první úrovni optimalizace se jedná o čísla řádků, assertions a obdobný ladící kód, ve druhé úrovni i o tzv. dokumentační řetězce, což už ovšem může běh programu ovlivnit.

Existují ovšem i prostředky, kterými lze běh programů v jazyce Python urychlit, jedná se například o optimalizující kompylátor Psyco, jenž program za běhu profiluje a kritická místa převádí do strojového kódu, podobně jako technologie HotSpot v programovacím jazyce Java.

Ovšem to, že je Python interpretovaný, nepřináší pouze nevýhodu v podobě pomalejšího běhu, ale i mnohé výhody, jednak je to v podstatě předpoklad použitého objektového modelu a za druhé nám vývoj velice usnadní možnost spustit interpret interaktivně, zadávat příkazy a ihned vidět jeho výsledky. Nemusím doufám zdůrazňovat, jak je toto užitečné, ať již pro testováni během vývoje, nebo pouze pro rychlé bastlení věcí, jež právě k něčemu obskurnímu potřebujeme.

Jak již jsem zmínil, Python má poněkud zvláštní syntaxi, založenou na odsazování bloků. Tato syntaxe vede zejména k tomu, že není možné, abychom kód odsadili jinak než, jak skutečně funguje, osobně bych to považoval za výhodu, protože si nedovedu představit moc rozumných důvodu k použití nějakého speciálního způsobu odsazování.

Dost již ovšem bylo teorie, pustíme se tedy do nějakého úvodního příkladu. Bude jím naprosto tradiční "Hello world" (ovšem protože jsme na linuxsoftu, tak nebudeme pouze suše zdravit svět ^_~)

$ python

Python 2.3.4 (#2, Aug 29 2004, 02:04:10)
[GCC 3.3.4 (Debian 1:3.3.4-9)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> print "Ivan má rád satana"
Ivan má rád satana
>>> 

Ale zapisovat všechny programy přímo na vstup interaktivního interpretu není zrovna to, co bychom chtěli, proto se podíváme jak náš příklad zapsat do souboru. V našem oblíbeném textovém editoru si vytvoříme soubor hello.py (nebo jaký chcete) a napíšeme do něj výše uvedené `print "Ivan má rád satana"'.

Protože náš text obsahuje znaky mimo ascii, měli bychom do souboru také uvést jeho kódování, jinak nás interpret Pythonu na jeho absenci upozorní varováním. Pro určení kódování se v souborech se zdrojovýmy kódy pro jazyk python používá syntaxe podobná té, jakou používá editor Emacs pro nastavování lokálních proměnných při otevření souboru. Konečně soubor hello.py bude vypadat takto:

# -*- coding: utf-8 -*-
print "Ivan má rád satana"

Určení kódování by se mělo nacházet na první nebo druhé řádce souboru. Takový soubor pak můžeme spustit interpretem takto:

$ python hello.py
Ivan má rád satana

Také mužeme na unixu vytvořit přímo spustitelný soubor pomocí "magické sekvence" #!. Na začátek souboru tedy uvedeme řádku #!/usr/bin/env python a nastavíme mu práva tak abychom ho mohli spustit. Takže výsledný soubor bude vypadat takto:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
print "Ivan má rád satana"

Nastavíme mu odpovídajíví práva:

$ chmod +x hello.py

A spustíme:

$ ./hello.py
Ivan má rád satana

Použití programu env má svůj důvod. Interpret jazyka python může být v systému nainstalován ledaskde a při spouštění interpretu uvedeného na první řádce souboru není prohledávána cesta, proto použijeme program env(1), který původně slouží na úpravu prostředí spouštěného programu, my ho použijeme proto, že prohledává cestu a proto najde interpret pythonu, at již je v této cestě nainstalován kdekoli.

Přístě se podíváme na to, jak v jazyce Python vypadají nejjednodušší proměnné a jak se s nimi pracuje.

Verze pro tisk

pridej.cz

 

DISKUZE

Diky 2.11.2004 17:41 MarrLiss
kompilace 3.11.2004 01:29 mrzout
|- Re: kompilace 3.11.2004 08:14 Martin Zúber
| |- Re: kompilace 3.11.2004 08:35 Petr Vaněk
| | L Re: kompilace 4.11.2004 07:25 Martin Zúber
| L Re: kompilace 4.11.2004 07:01 mArTiN bIlEk
L Re: kompilace 3.11.2004 12:45 Aleš Hakl
kompylátor 29.11.2004 16:24 Miroslav Holubec
Chybky 7.6.2005 08:44 Petr Přikryl
  L Re: Chybky 8.6.2005 23:49 Aleš Hakl




Příspívat do diskuze mohou pouze registrovaní uživatelé.
> Vyhledávání software
> Vyhledávání článků

15.4.2017 15:20 /František Kučera
Máš rád svobodný software a hardware nebo se o nich chceš něco dozvědět? Zajímá tě IoT a radiokomunikace? Přijď na sraz spolku OpenAlt, který se bude konat ve středu 19. dubna od 18:30 v Šenkovně (Sokolská 60, Praha 2).
Přidat komentář

5.3.2017 19:12 /Redakce Linuxsoft.cz
PR: 23. března proběhne v Praze konferenci na téma Cloud computing v praxi. Hlavními tématy jsou: Nejžhavější trendy v oblasti cloudu a cloudových řešení, Moderní cloudové služby, Infrastruktura současných cloudů, Efektivní využití cloudu, Nástrahy cloudových řešení a jak se jim vyhnout.
Přidat komentář

27.2.2017 22:12 /František Kučera
Pozvánka na 137. sraz OpenAlt – Praha: Tentokrát jsme si pro vás připravili neobvyklou akci. Ve středu 1.3. v 17:30 nás přivítá sdružení CZ.NIC ve svých prostorách v Milešovské ulici číslo 5 na Praze 3, kde si pro nás připravili krátkou prezentaci jejich činnosti. Následně navštívíme jejich datacentrum pod Žižkovskou věží. Provedou nás prostory, které jsou běžnému smrtelníkovi nedostupné!
Po ukončení prohlídky se všchni odebereme do hostince U vodoucha, Jagelonská 21, Praha 3 pochutnat si na některém z vybraných piv či dát si něco na zub. Rezervaci máme od 19:30, heslo je OpenAlt.
Ale pozor! Do prostor datového centra máme omezený přístup, dostane se tam pouze 10 lidí! Takže kdo přijde dříve, ten má přednost, a občanky s sebou! Kdo nebude chtít na prohlídku datového centra, může se pomalu přesunout do hostince U vodoucha a u nepřeberné nabídky piv počkat na ostatní.
Přidat komentář

18.1.2017 0:49 /František Kučera
Členové a příznivci spolku OpenAlt se pravidelně schází v Praze a Brně. Fotky z pražských srazů za uplynulý rok si můžete prohlédnout na stránkách spolku. Příští sraz se koná už 19. ledna – tentokrát je tématem ergonomie ovládání počítače – tzn. klávesnice, myši a další zařízení. Také budete mít příležitost si prohlédnout pražský hackerspace Brmlab.
Přidat komentář

8.1.2017 17:51 /František Kučera
Máš rád svobodný software a hardware nebo se o nich chceš něco dozvědět? Přijď na sraz spolku OpenAlt, který se bude konat ve čtvrtek 19. ledna od 18:30 v pražském hackerspacu Brmlab. Tentokrát je tématem srazu ergonomie ovládání počítače – tzn. klávesnice, myši a další zařízení. K vidění bude mechanická klávesnice dasKeyboard, trackball Logitech nebo grafický tablet (a velký touchpad) Wacom. Přineste i vy ukázat svoje zajímavé klávesnice a další HW. V 18:20 je sraz před budovou, v 18:30 jdeme společně dovnitř, je tedy dobré přijít včas. Podle zájmu se později přesuneme do nějaké restaurace v okolí.
Přidat komentář

1.12.2016 22:13 /František Kučera
Máš rád svobodný software a hardware nebo se o nich chceš něco dozvědět? Přijď na sraz spolku OpenAlt, který se bude konat ve čtvrtek 8. prosince od 18:00 v Radegastovně Perón (Stroupežnického 20, Praha 5). Sraz bude tentokrát tématický. Bude retro! K vidění budou přístroje jako Psion 5mx nebo Palm Z22. Ze svobodného hardwaru pak Openmoko nebo čtečka WikiReader. Přijďte se i vy pochlubit svými legendami, nebo alespoň na pivo. Moderní hardware má vstup samozřejmě také povolen.
Komentářů: 1

4.9.2016 20:13 /Pavel `Goldenfish' Kysilka
PR: Dne 22.9.2016 proběhne v Praze konference Cloud computing v praxi. Tématy bude např. nejnovější trendy v oblasti cloudu a cloudových řešení, provozování ERP v cloudu, o hostování různých typů softwaru, ale třeba i o zálohování dat nabízeném podnikům formou služby.
Přidat komentář

1.9.2016 11:27 /Honza Javorek
Česká konference o Pythonu, PyCon CZ, stále hledá přednášející skrz dobrovolné přihlášky. Máte-li zajímavé téma, neváhejte a zkuste jej přihlásit, uzávěrka je již 12. září. Konference letos přijímá i přednášky v češtině a nabízí pomoc s přípravou začínajícím speakerům. Řečníci mají navíc vstup zadarmo! Více na webu.
Přidat komentář

   Více ...   Přidat zprávičku

> Poslední diskuze

17.4.2017 19:15 / Jakub shoop
chyba

9.3.2017 11:44 / Jaromir Obr
Re: chyba

18.1.2017 20:18 / martin horky
Spolupraca linuxu a microsoftu

17.1.2017 9:57 / Pavel Hrubeš
Re: Externí USB televizní karta

4.12.2016 22:54 / František Kučera
Dárek

Více ...

ISSN 1801-3805 | Provozovatel: Pavel Kysilka, IČ: 72868490 (2003-2017) | mail at linuxsoft dot cz | Design: www.megadesign.cz | Textová verze