% Default to the notebook output style % Inherit from the specified cell style. \documentclass[11pt]{article} \usepackage[T1]{fontenc} % Nicer default font (+ math font) than Computer Modern for most use cases \usepackage{mathpazo} % Basic figure setup, for now with no caption control since it's done % automatically by Pandoc (which extracts  syntax from Markdown). \usepackage{graphicx} % We will generate all images so they have a width \maxwidth. This means % that they will get their normal width if they fit onto the page, but % are scaled down if they would overflow the margins. \makeatletter \def\maxwidth{\ifdim\Gin@nat@width>\linewidth\linewidth \else\Gin@nat@width\fi} \makeatother \let\Oldincludegraphics\includegraphics % Set max figure width to be 80% of text width, for now hardcoded. \renewcommand{\includegraphics}[1]{\Oldincludegraphics[width=.8\maxwidth]{#1}} % Ensure that by default, figures have no caption (until we provide a % proper Figure object with a Caption API and a way to capture that % in the conversion process - todo). \usepackage{caption} \DeclareCaptionLabelFormat{nolabel}{} \captionsetup{labelformat=nolabel} \usepackage{adjustbox} % Used to constrain images to a maximum size \usepackage{xcolor} % Allow colors to be defined \usepackage{enumerate} % Needed for markdown enumerations to work \usepackage{geometry} % Used to adjust the document margins \usepackage{amsmath} % Equations \usepackage{amssymb} % Equations \usepackage{textcomp} % defines textquotesingle % Hack from http://tex.stackexchange.com/a/47451/13684: \AtBeginDocument{% \def\PYZsq{\textquotesingle}% Upright quotes in Pygmentized code } \usepackage{upquote} % Upright quotes for verbatim code \usepackage{eurosym} % defines \euro \usepackage[mathletters]{ucs} % Extended unicode (utf-8) support \usepackage[utf8x]{inputenc} % Allow utf-8 characters in the tex document \usepackage{fancyvrb} % verbatim replacement that allows latex \usepackage{grffile} % extends the file name processing of package graphics % to support a larger range % The hyperref package gives us a pdf with properly built % internal navigation ('pdf bookmarks' for the table of contents, % internal cross-reference links, web links for URLs, etc.) \usepackage{hyperref} \usepackage{longtable} % longtable support required by pandoc >1.10 \usepackage{booktabs} % table support for pandoc > 1.12.2 \usepackage[inline]{enumitem} % IRkernel/repr support (it uses the enumerate* environment) \usepackage[normalem]{ulem} % ulem is needed to support strikethroughs (\sout) % normalem makes italics be italics, not underlines % Colors for the hyperref package \definecolor{urlcolor}{rgb}{0,.145,.698} \definecolor{linkcolor}{rgb}{.71,0.21,0.01} \definecolor{citecolor}{rgb}{.12,.54,.11} % ANSI colors \definecolor{ansi-black}{HTML}{3E424D} \definecolor{ansi-black-intense}{HTML}{282C36} \definecolor{ansi-red}{HTML}{E75C58} \definecolor{ansi-red-intense}{HTML}{B22B31} \definecolor{ansi-green}{HTML}{00A250} \definecolor{ansi-green-intense}{HTML}{007427} \definecolor{ansi-yellow}{HTML}{DDB62B} \definecolor{ansi-yellow-intense}{HTML}{B27D12} \definecolor{ansi-blue}{HTML}{208FFB} \definecolor{ansi-blue-intense}{HTML}{0065CA} \definecolor{ansi-magenta}{HTML}{D160C4} \definecolor{ansi-magenta-intense}{HTML}{A03196} \definecolor{ansi-cyan}{HTML}{60C6C8} \definecolor{ansi-cyan-intense}{HTML}{258F8F} \definecolor{ansi-white}{HTML}{C5C1B4} \definecolor{ansi-white-intense}{HTML}{A1A6B2} % commands and environments needed by pandoc snippets % extracted from the output of `pandoc -s` \providecommand{\tightlist}{% \setlength{\itemsep}{0pt}\setlength{\parskip}{0pt}} \DefineVerbatimEnvironment{Highlighting}{Verbatim}{commandchars=\\\{\}} % Add ',fontsize=\small' for more characters per line \newenvironment{Shaded}{}{} \newcommand{\KeywordTok}[1]{\textcolor[rgb]{0.00,0.44,0.13}{\textbf{{#1}}}} \newcommand{\DataTypeTok}[1]{\textcolor[rgb]{0.56,0.13,0.00}{{#1}}} \newcommand{\DecValTok}[1]{\textcolor[rgb]{0.25,0.63,0.44}{{#1}}} \newcommand{\BaseNTok}[1]{\textcolor[rgb]{0.25,0.63,0.44}{{#1}}} \newcommand{\FloatTok}[1]{\textcolor[rgb]{0.25,0.63,0.44}{{#1}}} \newcommand{\CharTok}[1]{\textcolor[rgb]{0.25,0.44,0.63}{{#1}}} \newcommand{\StringTok}[1]{\textcolor[rgb]{0.25,0.44,0.63}{{#1}}} \newcommand{\CommentTok}[1]{\textcolor[rgb]{0.38,0.63,0.69}{\textit{{#1}}}} \newcommand{\OtherTok}[1]{\textcolor[rgb]{0.00,0.44,0.13}{{#1}}} \newcommand{\AlertTok}[1]{\textcolor[rgb]{1.00,0.00,0.00}{\textbf{{#1}}}} \newcommand{\FunctionTok}[1]{\textcolor[rgb]{0.02,0.16,0.49}{{#1}}} \newcommand{\RegionMarkerTok}[1]{{#1}} \newcommand{\ErrorTok}[1]{\textcolor[rgb]{1.00,0.00,0.00}{\textbf{{#1}}}} \newcommand{\NormalTok}[1]{{#1}} % Additional commands for more recent versions of Pandoc \newcommand{\ConstantTok}[1]{\textcolor[rgb]{0.53,0.00,0.00}{{#1}}} \newcommand{\SpecialCharTok}[1]{\textcolor[rgb]{0.25,0.44,0.63}{{#1}}} \newcommand{\VerbatimStringTok}[1]{\textcolor[rgb]{0.25,0.44,0.63}{{#1}}} \newcommand{\SpecialStringTok}[1]{\textcolor[rgb]{0.73,0.40,0.53}{{#1}}} \newcommand{\ImportTok}[1]{{#1}} \newcommand{\DocumentationTok}[1]{\textcolor[rgb]{0.73,0.13,0.13}{\textit{{#1}}}} \newcommand{\AnnotationTok}[1]{\textcolor[rgb]{0.38,0.63,0.69}{\textbf{\textit{{#1}}}}} \newcommand{\CommentVarTok}[1]{\textcolor[rgb]{0.38,0.63,0.69}{\textbf{\textit{{#1}}}}} \newcommand{\VariableTok}[1]{\textcolor[rgb]{0.10,0.09,0.49}{{#1}}} \newcommand{\ControlFlowTok}[1]{\textcolor[rgb]{0.00,0.44,0.13}{\textbf{{#1}}}} \newcommand{\OperatorTok}[1]{\textcolor[rgb]{0.40,0.40,0.40}{{#1}}} \newcommand{\BuiltInTok}[1]{{#1}} \newcommand{\ExtensionTok}[1]{{#1}} \newcommand{\PreprocessorTok}[1]{\textcolor[rgb]{0.74,0.48,0.00}{{#1}}} \newcommand{\AttributeTok}[1]{\textcolor[rgb]{0.49,0.56,0.16}{{#1}}} \newcommand{\InformationTok}[1]{\textcolor[rgb]{0.38,0.63,0.69}{\textbf{\textit{{#1}}}}} \newcommand{\WarningTok}[1]{\textcolor[rgb]{0.38,0.63,0.69}{\textbf{\textit{{#1}}}}} % Define a nice break command that doesn't care if a line doesn't already % exist. \def\br{\hspace*{\fill} \\* } % Math Jax compatability definitions \def\gt{>} \def\lt{<} % Document parameters \title{Python Summary} % Pygments definitions \makeatletter \def\PY@reset{\let\PY@it=\relax \let\PY@bf=\relax% \let\PY@ul=\relax \let\PY@tc=\relax% \let\PY@bc=\relax \let\PY@ff=\relax} \def\PY@tok#1{\csname PY@tok@#1\endcsname} \def\PY@toks#1+{\ifx\relax#1\empty\else% \PY@tok{#1}\expandafter\PY@toks\fi} \def\PY@do#1{\PY@bc{\PY@tc{\PY@ul{% \PY@it{\PY@bf{\PY@ff{#1}}}}}}} \def\PY#1#2{\PY@reset\PY@toks#1+\relax+\PY@do{#2}} \expandafter\def\csname PY@tok@nv\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} \expandafter\def\csname PY@tok@kc\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} \expandafter\def\csname PY@tok@gd\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.63,0.00,0.00}{##1}}} \expandafter\def\csname PY@tok@no\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.53,0.00,0.00}{##1}}} \expandafter\def\csname PY@tok@cp\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.74,0.48,0.00}{##1}}} \expandafter\def\csname PY@tok@nd\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.67,0.13,1.00}{##1}}} \expandafter\def\csname PY@tok@il\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} \expandafter\def\csname PY@tok@sa\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} \expandafter\def\csname PY@tok@vm\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} \expandafter\def\csname PY@tok@nb\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} \expandafter\def\csname PY@tok@vc\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} \expandafter\def\csname PY@tok@mi\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} \expandafter\def\csname PY@tok@k\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} \expandafter\def\csname PY@tok@si\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.73,0.40,0.53}{##1}}} \expandafter\def\csname PY@tok@gi\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.00,0.63,0.00}{##1}}} \expandafter\def\csname PY@tok@cs\endcsname{\let\PY@it=\textit\def\PY@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}} \expandafter\def\csname PY@tok@kt\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.69,0.00,0.25}{##1}}} \expandafter\def\csname PY@tok@kn\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} \expandafter\def\csname PY@tok@vi\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} \expandafter\def\csname PY@tok@mo\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} \expandafter\def\csname PY@tok@gr\endcsname{\def\PY@tc##1{\textcolor[rgb]{1.00,0.00,0.00}{##1}}} \expandafter\def\csname PY@tok@sx\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} \expandafter\def\csname PY@tok@sr\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.73,0.40,0.53}{##1}}} \expandafter\def\csname PY@tok@ow\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.67,0.13,1.00}{##1}}} \expandafter\def\csname PY@tok@ni\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.60,0.60,0.60}{##1}}} \expandafter\def\csname PY@tok@s1\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} \expandafter\def\csname PY@tok@c\endcsname{\let\PY@it=\textit\def\PY@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}} \expandafter\def\csname PY@tok@ge\endcsname{\let\PY@it=\textit} \expandafter\def\csname PY@tok@ne\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.82,0.25,0.23}{##1}}} \expandafter\def\csname PY@tok@mb\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} \expandafter\def\csname PY@tok@kd\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} \expandafter\def\csname PY@tok@gp\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.00,0.50}{##1}}} \expandafter\def\csname PY@tok@cpf\endcsname{\let\PY@it=\textit\def\PY@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}} \expandafter\def\csname PY@tok@err\endcsname{\def\PY@bc##1{\setlength{\fboxsep}{0pt}\fcolorbox[rgb]{1.00,0.00,0.00}{1,1,1}{\strut ##1}}} \expandafter\def\csname PY@tok@o\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} \expandafter\def\csname PY@tok@vg\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} \expandafter\def\csname PY@tok@s2\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} \expandafter\def\csname PY@tok@sh\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} \expandafter\def\csname PY@tok@m\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} \expandafter\def\csname PY@tok@nn\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.00,1.00}{##1}}} \expandafter\def\csname PY@tok@ch\endcsname{\let\PY@it=\textit\def\PY@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}} \expandafter\def\csname PY@tok@cm\endcsname{\let\PY@it=\textit\def\PY@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}} \expandafter\def\csname PY@tok@go\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.53,0.53,0.53}{##1}}} \expandafter\def\csname PY@tok@mf\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} \expandafter\def\csname PY@tok@nl\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.63,0.63,0.00}{##1}}} \expandafter\def\csname PY@tok@nc\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.00,1.00}{##1}}} \expandafter\def\csname PY@tok@dl\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} \expandafter\def\csname PY@tok@c1\endcsname{\let\PY@it=\textit\def\PY@tc##1{\textcolor[rgb]{0.25,0.50,0.50}{##1}}} \expandafter\def\csname PY@tok@s\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} \expandafter\def\csname PY@tok@nt\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} \expandafter\def\csname PY@tok@kp\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} \expandafter\def\csname PY@tok@gt\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.00,0.27,0.87}{##1}}} \expandafter\def\csname PY@tok@mh\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.40,0.40,0.40}{##1}}} \expandafter\def\csname PY@tok@na\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.49,0.56,0.16}{##1}}} \expandafter\def\csname PY@tok@gs\endcsname{\let\PY@bf=\textbf} \expandafter\def\csname PY@tok@w\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.73,0.73,0.73}{##1}}} \expandafter\def\csname PY@tok@sb\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} \expandafter\def\csname PY@tok@fm\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.00,0.00,1.00}{##1}}} \expandafter\def\csname PY@tok@gh\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.00,0.50}{##1}}} \expandafter\def\csname PY@tok@bp\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} \expandafter\def\csname PY@tok@nf\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.00,0.00,1.00}{##1}}} \expandafter\def\csname PY@tok@sc\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} \expandafter\def\csname PY@tok@se\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.73,0.40,0.13}{##1}}} \expandafter\def\csname PY@tok@kr\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.00,0.50,0.00}{##1}}} \expandafter\def\csname PY@tok@ss\endcsname{\def\PY@tc##1{\textcolor[rgb]{0.10,0.09,0.49}{##1}}} \expandafter\def\csname PY@tok@sd\endcsname{\let\PY@it=\textit\def\PY@tc##1{\textcolor[rgb]{0.73,0.13,0.13}{##1}}} \expandafter\def\csname PY@tok@gu\endcsname{\let\PY@bf=\textbf\def\PY@tc##1{\textcolor[rgb]{0.50,0.00,0.50}{##1}}} \def\PYZbs{\char`\\} \def\PYZus{\char`\_} \def\PYZob{\char`\{} \def\PYZcb{\char`\}} \def\PYZca{\char`\^} \def\PYZam{\char`\&} \def\PYZlt{\char`\<} \def\PYZgt{\char`\>} \def\PYZsh{\char`\#} \def\PYZpc{\char`\%} \def\PYZdl{\char`\$} \def\PYZhy{\char`\-} \def\PYZsq{\char`\'} \def\PYZdq{\char`\"} \def\PYZti{\char`\~} % for compatibility with earlier versions \def\PYZat{@} \def\PYZlb{[} \def\PYZrb{]} \makeatother % Exact colors from NB \definecolor{incolor}{rgb}{0.0, 0.0, 0.5} \definecolor{outcolor}{rgb}{0.545, 0.0, 0.0} % Prevent overflowing lines due to hard-to-break entities \sloppy % Setup hyperref package \hypersetup{ breaklinks=true, % so long urls are correctly broken across lines colorlinks=true, urlcolor=urlcolor, linkcolor=linkcolor, citecolor=citecolor, } % Slightly bigger margins than the latex defaults \geometry{verbose,tmargin=1in,bmargin=1in,lmargin=1in,rmargin=1in} \begin{document} \maketitle \section{Awesome Jupyter Notebook}\label{awesome-jupyter-notebook} \begin{quote} Session 2 \end{quote} \begin{quote} Python Workshop for Benjama EEP \end{quote} \subsection{Objectives}\label{objectives} \begin{enumerate} \def\labelenumi{\arabic{enumi}.} \tightlist \item bool - True, False \item \href{04\%20If\%20Statements.ipynb}{If-else} \item \href{05\%20While\%20Loops\%20and\%20User\%20Input.ipynb}{While} \item For \item \href{07\%20Introduction\%20to\%20Functions.ipynb}{Function} \item \href{Object\%20Oriented\%20Programming.ipynb}{Object Oriented Programming} \end{enumerate} \subsection{List - ลำดับ}\label{list---uxe25uxe33uxe14uxe1a} \begin{Shaded} \begin{Highlighting}[] \NormalTok{speakers }\OperatorTok{=} \NormalTok{[ }\StringTok{'K'}\NormalTok{, }\StringTok{'Kai'}\NormalTok{, }\StringTok{'Or'}\NormalTok{, }\StringTok{'Paul'}\NormalTok{, }\StringTok{'Tom'}\NormalTok{, }\StringTok{'Woot'} \NormalTok{]} \NormalTok{heights }\OperatorTok{=} \NormalTok{[ }\DecValTok{180}\NormalTok{, }\DecValTok{164}\NormalTok{, }\DecValTok{165}\NormalTok{, }\DecValTok{165}\NormalTok{, }\DecValTok{180}\NormalTok{, }\DecValTok{170} \NormalTok{]} \NormalTok{pop }\OperatorTok{=} \NormalTok{[ }\FloatTok{3.25}\NormalTok{, }\FloatTok{3.9}\NormalTok{, }\DecValTok{4}\NormalTok{, }\DecValTok{3}\NormalTok{, }\FloatTok{3.5}\NormalTok{, }\FloatTok{3.44} \NormalTok{] } \end{Highlighting} \end{Shaded} \subsubsection{เข้าถึงข้อมูลในลำดับ}\label{uxe40uxe02uxe32uxe16uxe07uxe02uxe2duxe21uxe25uxe43uxe19uxe25uxe33uxe14uxe1a} \begin{Shaded} \begin{Highlighting}[] \BuiltInTok{print}\NormalTok{(speakers[}\DecValTok{0}\NormalTok{])} \BuiltInTok{print}\NormalTok{(speakers[}\DecValTok{1}\NormalTok{])} \BuiltInTok{print}\NormalTok{(speakers[}\DecValTok{2}\NormalTok{])} \end{Highlighting} \end{Shaded} \subsubsection{การกำหนดค่าลำดับ}\label{uxe01uxe32uxe23uxe01uxe33uxe2buxe19uxe14uxe04uxe32uxe25uxe33uxe14uxe1a} \begin{Shaded} \begin{Highlighting}[] \NormalTok{speakers[}\DecValTok{0}\NormalTok{] }\OperatorTok{=} \StringTok{'Kriengsak'} \BuiltInTok{print}\NormalTok{(}\BuiltInTok{str}\NormalTok{(speakers))} \NormalTok{speakers[}\DecValTok{0}\NormalTok{] }\OperatorTok{=} \StringTok{'K'} \BuiltInTok{print}\NormalTok{(}\BuiltInTok{str}\NormalTok{(speakers))} \end{Highlighting} \end{Shaded} \subsubsection{การหาค่าต่ำสุด-สูงสุด-ผลรวม ของลำดับ}\label{uxe01uxe32uxe23uxe2buxe32uxe04uxe32uxe15uxe33uxe2auxe14-uxe2auxe07uxe2auxe14-uxe1cuxe25uxe23uxe27uxe21-uxe02uxe2duxe07uxe25uxe33uxe14uxe1a} \begin{Shaded} \begin{Highlighting}[] \BuiltInTok{print}\NormalTok{( }\BuiltInTok{max}\NormalTok{(heights) )} \BuiltInTok{print}\NormalTok{( }\BuiltInTok{min}\NormalTok{(pop) )} \BuiltInTok{print}\NormalTok{( }\BuiltInTok{sum}\NormalTok{(heights) )} \end{Highlighting} \end{Shaded} \subsection{bool - ค่าจริง-เท็จ}\label{bool---uxe04uxe32uxe08uxe23uxe07-uxe40uxe17uxe08} \begin{Shaded} \begin{Highlighting}[] \NormalTok{speakers }\OperatorTok{=} \NormalTok{[ }\StringTok{'K'}\NormalTok{, }\StringTok{'Kai'}\NormalTok{, }\StringTok{'Or'}\NormalTok{, }\StringTok{'Paul'}\NormalTok{, }\StringTok{'Tom'}\NormalTok{, }\StringTok{'Woot'} \NormalTok{]} \NormalTok{heights }\OperatorTok{=} \NormalTok{[ }\DecValTok{180}\NormalTok{, }\DecValTok{164}\NormalTok{, }\DecValTok{165}\NormalTok{, }\DecValTok{165}\NormalTok{, }\DecValTok{180}\NormalTok{, }\DecValTok{170} \NormalTok{]} \NormalTok{popularity }\OperatorTok{=} \NormalTok{[ }\FloatTok{3.25}\NormalTok{, }\FloatTok{3.9}\NormalTok{, }\DecValTok{4}\NormalTok{, }\DecValTok{3}\NormalTok{, }\FloatTok{3.5}\NormalTok{, }\FloatTok{3.44} \NormalTok{] } \BuiltInTok{print}\NormalTok{( }\StringTok{'K'} \OperatorTok{in} \NormalTok{speakers )} \BuiltInTok{print}\NormalTok{( }\StringTok{'Justin Bieber'} \OperatorTok{in} \NormalTok{speakers )} \BuiltInTok{print}\NormalTok{( speakers[}\DecValTok{0}\NormalTok{] }\OperatorTok{==} \StringTok{'K'} \NormalTok{)} \BuiltInTok{print}\NormalTok{( speakers[}\DecValTok{3}\NormalTok{] }\OperatorTok{==} \StringTok{'Wichit'} \NormalTok{)} \end{Highlighting} \end{Shaded} \subsection{If-else}\label{if-else} \subsubsection{เงื่อนไขเดียว}\label{uxe40uxe07uxe2duxe19uxe44uxe02uxe40uxe14uxe22uxe27} \begin{Shaded} \begin{Highlighting}[] \ControlFlowTok{if} \NormalTok{ค่าจริงเท็จ: } \NormalTok{คำสั่งที่จะทำเมื่อเป็นจริง} \ControlFlowTok{else}\NormalTok{:} \NormalTok{คำสั่งที่จะทำเมื่อเป็นเท็จ} \end{Highlighting} \end{Shaded} \begin{quote} ต้วอย่าง \end{quote} \begin{Shaded} \begin{Highlighting}[] \ControlFlowTok{if} \StringTok{'Justin Bieber'} \OperatorTok{in} \NormalTok{speakers:} \BuiltInTok{print}\NormalTok{(}\StringTok{'นักร้องดังนานาชาติมา'}\NormalTok{)} \ControlFlowTok{else}\NormalTok{:} \BuiltInTok{print}\NormalTok{(}\StringTok{'ไม่มีนักร้องดังมางาน'}\NormalTok{)} \end{Highlighting} \end{Shaded} \subsubsection{หลายเงื่อนไข}\label{uxe2buxe25uxe32uxe22uxe40uxe07uxe2duxe19uxe44uxe02} \begin{Shaded} \begin{Highlighting}[] \ControlFlowTok{if} \NormalTok{เงื่อนไข}\DecValTok{1}\NormalTok{:} \NormalTok{คำสั่งที่จะทำเมื่อเงื่อนไข}\DecValTok{1}\NormalTok{เป็นจริง} \ControlFlowTok{elif} \NormalTok{เงื่อนไข}\DecValTok{2}\NormalTok{:} \NormalTok{คำสั่งที่จะทำเมื่อเงื่อนไข}\DecValTok{2}\NormalTok{เป็นจริง} \ControlFlowTok{elif} \NormalTok{เงื่อนไข}\DecValTok{3}\NormalTok{:} \NormalTok{คำสั่งที่จะทำเมื่อเงื่อนไข}\DecValTok{3}\NormalTok{เป็นจริง} \ControlFlowTok{else}\NormalTok{: } \NormalTok{คำสั่งที่จะทำเมื่อเงื่อนไขทั้งหมดเป็นเท็จ} \end{Highlighting} \end{Shaded} \subsection{While}\label{while} \begin{Shaded} \begin{Highlighting}[] \ControlFlowTok{while} \NormalTok{เงื่อนไข:} \NormalTok{คำสั่งที่จะทำเมื่อตรวจสอบเงื่อนไขในแต่ละรอบแล้วเป็นจริง} \end{Highlighting} \end{Shaded} \begin{quote} ตัวอย่าง \end{quote} \begin{Shaded} \begin{Highlighting}[] \NormalTok{i }\OperatorTok{=} \DecValTok{0} \ControlFlowTok{while} \NormalTok{i }\OperatorTok{<} \DecValTok{10}\NormalTok{:} \BuiltInTok{print}\NormalTok{(}\StringTok{'i = '}\OperatorTok{+}\BuiltInTok{str}\NormalTok{(i))} \NormalTok{i }\OperatorTok{=} \NormalTok{i}\DecValTok{+1} \end{Highlighting} \end{Shaded} \subsection{For}\label{for} \begin{Shaded} \begin{Highlighting}[] \ControlFlowTok{for} \NormalTok{สมาชิก }\OperatorTok{in} \NormalTok{ลำดับ:} \NormalTok{คำสั่งที่จะทำสำหรับสมาชิกแต่ละตัว} \end{Highlighting} \end{Shaded} \begin{quote} ตัวอย่าง \end{quote} \begin{Shaded} \begin{Highlighting}[] \NormalTok{speakers }\OperatorTok{=} \NormalTok{[ }\StringTok{'K'}\NormalTok{, }\StringTok{'Kai'}\NormalTok{, }\StringTok{'Or'}\NormalTok{, }\StringTok{'Paul'}\NormalTok{, }\StringTok{'Tom'}\NormalTok{, }\StringTok{'Woot'} \NormalTok{]} \ControlFlowTok{for} \NormalTok{speaker }\OperatorTok{in} \NormalTok{speakers:} \BuiltInTok{print}\NormalTok{(speaker)} \end{Highlighting} \end{Shaded} \subsection{Function - การเขียนฟังก์ชัน}\label{function---uxe01uxe32uxe23uxe40uxe02uxe22uxe19uxe1fuxe07uxe01uxe0auxe19} \begin{Shaded} \begin{Highlighting}[] \KeywordTok{def} \NormalTok{ชื่อฟังก์ชัน(รายการข้อมูลที่รับมา):} \NormalTok{คำสั่งภายในฟังก์ชัน} \end{Highlighting} \end{Shaded} \begin{quote} ตัวอย่าง \end{quote} \begin{Shaded} \begin{Highlighting}[] \KeywordTok{def} \NormalTok{statsummary(a):} \ImportTok{import} \NormalTok{statistics} \BuiltInTok{print}\NormalTok{(}\StringTok{'ลำดับ: '}\OperatorTok{+}\BuiltInTok{str}\NormalTok{(a))} \BuiltInTok{print}\NormalTok{(}\StringTok{'ค่าเฉลี่ยของลำดับ: '}\OperatorTok{+}\BuiltInTok{str}\NormalTok{(statistics.mean(a)))} \BuiltInTok{print}\NormalTok{(}\StringTok{'ค่าเบี่ยงเบนมาตรฐานของลำดับ: '}\OperatorTok{+}\BuiltInTok{str}\NormalTok{(statistics.stdev(a)))} \NormalTok{heights }\OperatorTok{=} \NormalTok{[ }\DecValTok{180}\NormalTok{, }\DecValTok{164}\NormalTok{, }\DecValTok{165}\NormalTok{, }\DecValTok{165}\NormalTok{, }\DecValTok{180}\NormalTok{, }\DecValTok{170} \NormalTok{]} \NormalTok{statssummary(heights)} \end{Highlighting} \end{Shaded} \subsection{Dictionary/json - ชนิดข้อมูลที่นิยมใช้แลกเปลี่ยนข้อมูล}\label{dictionaryjson---uxe0auxe19uxe14uxe02uxe2duxe21uxe25uxe17uxe19uxe22uxe21uxe43uxe0auxe41uxe25uxe01uxe40uxe1buxe25uxe22uxe19uxe02uxe2duxe21uxe25} \begin{itemize} \tightlist \item อัตราแลกเปลี่ยน https://api.fixer.io/lastest \item ข้อมูลผู้ใช้บน github https://api.github.com/users \item Google: YouTube Data API, Live Stream, Analytics https://developers.google.com/youtube/v3/ \item Facebook: \href{https://developers.facebook.com/docs/graph-api/}{Graph API} \item \href{https://www.themoviedb.org/}{The Movie Database} \end{itemize} \subsubsection{ข้อมูลจากเครื่องวิทยากร}\label{uxe02uxe2duxe21uxe25uxe08uxe32uxe01uxe40uxe04uxe23uxe2duxe07uxe27uxe17uxe22uxe32uxe01uxe23} \paragraph{แบบ json}\label{uxe41uxe1auxe1a-json} \begin{itemize} \tightlist \item http://หมายเลขไอพีเครื่องวิทยากร/api/info \item http://หมายเลขไอพีเครื่องวิทยากร/api/exchange \end{itemize} \paragraph{แบบข้อความธรรมดา}\label{uxe41uxe1auxe1auxe02uxe2duxe04uxe27uxe32uxe21uxe18uxe23uxe23uxe21uxe14uxe32} \begin{itemize} \tightlist \item http://หมายเลขไอพีเครื่องวิทยากร/speakers/txt \item http://หมายเลขไอพีเครื่องวิทยากร/height/txt \item http://หมายเลขไอพีเครื่องวิทยากร/pop/txt \end{itemize} \subsubsection{รูปแบบข้อมูล dictionary}\label{uxe23uxe1buxe41uxe1auxe1auxe02uxe2duxe21uxe25-dictionary} \begin{Shaded} \begin{Highlighting}[] \NormalTok{speakers }\OperatorTok{=} \NormalTok{\{} \StringTok{'K'}\NormalTok{: }\StringTok{'เกรียงศักดิ์'}\NormalTok{,} \CommentTok{'Woot'}\NormalTok{: }\StringTok{'วราวุฒิ'}\NormalTok{,} \CommentTok{'Tom'}\NormalTok{: }\StringTok{'ไพชยนต์'} \NormalTok{\}} \end{Highlighting} \end{Shaded} เนื่องจาก str ใน python ใช้ได้ทั้ง '' และ "" \begin{Shaded} \begin{Highlighting}[] \NormalTok{speakers }\OperatorTok{=} \NormalTok{\{} \StringTok{"K"}\NormalTok{: }\StringTok{"เกรียงศักดิ์"}\NormalTok{,} \CommentTok{"Woot"}\NormalTok{: }\StringTok{"วราวุฒิ"}\NormalTok{,} \CommentTok{"Tom"}\NormalTok{: }\StringTok{"ไพชยนต์"} \NormalTok{\}} \end{Highlighting} \end{Shaded} \begin{quote} ตัวอย่าง info \end{quote} \begin{Shaded} \begin{Highlighting}[] \NormalTok{\{} \StringTok{"K"}\NormalTok{: \{} \StringTok{"ชื่อ-สกุล"}\NormalTok{: }\StringTok{"เกรียงศักดิ์ ตรีประพิณ"}\NormalTok{,} \CommentTok{"e-mail"}\NormalTok{: }\StringTok{"kriengsak.t@ubu.ac.th"}\NormalTok{,} \CommentTok{"picture"}\NormalTok{: }\StringTok{"image/K.jpg"} \NormalTok{\},} \CommentTok{"Kai"}\NormalTok{: \{} \StringTok{"ชื่อ-สกุล"}\NormalTok{: }\StringTok{"ปิยนันท์ พนากานต์"}\NormalTok{, } \CommentTok{"e-mail"}\NormalTok{: }\StringTok{"piyanan.p@ubu.ac.th"}\NormalTok{,} \CommentTok{"picture"}\NormalTok{: }\StringTok{"image/Kai.jpg"} \NormalTok{\},} \CommentTok{"Or"}\NormalTok{: \{} \StringTok{"ชื่อ-สกุล"}\NormalTok{: }\StringTok{"วาสนา เหง้าเกษ"}\NormalTok{,} \CommentTok{"e-mail"}\NormalTok{: }\StringTok{"wasana.n@ubu.ac.th"}\NormalTok{,} \CommentTok{"picture"}\NormalTok{: }\StringTok{"image/Or.jpg"} \NormalTok{\},} \CommentTok{"Paul"}\NormalTok{: \{} \StringTok{"ชื่อ-สกุล"}\NormalTok{: }\StringTok{"วิชิต สมบัติ"}\NormalTok{,} \CommentTok{"e-mail"}\NormalTok{: }\StringTok{"wichit.s@ubu.ac.th"}\NormalTok{,} \CommentTok{"picture"}\NormalTok{: }\StringTok{"image/Paul.jpg"} \NormalTok{\},} \CommentTok{"Tom"}\NormalTok{: \{} \StringTok{"ชื่อ-สกุล"}\NormalTok{: }\StringTok{"ไพชยนต์ คงไชย"}\NormalTok{,} \CommentTok{"e-mail"}\NormalTok{: }\StringTok{"phaichayon.k@ubu.ac.th"}\NormalTok{,} \CommentTok{"picture"}\NormalTok{: }\StringTok{"image/Tom.jpg"} \NormalTok{\},} \CommentTok{"Woot"}\NormalTok{: \{} \StringTok{"ชื่อ-สกุล"}\NormalTok{: }\StringTok{"วราวุฒิ ผ้าเจริญ"}\NormalTok{,} \CommentTok{"e-mail"}\NormalTok{: }\StringTok{"warawoot.p@ubu.ac.th"}\NormalTok{,} \CommentTok{"picture"}\NormalTok{: }\StringTok{"image/Woot.jpg"} \NormalTok{\}} \NormalTok{\}} \end{Highlighting} \end{Shaded} \subsection{การรับส่งข้อมูล json}\label{uxe01uxe32uxe23uxe23uxe1auxe2auxe07uxe02uxe2duxe21uxe25-json} \begin{Shaded} \begin{Highlighting}[] \ImportTok{import} \NormalTok{requests} \NormalTok{r }\OperatorTok{=} \NormalTok{requests.get(}\StringTok{'http://api.fixer.io/latest'}\NormalTok{)} \NormalTok{x }\OperatorTok{=} \NormalTok{r.json()} \BuiltInTok{print}\NormalTok{( }\BuiltInTok{type}\NormalTok{(x) )} \BuiltInTok{print}\NormalTok{(x)} \end{Highlighting} \end{Shaded} \subsection{More on import}\label{more-on-import} คำสั่งเพื่อสร้างหน้าต่างขึ้นมา \begin{Shaded} \begin{Highlighting}[] \ImportTok{import} \NormalTok{sys} \ImportTok{import} \NormalTok{PyQt5.QtWidgets } \NormalTok{app }\OperatorTok{=} \NormalTok{PyQt5.QtWidgets.QApplication(sys.argv)} \NormalTok{w }\OperatorTok{=} \NormalTok{PyQt5.QtWidgets.QWidget()} \NormalTok{w.resize(}\DecValTok{250}\NormalTok{, }\DecValTok{150}\NormalTok{)} \NormalTok{w.move(}\DecValTok{300}\NormalTok{, }\DecValTok{300}\NormalTok{)} \NormalTok{w.show()} \NormalTok{sys.exit(app.exec_())} \end{Highlighting} \end{Shaded} เราสามารถทำการย่อชื่อโดยใช้คำสั่ง import ช่วยให้สั้นลงได้ดังนี้ \begin{Shaded} \begin{Highlighting}[] \ImportTok{import} \NormalTok{sys} \ImportTok{from} \NormalTok{PyQt5.QtWidgets }\ImportTok{import} \NormalTok{QApplication, QWidget} \NormalTok{app }\OperatorTok{=} \NormalTok{QApplication(sys.argv)} \NormalTok{w }\OperatorTok{=} \NormalTok{QWidget()} \NormalTok{w.resize(}\DecValTok{250}\NormalTok{, }\DecValTok{150}\NormalTok{)} \NormalTok{w.move(}\DecValTok{300}\NormalTok{, }\DecValTok{300}\NormalTok{)} \NormalTok{w.show()} \NormalTok{sys.exit(app.exec_())} \end{Highlighting} \end{Shaded} \section{แนวคิดเชิงวัตถุ และการสืบทอดคุณสมบัติ}\label{uxe41uxe19uxe27uxe04uxe14uxe40uxe0auxe07uxe27uxe15uxe16-uxe41uxe25uxe30uxe01uxe32uxe23uxe2auxe1auxe17uxe2duxe14uxe04uxe13uxe2auxe21uxe1auxe15} เราสามารถเขียนนิยามหน้าต่างของเราเองได้ดังนี้ \begin{Shaded} \begin{Highlighting}[] \ImportTok{import} \NormalTok{sys} \ImportTok{from} \NormalTok{PyQt5.QtWidgets }\ImportTok{import} \NormalTok{QApplication, QWidget} \ImportTok{from} \NormalTok{PyQt5.QtGui }\ImportTok{import} \NormalTok{QIcon} \KeywordTok{class} \NormalTok{MyWindow(QWidget):} \KeywordTok{def} \FunctionTok{__init__}\NormalTok{(}\VariableTok{self}\NormalTok{):} \BuiltInTok{super}\NormalTok{().}\FunctionTok{__init__}\NormalTok{()} \VariableTok{self}\NormalTok{.setGeometry(}\DecValTok{300}\NormalTok{, }\DecValTok{300}\NormalTok{, }\DecValTok{250}\NormalTok{, }\DecValTok{150}\NormalTok{)} \VariableTok{self}\NormalTok{.setWindowTitle(}\StringTok{'Icon'}\NormalTok{)} \VariableTok{self}\NormalTok{.setWindowIcon(QIcon(}\StringTok{'icon.png'}\NormalTok{))} \VariableTok{self}\NormalTok{.show()} \ControlFlowTok{if} \VariableTok{__name__} \OperatorTok{==} \StringTok{'__main__'}\NormalTok{:} \NormalTok{app }\OperatorTok{=} \NormalTok{QApplication(sys.argv)} \NormalTok{ex }\OperatorTok{=} \NormalTok{Example()} \NormalTok{sys.exit(app.exec_())} \end{Highlighting} \end{Shaded} % Add a bibliography block to the postdoc \end{document}