Přejít na obsah

1. Python - vlastnosti a odlišnosti

python skriptovací jazyk scripting language vEnd tutorial tut pycharm

  • Pokud chcete odpovědět, přihlaste se
4 odpovědí

#1
vEnd

vEnd

    Python maniac

  • Globální moderátor
  • Příspěvků: 682

*
POPULÁRNÍ

Obtížnost: 1.png
 
Osnova:
1. Úvod;
2. Charakteristika a vlastnosti jazyka;
3. Odlišnosti oproti jiným jazykům;
4. Užitečné odkazy;
5. Závěr.
 
1. Úvod
Zdravím, po delší pauze jsem se rozhodl, že rozjedu nový seriál, tentokrát zaměřený na jazyk Python. Tento jazyk mě hodně baví a rád bych vás do něj trochu zasvětil. Třeba vás zaujme stejně jako mě.

Předem bych chtěl varovat, že se nebude jednat o návody psané pro začátečníky s programováním, očekávám již nějakou programátorskou zkušenost. Nebudu dělat podrobné výklady té či oné části jazyka, budu uvádět jen důležité a věcné informace.

Postupně projdu různá témata – základní konstrukce jazyka, práci s regulárními výrazy, objektově orientované programování, podpora funkcionálního programování v Pythonu a různé zajímavé možnosti jazyka. Většina návodů bude psána pro verzi 3 a vyšší. V případě, že se daná vlastnost/funkce jazyka vyskytuje od určité verze, budu se snažit tuto informaci uvést.
 
K úvodním informacím by to bylo vše, v tomto návodu se podíváme na charakteristiku jazyka a poté si uvedeme rozdíly oproti jiným jazykům.
 
2. Charakteristika a vlastnosti jazyka
Nerad bych nudil táhlou historií vývoje, takže zmíním jen dva zajímavé fakty – Python se vyvíjí již od konce 80. let minulého století a jeho autorem je nizozemský programátor Guido van Rossum. Tímto máme historii pokrytou. Nebolelo to, že?
 
Každý programovací jazyk má svou charakteristiku. Je-li řeč o Pythonu, jako první zmíním, že se jedná o víceúčelový vysokoúrovňový skriptovací jazyk. Co je vysokoúrovňový jazyk vysvětlovat nebudu (hodně zjednodušeně – není to C ani assembler), stejně tak to bude s pojmem skriptovací (to si můžete vygooglit keepo.png).

 

Co bych ale rád rozebral je všestrannost Pythonu. Python totiž nemá jedno konkrétní zaměření. Lze si v něm vytvořit okenní aplikaci (PyQT, tkinter), stejně tak i testovací skripty ke studentským projektům (vysokoškoláci pochopí). Uplatnění má i při vývoji webových stránekher. Pokročilí programátoři jej využívají i pro strojové učení. Python můžete zkrátka využít (či zneužít) ke všem možným, nemožným, legálním i nelegálním programátorským nápadům.

 
Nyní se zaměřme na jeho konkrétní vlastnosti, které bychom měli znát. Dobré je vědět, že je multiplatformní. Pro ty, kdo se s tím slovem nikdy nesetkali – Python skripty vám budou fungovat i jinde než na Windows (na Linuxu, Mac OS X i dalších).

 

Abychom tyto ale skripty mohli vůbec spustit, budeme potřebovat interpret (ke stažení zde). V tuto chvíli bych měl asi říct, že je to tedy interpretovaný jazyk; to je taky z části pravda. Bez interpretu se neobejdeme, nicméně Python při spuštění skriptu generuje soubory, tzv. bytecode, jež jsou poté interpretovány. Proto bude lepší říct, že Python využívá to nejlepší z obou světů, tedy kompilace i interpretace.

