Додатак B — Python — кратак подсетник
Примери у уџбенику написани су у програмском језику Python. Овде су сабрани само они делови језика који се у њима користе, уз кратко упутство како да почнете.
О језику Python
Python је интерпретирани програмски језик: програм се не преводи унапред у извршни фајл, већ га наредбу по наредбу извршава програм који се зове интерпретер. Зато се Python може користити и интерактивно — откуцамо наредбу и одмах видимо резултат — што га чини погодним за учење, експериментисање и брзу проверу идеја. Језик има једноставну и читљиву синтаксу, а уз њега долази богата стандардна библиотека (у уџбенику користимо, на пример, модул itertools), док се за скоро сваку област могу наћи додатни пакети: за рад са подацима, графовима, машинско учење и вештачку интелигенцију.
Python је данас један од најпопуларнијих програмских језика. На листи TIOBE индекса, која прати популарност програмских језика, последњих година се налази на првом месту.
Преузимање и инсталација
Python се бесплатно преузима са званичног сајта python.org/downloads. Довољно је изабрати најновију верзију Python 3 за свој оперативни систем. При инсталацији на Windows-у треба укључити опцију Add python.exe to PATH, како би се Python могао покретати из командне линије. На macOS-у и Linux-у Python је често већ инсталиран, а новија верзија се инсталира са истог сајта или преко менаџера пакета. Додатни пакети инсталирају се алатом pip, нпр. pip install networkx.
Окружења за рад
Python програм се може писати у било ком уређивачу текста, али је удобније користити неко од окружења:
- IDLE — једноставно окружење које се инсталира заједно са Python-ом;
- Thonny (thonny.org) — окружење намењено почетницима, са прегледним приказом променљивих током извршавања;
- Visual Studio Code (code.visualstudio.com) — бесплатан уређивач кода, уз додатак за Python;
- PyCharm (jetbrains.com/pycharm) — развојно окружење специјализовано за Python, бесплатно за студенте;
- Jupyter (jupyter.org) — свеске у којима се код, резултати и текст смењују, као у овом уџбенику;
- Google Colab (colab.research.google.com) — Jupyter свеске у прегледачу, без икакве инсталације (потребан је само Google налог).
За примере из уџбеника довољни су IDLE или Thonny, а за рад у прегледачу без инсталације Google Colab.
Скупови и торке
| Запис | Значење |
|---|---|
A = {1, 2, 3} |
скуп задат набрајањем |
A = set() |
празан скуп ({} је празан речник, не скуп) |
{x for x in range(1, 11) if x % 2 == 0} |
скуп задат својством |
x in A, x not in A |
припадност елемента скупу |
A <= B, A < B |
подскуп, прави подскуп |
A.union(B), A & B, A - B |
унија, пресек, разлика |
A ^ B |
симетрична разлика |
len(A) |
број елемената |
A.add(x), A.remove(x) |
додавање и уклањање елемента |
t = (1, 2, 3) |
торка (не може се мењати) |
a, b, c = t |
распакивање торке |
Унија се краће пише и оператором „усправна црта“: A | B.
Логичке операције
| Запис | Значење |
|---|---|
True, False |
тачно, нетачно |
not p |
негација |
p and q |
конјункција |
p or q |
дисјункција |
p != q |
ексклузивна дисјункција (за вредности True/False) |
(not p) or q |
импликација \(p \Rightarrow q\) |
p == q |
еквиваленција |
Петље и валуације
Све валуације за \(n\) исказних слова добијају се модулом itertools:
import itertools
for p, q in itertools.product([False, True], repeat=2):
print(p, q, (not p) or q)Графови
За рад са графовима користи се библиотека networkx, а за цртање matplotlib:
import networkx as nx
import matplotlib.pyplot as plt
G = nx.Graph()
G.add_edges_from([(1, 2), (2, 3), (3, 1)])
nx.draw(G, with_labels=True)
plt.show()