Programování

Co je Python? Výkonné a intuitivní programování

Od roku 1991 byl programovací jazyk Python považován za vyplňovač mezer, způsob psaní skriptů, které „automatizují nudné věci“ (jak to říká jedna populární kniha o učení Pythonu) nebo rychle prototypují aplikace, které budou implementovány v jiných jazycích .

Během několika posledních let se však Python ukázal jako prvotřídní občan v oblasti vývoje moderního softwaru, správy infrastruktury a analýzy dat. Už to není obslužný jazyk v zadní místnosti, ale hlavní síla při vytváření webových aplikací a správě systémů a klíčový faktor exploze v analýze velkých dat a strojové inteligenci.

Související video: Jak Python usnadňuje programování

Perfektní pro IT, Python zjednodušuje mnoho druhů práce, od automatizace systému až po práci v nejmodernějších oborech, jako je strojové učení.

Klíčové výhody Pythonu

Úspěch Pythonu se točí kolem několika výhod, které poskytuje začátečníkům i odborníkům.

Python se snadno učí a používá

Počet funkcí v samotném jazyce je skromný a vyžaduje relativně malou investici času nebo úsilí do vytvoření prvních programů. Syntaxe Pythonu je navržena tak, aby byla čitelná a přímočará. Díky této jednoduchosti je Python ideálním výukovým jazykem a umožňuje nováčkům rychle si ho osvojit. Výsledkem je, že vývojáři tráví více času přemýšlením o problému, který se snaží vyřešit, a méně času přemýšlením o jazykových složitostech nebo dešifrování kódu, který zanechali ostatní.

Python je široce přijímán a podporován

Python je populární a široce používaný, protože vysoké hodnocení v průzkumech, jako je Tiobe Index a velké množství projektů GitHub využívajících Python, potvrzuje. Python běží na každém hlavním operačním systému a platformě a také na většině menších. Mnoho hlavních knihoven a služeb využívajících rozhraní API má vazby nebo obálky Pythonu, které umožňují Pythonu volné rozhraní s těmito službami nebo přímo tyto knihovny používají.

Python není jazyk „hračky“

Přestože skriptování a automatizace pokrývají velkou část případů použití Pythonu (více o tom později), Python se také používá k vytváření softwaru v profesionální kvalitě, a to jak jako samostatné aplikace, tak jako webové služby. Python nemusí být nejrychlejší jazyk, ale co mu chybí v rychlosti, vynahradí to všestranností.

Python se neustále pohybuje vpřed

Každá revize jazyka Python přidává užitečné nové funkce, které drží krok s moderními postupy vývoje softwaru. Například asynchronní operace a korutiny jsou nyní standardní součástí jazyka, což usnadňuje psaní aplikací v Pythonu, které provádějí souběžné zpracování.

K čemu se Python používá

Nejzákladnějším případem použití pro Python je jako skriptovací a automatizační jazyk. Python není jen náhradou za skripty shellu nebo dávkové soubory; také se používá k automatizaci interakcí s webovými prohlížeči nebo aplikačním grafickým uživatelským rozhraním nebo k zajišťování a konfiguraci systému v nástrojích, jako jsou Ansible a Salt. Skriptování a automatizace však s Pythonem představují pouze špičku ledovce.

Generiální programování aplikací v Pythonu

V Pythonu můžete vytvářet jak aplikace příkazového řádku, tak i multiplatformní grafické uživatelské rozhraní a nasadit je jako samostatné spustitelné soubory. Python nemá nativní schopnost generovat samostatný binární soubor ze skriptu, ale k dosažení tohoto cíle lze použít balíčky třetích stran, jako jsou cx_Freeze a PyInstaller.

Datová věda a strojové učení s Pythonem

Sofistikovaná analýza dat se stala jednou z nejrychleji se rozvíjejících oblastí IT a jedním z hvězdných případů použití Pythonu. Drtivá většina knihoven používaných pro datovou vědu nebo strojové učení má rozhraní Pythonu, což z tohoto jazyka dělá nejoblíbenější rozhraní příkazů na vysoké úrovni pro knihovny strojového učení a další numerické algoritmy.

Webové služby a RESTful API v Pythonu

Nativní knihovny Pythonu a webové rámce třetích stran poskytují rychlé a pohodlné způsoby, jak vytvořit vše od jednoduchých rozhraní REST API v několika řádcích kódu až po plnohodnotné weby založené na datech. Nejnovější verze Pythonu silně podporují asynchronní operace a umožňují webům zpracovávat desítky tisíc požadavků za sekundu pomocí správných knihoven.

Metaprogramování a generování kódu v Pythonu

V Pythonu je vše v jazyce objekt, včetně samotných modulů a knihoven Pythonu. To umožňuje Pythonu pracovat jako vysoce efektivní generátor kódu, což umožňuje psát aplikace, které manipulují s vlastními funkcemi a mají takovou rozšiřitelnost, kterou by bylo obtížné nebo nemožné v jiných jazycích vytáhnout.

