\documentclass{beamer} \usepackage[utf8]{inputenc} \usepackage[czech]{babel} \usepackage{palatino} \usepackage{verbatim} \usetheme{Warsaw} \title{Programování 1: Úvod do Pythonu} \author[Martin Mareš]{Martin Mareš\\\texttt{mj@ucw.cz}} \institute{Katedra Aplikované Matematiky\\MFF UK Praha} \date{2019} \begin{document} \setbeamertemplate{navigation symbols}{} \setbeamertemplate{footline}{} \setbeamerfont{title page}{family=\rmfamily} \begin{frame} \titlepage \end{frame} \def\>{\color{black}>>> \color{blue}} \def\=#1{{\color{teal}#1}\endgraf\smallskip} \def\py#1#2{% \def\tmp{#1}\ifx\tmp\empty\else {\tt\def\\{\hfil\break\>}\>#1}\\% \fi \def\tmp{#2}\ifx\tmp\empty\else {\tt\color{red}#2}\\% \fi \medskip } % ---------------------------------------------------------------------- \begin{frame}{Python jako kalkulačka} \py{1+1}{2} \py{2+3*4+1}{15} \py{2+3 * 4+1}{15} \py{(2+3)*(4+1)}{25} \py{2**10}{1024} \py{2**100}{1267650600228229401496703205376} \end{frame} % ---------------------------------------------------------------------- \begin{frame}{Desetinná čísla} \={Dělení vytváří \uv{desetinná} čísla s~omezenou přesností:} \py{1/3}{0.3333333333333333} \={Pozor, ne každá \uv{jednička} je rovna jedné:} \py{1/3*3}{1.0} \={Vskutku, je o kousek větší:} \py{1/3*3 > 0}{True} \={Notace s mantisou a exponentem: $m\cdot10^e$.} \py{1/(2**100)}{7.888609052210118e-31} \end{frame} % ---------------------------------------------------------------------- \begin{frame}{Celočíselné dělení} \={Celočíselné dělení:} \py{7//3}{2} \={Zbytek po dělení (modulo):} \py{7\%3}{1} \={Dělení záporného čísla zaokrouhluje dolů, nikoliv k nule:} \py{-7//3}{-3} \py{-(7//3)}{-2} \={Vždy platí {\tt (a//b)*b + (a\%b) = a}} \py{-7\%3}{2} \end{frame} % ---------------------------------------------------------------------- \begin{frame}{Proměnné} \={Hodnotu výrazu si můžeme pojmenovat:} \py{a=100\\b=23\\a+b}{23} \={Obsah proměnné jde měnit:} \py{soucet=0\\soucet=soucet+10\\soucet=soucet+3\\soucet}{13} \={Zkrácený zápis:} \py{soucet+=1\\soucet}{14} \end{frame} % ---------------------------------------------------------------------- \begin{frame}{Matematické funkce} \={Matematická knihovna:} \py{import math\\math.pi}{3.141592653589793} \py{math.sin(math.pi / 3)}{0.8660254037844386} \={Voláme o pomoc:} \py{help(math.sin)\\help(math)}{} \={Místo {\tt math.sin} můžeme psát prostě {\tt sin}:} \py{from math import *\\sin(0)}{} \end{frame} % ---------------------------------------------------------------------- \begin{frame}{Klademe Pythonu otázky} \py{5**7 > 7**5}{True} \py{cos(0) < 0}{False} \py{0.8 <= sin(pi/3) <= 0.9}{True} \py{pi>3 and pi<4}{True} \py{x>0 or not x>0}{True} \py{1 == 1}{True} \py{1 != 2}{True} \end{frame} % ---------------------------------------------------------------------- \begin{frame}{Náš první program: počítáme od 1 do 10} \verbatiminput{first.py} \bigskip Odsazování je povinné, udává blokovou strukturu programu. Pak je jasné, které příkazy jsou uvnitř cyklu, a~které už za ním. \end{frame} % ---------------------------------------------------------------------- \begin{frame}{Náš první program: vypisujeme jen sudá čísla} \verbatiminput{first-even.py} \end{frame} % ---------------------------------------------------------------------- \begin{frame}{Náš první program: zeptáme se, do kolika počítat} \verbatiminput{first-input.py} \bigskip V~uvozovkách se zapisují řetězce (o~nich později). Funkce {\tt input()} načte řetězec, {\tt int()} ho převede na číslo. \end{frame} % ---------------------------------------------------------------------- \begin{frame}{Náš první program: ještě trocha komentářů} \verbatiminput{first-comments.py} \bigskip Od {\tt\#} do konce řádku se vše ignoruje. Prvni řádek pod Linuxem říká, čím se má soubor spustit. \end{frame} % ---------------------------------------------------------------------- \end{document}