Uvod

Ovaj dokument služi kao pomoć pri učenju osnova pythona u sklopu kolegija Računarstvo i praktikum na prvoj godini istraživačkog smjera studija fizike na Fizičkom odsjeku Prirodoslovno-matematičkog fakulteta Sveučilišta u Zagrebu. Pretpostavlja se osnovno znanje C-a. Pretpostavlja se da se primjeri izvršavaju na Unix-like operativnom sustavu (linux, OSX). Primjeri u pythonu i C-u će raditi i na Windows-ima, ali će ih trebati pokrenuti na odgovarajući način.

Interpreter

  • Jezik python je napravljen tako da olakša (=ubrza) pisanje programa. Na primjer, nema deklariranja varijabli unaprijed, a dopušteno je miješanje tipova što znači dopušteno je a=1 i nakon toga a="xy".
  • Programe napisane u C-u je potrebno prvo prevesti u strojni jezik, a zatim izvršiti. Python umjesto toga koristi “simultano prevođenje” tj. program se prevodi u strojni jezik malo po malo. Programi koji prevode sve odjednom nazivaju se compileri (npr. gcc), a programi koji simultano prevode nazivaju se interpreteri (npr. python). Više na http://en.wikipedia.org/wiki/Interpreter_(computing).
  • 2 načina korištenja:
    • interaktivna ljuska: ljusku pokrenemo s python, upisujemo/izvršavamo naredbu po naredbu, iz ljuske izađemo pomoću CTRL-d — ovakav način nam omogućuje brzo isprobavanje dijelova programa;
    • samostalni programi: upišemo cijeli program pomoću tekst-editora i snimimo ga npr. pod imenom prg.py zatim pokrenemo pomoću python prg.py. (Ako postavimo da je datoteka prg.py izvršna, pomoću chmod u+x prg.py, i ako je prva linija programa prg.py standardno zaglavlje (vidi Uobičajeno zaglavlje, Zadaća 6 (itertools.groupby())), tada se program može pokrenuti samo s ./prg.py.)
  • Postoje 2 glavne verzije python-a. Mogu se preuzeti (besplatne su) s https://www.python.org.
    • python2 (npr. python 2.6, python 2.7)
    • python3 (npr. python 3.4) - nije kompatibilan unazad s pythonom 2 (to znači da programe za python2 treba prepraviti ako ih se želi izvršiti pomoću pythona 3).
  • Kako je python2 rašireniji, koristit ćemo njega.
  • Gore spomenuti python interpreteri (oni s https://www.python.org) predstavljaju jednu (standardnu) implementaciju jezika python, napisanu u C-u koja se naziva CPython. Postoje i implementacije jezika python pisane u drugim jezicima: java (Jython), RPython (PyPy), C# (IronPython) itd. Korištenje neke druge implementacije omogućuje lagan pristup bibliotekama jezika u kojem je ta implementacija pisana (ali u tom slučaju neke standardne (CPython-ove) biblioteke mogu biti nepodržane). Također postoje i RPython (podskup pythona) i Cython (http://cython.org, prevoditelj iz pythona u C) kojima je glavni cilj ubrzavanje izvršavanja. U nastavku ćemo se baviti samo standardnom, CPython, implementacijom.

Kako učiti

  1. S obzirom da već imate praksu u C-u prilično je lako naučiti osnove pythona. Za tu svrhu možete koristiti primjere s ovih stranica ili neki od tutoriala:
  1. Početi koristiti python. Pri tome se korisno pomagati već gotovim receptima:
  1. Ako ništa drugo ne upali, možete probati tražiti po službenim uputstvima za python:
  1. Za crtanje grafova u pythonu, koristan je dodatak matplotlib
  1. Za rad s poljima brojeva brojeva, koristan je dodatak numpy
  1. Gotove funkcije za numeriku, nalaze se u dodatku scipy
  1. Za određene primjene dobro je znati da postoje tzv. regular expressions. Ovo izlazi, naravno, van okvira kolegija, iako ste najjednostavniji oblik regular expressiona već vidjeli prilikom korištenja scanf() npr. scanf("%[^\n]",s) učitava u s sve do znaka za novi red.

Napomena

S pythonom i alatima numpy, scipy, matplotlib ćete se opet susresti u kolegijima Simboličko programiranje, Klasična mehanika, Kvantna fizika, ..., tako da trud koji uložite sada nije uzalud. Ipak, uputstava ima jako puno i ideja je proučiti detaljnije samo manji dio npr. primjere koji slijede ili neki od navedenih tutoriala, a ostale materijale koristiti kad i ako zatrebaju — kao rječnik ili telefonski imenik.