Python lze také použít k řízení systémů generování kódu, jako je LLVM, k efektivnímu vytváření kódu v jiných jazycích.

„Lepicí kód“ v Pythonu

Python je často popisován jako „lepicí jazyk“, což znamená, že umožňuje spolupráci různorodého kódu (obvykle knihoven s rozhraními jazyka C). Jeho použití ve vědě o datech a strojovém učení je v tomto duchu, ale to je jen jedno ztělesnění obecné myšlenky. Pokud máte aplikace nebo programové domény, které byste chtěli zapojit, ale nemůžete mezi sebou mluvit přímo, můžete je připojit pomocí Pythonu.

Kde Python nedosahuje

Za zmínku stojí také druhy úkolů, které Python má ne vhodný pro.

Python je jazyk vysoké úrovně, takže není vhodný pro programování na systémové úrovni - ovladače zařízení nebo jádra OS jsou mimo obraz.

Rovněž to není ideální pro situace, které vyžadují napříč platformami samostatné binární soubory. Můžete vytvořit samostatnou aplikaci Python pro Windows, MacOS a Linux, ale ne elegantně nebo jednoduše.

A konečně, Python není tou nejlepší volbou, když je rychlost absolutní prioritou ve všech aspektech aplikace. K tomu vám bude lépe C / C ++ nebo jiný jazyk tohoto kalibru.

Jak Python usnadňuje programování

Pythonova syntaxe má být čitelná a čistá, s malým předstíráním. Standardní „ahoj svět“ v Pythonu 3.x není nic jiného než:

tisk („Ahoj světe!“)

Python poskytuje mnoho syntaktických prvků pro výstižné vyjádření mnoha běžných toků programů. Zvažte ukázkový program pro čtení řádků z textového souboru do objektu seznamu, přičemž každý řádek zbavíte konce jeho nového znaku nového řádku:

s otevřeným („myfile.txt“) jako my_file:

file_lines = [x.rstrip („\ n“) pro x v mém_souboru]

The s / jako stavba je kontextový manažer, který poskytuje efektivní způsob, jak vytvořit instanci objektu pro blok kódu a poté jej zlikvidovat mimo tento blok. V tomto případě je objekt můj_soubor, konkretizovaný s otevřeno() funkce. Tím nahradíte několik řádků standardizovaného souboru, abyste soubor otevřeli, přečetli z něj jednotlivé řádky a poté jej zavřeli.

The [x… pro x v mém_souboru] konstrukce je další výstřední Python, seznam s porozuměním. Umožňuje položku, která obsahuje další položky (zde můj_soubor a řádky, které obsahuje) budou iterovány a umožní každému iterovanému prvku (tj. každému) X) budou zpracovány a automaticky připojeny k seznamu.

Vy mohl napsat takovou věc jako formální pro… smyčka v Pythonu, podobně jako v jiném jazyce. Jde o to, že Python má způsob, jak ekonomicky vyjádřit věci, jako jsou smyčky, které iterují více objektů a provádějí jednoduchou operaci s každým prvkem ve smyčce, nebo pracovat s věcmi, které vyžadují explicitní instanci a likvidaci.

Konstrukce, jako je tato, umožňují vývojářům Pythonu vyvažovat strohost a čitelnost.

Další jazykové funkce Pythonu jsou určeny k doplnění běžných případů použití. Většina moderních typů objektů - například řetězce Unicode - je zabudována přímo do jazyka. Datové struktury - jako seznamy, slovníky (tj. Hashmapy nebo úložiště klíč – hodnota), n-tice (pro ukládání neměnných kolekcí objektů) a sady (pro ukládání kolekcí jedinečných objektů) - jsou k dispozici jako standardní položky.

Python 2 vs. Python 3

Python je k dispozici ve dvou verzích, které jsou natolik odlišné, že narazí na mnoho nových uživatelů. Python 2.x, starší „starší“ větev, bude i nadále podporován (tj. Dostávat oficiální aktualizace) až do roku 2020 a poté může neoficiálně přetrvávat. Python 3.x, současná a budoucí inkarnace jazyka, má mnoho užitečných a důležitých funkcí, které Python 2.x nenašel, jako jsou nové funkce syntaxe (např. „Operátor mrože“), lepší ovládání souběžnosti a další efektivní tlumočník.

Přijetí Pythonu 3 bylo nejdéle zpomaleno relativním nedostatkem podpory knihoven třetích stran. Mnoho knihoven Pythonu podporovalo pouze Python 2, což ztěžovalo přepínání. Ale za posledních pár let se počet knihoven podporujících pouze Python 2 zmenšil; všechny nejoblíbenější knihovny jsou nyní kompatibilní s Pythonem 2 i Pythonem 3. Dnes je Python 3 tou nejlepší volbou pro nové projekty; není důvod vybírat Python 2, pokud nemáte jinou možnost. Pokud jste zaseknutí v Pythonu 2, máte k dispozici různé strategie.