Z programovacího hlediska by nás mohlo zajímat, že Python nevyžaduje deklaraci proměnných a využívá tzv. dynamického typování, což znamená, že nejenže nemusíme deklarovat, ale také nebudeme pevně určovat datový typ. Zkrátka si do proměnných uložíme, co se nám zrovna bude hodit. S datovými typy také souvisí silná typová kontrola. Tím vám chci naznačit, abyste hned zapomněli na veškerou černou magii z Javascriptu ("1" + 2 - "3" + "4" == "94") a podobných jazyků. V Pythonu nelze sčítat či odčítat řetězce s čísly a podobně.
 
Často vyzdvihovanou vlastností Pythonu je také to, že podporuje více paradigmat. Pokud jste se teď zhrozili při slově paradigma, nebojte se, nejde o nic strašného. Programovací paradigma si představte jako způsob řešení a zápisu dané úlohy. Existuje hodně paradigmat – procedurální (Pawn), objektově orientované (Java), logické (Prolog), funkcionální (Haskell)... Některé spolu souvisejí, některé jsou nadřazené jiným, další jsou přesným opakem jiných. Nebudu vám v tom dělat guláš, pro zájemce je tu třeba tento článek. A co tedy Python z toho všeho umožňuje? Úlohy v Pythonu lze řešit procedurálně, ale máme možnost využít i objektově orientované programování; do jisté míry umožňuje Python i funkcionální programování (o tom třeba později).

3. Odlišnosti oproti jiným jazykům
Teď už víme o základních vlastnostech Pythonu. V této druhé části návodu se podíváme na rozdíly oproti jiným známým jazykům.
 
Žádné středníky
Na konci příkazů a výrazů se, na rozdíl od jazyků jako C, Java či PHP, nepíše středník:
 


// kód v C
int n = 5;
printf("Proměnná 'n' má hodnotu %i", n);
# kód v Pythonu
n = 5
print("Proměnná 'n' má hodnotu", n)

 
Odsazení namísto složených závorek
Většina jazyků se syntaxí jazyka C (C/C++, C#, Java, PHP, Pawn atd.) využívá ke tvorbě bloků složené závorky. V Pythonu se bloky tvoří dvojtečkou za příkazem (if, else, for, while...) a odsazením (běžně 4 mezery):
 

// kód v C
if(promenna < 1)
{
    printf("Hodnota proměnné je menší než 1.");
    return 1;
}
# kód v Pythonu
if promenna < 1:
    print("Hodnota proměnné je menší než 1.")
    return 1

 
and, or, not
Logické operátory se nejčastěji zapisují jako && (and), || (or) a ! (not). V Pythonu se tyto operátory zapisují andornot:
 

// kód v C
if(promenna1 && promenna2 || !promenna1 && !promenna2)
# kód v Pythonu
if promenna1 and promenna2 or not promenna1 and not promenna2:

 
Pozměněné názvy příkazů
Tohle nebude žádná raketová věda, jen se tu a tam změnilo písmenko či slovíčko.

Příklad 1: Namísto else if se píše elif.
Příklad 2: Namísto catch u zachytávání výjimek máme except.

Příklad 3: Poznámky se píší za mřížku #, ne za dvě lomítka //.
Příklad 4: Zkuste najít. icon_e_wink.gif
 
Chybějící struktury a operátory
Ačkoliv vás to asi překvapí, v Pythonu neexistují jisté struktury a operátory, které jsou v ostatních jazycích běžné. Jedná se o struktury switchdo-while a operátory ++--. Není to ale nic, co by nešlo nahradit jiným kódem:
 

# kód v Pythonu

# náhrada switche
if promenna == 1:
    print("Je to jedna")
elif promenna == 2:
    print("Je to dva")
else:
    print("Je to Bůh ví co")

promenna += 1  # náhrada ++

 
Ternární operátor ?:
Mnozí z vás používají ternární operátor ?: pro tvorbu "inline podmínek". Ani tento operátor v Pythonu není, místo něj je tu konstrukce if-else:
 

// kód v C
promenna = 1 < 2 ? 1 : 0;  // podmínka ? pravda : nepravda
# kód v Pythonu
promenna = 1 if 1 < 2 else 0  # pravda if podmínka else nepravda

 
Funguje úplně stejně (podmínky lze řetězit), jen se změnilo pořadí operandů.
 
4. Užitečné odkazy
Zde máte několik užitečných odkazů, mimo jiné odkaz na stažení interpretu Pythonu, bez kterého jeho skripty nespustíte:
stažení interpretu Pythonu;
oficiální dokumentace Pythonu;
oficiální dokumentace Pythonu (pro starší verzi 2.7);
• kurz Pythonu na Codeacademy;

vývojové prostředí PyCharm (od JetBrains).
 
5. Závěr
A tím pro dnešek končím. Tento text byl jen lehkým úvodem do Pythonu, měli jsme možnost oťukat si trochu jeho syntaxi a uvést jeho vlastnosti. V příštím návodu se budeme věnovat konstrukcím v Pythonu.

Pokud jste narazili na nějakou chybu, nějaký překlep nebo se chcete na něco zeptat, případně mi napsat jen tak, jen do toho.


  • 5


I always enjoy meeting people more chemically imbalanced than myself. -Trevor Philips
It's hard to follow the train when you are hauling two number nines; a number nine large; a number six with extra dip; a number seven; two number 45s, one with cheese; and a large soda. -guess who


#2
Ewwe

Ewwe

    Zázraky na počkání, nemožné do dvou dnů

  • Administrátor
  • Příspěvků: 4 002

Steam Profile

  • Ewwe - Offline
    Since: Dnes, 07:59:40
    3,9 hrs last 2 weeks.
    Add Friend

     

Nevěř ničemu co definuje proměnou slovem 'var' a jazyku který nemá středníky


  • 0

Zaměstnání:

Axfone.cz - Programátor

Shortcat - CEO

 


#3
HighPrint

HighPrint

    =NTP= Member

  • Globální moderátor
  • Příspěvků: 1 299
  •   

Jestli s pythonem nekdy zajdes do machine learningu tak dej vedet :d 

 

Jinak stredniky se da psat i na konci prikazu a vyrazu, ale neni to standard a pythonovsti maniaci se ti za to vysmejou


  • 0

podpis.png


#4
vEnd

vEnd

    Python maniac

  • Globální moderátor
  • Příspěvků: 682

Nevěř ničemu co definuje proměnou slovem 'var' a jazyku který nemá středníky

Nevěř ničemu, o čem vznikne článek jako tento.

 

Jestli s pythonem nekdy zajdes do machine learningu tak dej vedet  

Na to asi v nejbližší době nedojde. :d 


  • 0

I always enjoy meeting people more chemically imbalanced than myself. -Trevor Philips
It's hard to follow the train when you are hauling two number nines; a number nine large; a number six with extra dip; a number seven; two number 45s, one with cheese; and a large soda. -guess who


#5
Tanga

Tanga

    Dieta internetu

  • Uživatel
  • Příspěvků: 1 141

Uživatelova ocenění

        

Nevěř ničemu co definuje proměnou slovem 'var' a jazyku který nemá středníky

 
 

Jinak stredniky se da psat i na konci prikazu a vyrazu, ale neni to standard a pythonovsti maniaci se ti za to vysmejou



#include <a_samp>

#pragma semicolon false

main()
{   
    printf("%d", 67250)
    print("it works lul")
}

Upraveno uživatelem Tanga: 09 září 2017 - 22:44:05

  • 1

“The only Zen you find on the tops of mountains is the Zen you bring up there.” ~Robert M. Pirsig

 

96b259ac47244701b5097887d9439120.png

 

Ku kódu nezabudnite priložiť SSCCE.

Spoiler





Také označeno jedním nebo více klíčovými slovy: Návod, python, skriptovací jazyk, scripting language, vEnd, tutorial, tut, pycharm

0 uživatelů si prohlíží toto fórum

0 uživatelů, 0 návštěvníků 0 anonymních uživatelů

© 2015 IPS, Inc.

Zajímat Vás mohou ještě aktuální zprávy. sleviště, slevy dnes Herbalife je skvělou cestou pro dobré zdraví. Je libo dětský web?