Pythonovy knihovny

Úspěch Pythonu spočívá na bohatém ekosystému softwaru první a třetí strany. Python těží jak ze silné standardní knihovny, tak z velkorysého sortimentu snadno získaných a snadno použitelných knihoven od vývojářů třetích stran. Python byl obohacen desítkami let expanze a přispívání.

Standardní knihovna Pythonu poskytuje moduly pro běžné programovací úlohy - matematiku, zpracování řetězců, přístup k souborům a adresářům, síťové připojení, asynchronní operace, podprocesy, správu více procesů atd. Zahrnuje však také moduly, které spravují běžné programovací úlohy na vysoké úrovni potřebné pro moderní aplikace: čtení a zápis strukturovaných formátů souborů, jako jsou JSON a XML, manipulace s komprimovanými soubory, práce s internetovými protokoly a datovými formáty (webové stránky, adresy URL, e-mail). Většinou jakýkoli externí kód, který vystavuje rozhraní cizí funkce kompatibilní s C, je přístupný pomocí Pythonu typy modul.

Výchozí distribuce Pythonu také poskytuje rudimentární, ale užitečnou knihovnu GUI pro různé platformy prostřednictvím Tkinter a vloženou kopii databáze SQLite 3.

Tisíce knihoven třetích stran, které jsou k dispozici prostřednictvím Python Package Index (PyPI), představují nejsilnější ukázku popularity a všestrannosti Pythonu.

Například:

  • Knihovna BeautifulSoup poskytuje soubor nástrojů „vše v jednom“ pro škrábání HTML - dokonce i složitých a nefunkčních HTML - a extrakci dat z něj.
  • Díky požadavkům je práce s požadavky HTTP v měřítku bezbolestná a jednoduchá.
  • Rámečky jako Flask a Django umožňují rychlý vývoj webových služeb, které zahrnují jednoduché i pokročilé případy použití.
  • Více cloudových služeb lze spravovat prostřednictvím objektového modelu Pythonu pomocí Apache Libcloud.
  • NumPy, Pandas a Matplotlib urychlují matematické a statistické operace a usnadňují vytváření vizualizací dat.

Pythonovy kompromisy

Stejně jako C #, Java a Go má Python správu paměti, která shromažďuje odpadky, což znamená, že programátor nemusí implementovat kód pro sledování a uvolňování objektů. Za normálních okolností se uvolňování paměti děje automaticky na pozadí, ale pokud to představuje problém s výkonem, můžete jej spustit ručně nebo zcela deaktivovat nebo deklarovat celé oblasti objektů vyňatých z uvolňování paměti jako vylepšení výkonu.

Důležitým aspektem Pythonu je jeho dynamika. Se vším v jazyce, včetně funkcí a samotných modulů, se zachází jako s objekty. To je na úkor rychlosti (o tom později), ale psaní kódu na vysoké úrovni je mnohem snazší. Vývojáři mohou provádět složité manipulace s objekty pouze s několika pokyny a dokonce považovat části aplikace za abstrakce, které lze v případě potřeby změnit.

Python používá významné mezery byl citován jako jeden z nejlepších a nejhorších atributů Pythonu. Odsazení na druhém řádku níže není jen kvůli čitelnosti; je to součást syntaxe Pythonu. Tlumočníci Pythonu odmítnou programy, které k označení toku řízení nepoužívají správné odsazení.

s otevřeným („myfile.txt“) jako my_file:

file_lines = [x.rstrip („\ n“) pro x v mém_souboru]

Syntaktický bílý prostor může způsobit zvrásnění nosů a někteří lidé z tohoto důvodu Python odmítají. Ale přísná pravidla odsazení jsou v praxi mnohem méně rušivá, než by se teoreticky mohla zdát, a to i při minimálním počtu editorů kódu, a výsledkem je kód, který je čistší a čitelnější.

Další potenciální odbočka, zejména pro ty, kteří přicházejí z jazyků jako C nebo Java, je způsob, jakým Python zpracovává psaní proměnných. Ve výchozím nastavení používá Python dynamické nebo „kachní“ psaní - skvělé pro rychlé kódování, ale potenciálně problematické ve velkých kódových základnách. To znamená, že Python nedávno přidal podporu volitelného nápovědy typu kompilace, takže projekty, které mohou těžit ze statického psaní, ji mohou použít.

Je Python pomalý? Ne nutně

Jednou častou výhradou k Pythonu je, že je pomalý. Objektivně je to pravda. Programy v Pythonu obecně běží mnohem pomaleji než odpovídající programy v C / C ++ nebo Java. Některé programy v Pythonu budou pomalejší o řádově i více.