diff options
author | Puneeth Chaganti | 2010-10-13 11:14:25 +0530 |
---|---|---|
committer | Puneeth Chaganti | 2010-10-13 11:14:25 +0530 |
commit | 426a4d487fc466f5cfc75f3c3d8559e2abcdca1e (patch) | |
tree | 618c076e4bf4ed1930ec84a925372b47401c0f30 /conditionals | |
parent | 43f44551893e3e15a97002b752630345edc1b364 (diff) | |
download | st-scripts-426a4d487fc466f5cfc75f3c3d8559e2abcdca1e.tar.gz st-scripts-426a4d487fc466f5cfc75f3c3d8559e2abcdca1e.tar.bz2 st-scripts-426a4d487fc466f5cfc75f3c3d8559e2abcdca1e.zip |
Conditionals LO - script and questions.
Diffstat (limited to 'conditionals')
-rw-r--r-- | conditionals/quickref.tex | 8 | ||||
-rw-r--r-- | conditionals/script.rst | 192 | ||||
-rw-r--r-- | conditionals/slides.org | 123 | ||||
-rw-r--r-- | conditionals/slides.tex | 106 |
4 files changed, 429 insertions, 0 deletions
diff --git a/conditionals/quickref.tex b/conditionals/quickref.tex new file mode 100644 index 0000000..b26d168 --- /dev/null +++ b/conditionals/quickref.tex @@ -0,0 +1,8 @@ +Creating a linear array:\\ +{\ex \lstinline| x = linspace(0, 2*pi, 50)|} + +Plotting two variables:\\ +{\ex \lstinline| plot(x, sin(x))|} + +Plotting two lists of equal length x, y:\\ +{\ex \lstinline| plot(x, y)|} diff --git a/conditionals/script.rst b/conditionals/script.rst new file mode 100644 index 0000000..980927f --- /dev/null +++ b/conditionals/script.rst @@ -0,0 +1,192 @@ +.. Objectives +.. ---------- + +.. Clearly state the objectives of the LO (along with RBT level) + +.. Prerequisites +.. ------------- + +.. 1. Name of LO-1 +.. 2. Name of LO-2 +.. 3. Name of LO-3 + +.. Author : Madhu + Internal Reviewer : + External Reviewer : + Checklist OK? : <put date stamp here, if OK> [2010-10-05] + + +Script +------ + +{{{ Show the slide containing the title }}} + +Hello friends. Welcome to this spoken tutorial on Getting started with +strings. + +{{{ Show the slide containing the outline }}} + +In this tutorial, we will learn the basic conditional constructs +available in Python. We learn the if/else, if/elif/else and ternary +conditional constructs available in Python. + +{{{ Shift to terminal and start ipython }}} + +To begin with let us start ipython, by typing:: + + ipython + +on the terminal + +Whenever we have two possible states that can occur depending on a +whether a certain condition we can use if/else construct in +Python. Say for example we have a variable "a" which stores integers +and we are required to find out whether the value of the variable "a" +is an even number or an odd number. To test out conditional statements +as an example, let us say the value of the variable "a" is 5:: + + a = 5 + +In such a case we can write the if/else block as:: + + if a % 2 == 0: + print "Even" + else: + print "Odd" + +When the value of the variable "a" is divided by 2 and the remainder +is 0 i.e. the result of the operation "a modulo 2" is 0 the condition +"a % 2 == 0" evaluates to True, so the code within the if block gets +executed. This means that the value of "a" is Even. + +If the operation "a modulo 2" is not 0 the condition "a % 2 == 0" +evaluates to False and hence the code block within else gets executed +which means that the value of "a" is Odd. + +Note in such a case only one of the two blocks get executed depending +on whether the condition is True or False. + +There is a very important sytactic element to understand here. All the +statements which are inside a certain code block are indented by 4 +spaces. The statement which starts a new code block after it, i.e. the +if statement in this example ends with a colon (:). So the next +immediate line will be inside the if block and hence indented by 4 +spaces. To come out of the code block we have to come back to the +previous indentation level as shown in the else line here. Again the +line following else will be in a new block so else line ends with a +colon and the following block of code is indented by 4. + +As we use if/else statement when we have a condition which can take +one of the two states, we may have conditions which can take more than +two states. In such a scenario Python provides if/elif/else +statements. Let us take an example. We have a variable "a" which holds +integer values. We need to print "positive" if the value of a is +positive, "negative" if it is negative and "zero" if the value of the +variable "a" is 0. Let us use if/elif/else ladder for it. For the +purposes of testing our code let us assume that the value of a is -3:: + + a = -3 + + if a > 0: + print "positive" + elif a < 0: + print "negative" + else: + print "zero" + +This if/elif/else ladder is self explanatory. All the syntax and rules +as said for if/else statements hold. The only addition here is the +elif statement which can have another condition of its own. + +Here, exactly one block of code is executed and that block of code +corresponds to the condition which first evaluates to True. Even if +there is a situation where multiple conditions evaluate to True all +the subsequent conditions other than the first one which evaluates to +True are neglected. Consequently, the else block gets executed if and +only if all the conditions evaluate to False. + +Also, the else block in both if/else statement and if/elif/else is +optional. We can have a single if statement or just if/elif statements +without having else block at all. Also, there can be any number of +elif's within an if/elif/else ladder. For example + +{{{ Show slide for this }}} + + if user == 'admin': + # Do admin operations + elif user == 'moderator': + # Do moderator operations + elif user == 'client': + # Do customer operations + +{{{ end of slide switch to ipython }}} + +is completely valid. Note that there are multiple elif blocks and there +is no else block. + +In addition to these conditional statements, Python provides a very +convenient ternary conditional operator. Let us take the following +example where we read the marks data from a data file which is +obtained as a string as we read a file. The marks can be in the range +of 0 to 100 or 'AA' if the student is absent. In such a case to obtain +the marks as an integer we can use the ternary conditional +operator. Let us say the string score is stored in score_str +variable:: + + score_str = 'AA' + +Now let us use the ternary conditional operator:: + + score = int(score_str) if score_str != 'AA' else 0 + +This is just the if/else statement block which written in a more +convenient form and is very helpful when we have only one statement +for each block. This conditional statement effectively means as we +would have exactly specified in the English language which will be +like score is integer of score_str is score_str is not 'AA' otherwise +it is 0. This means that we make the scores of the students who were +absent for the exam 0. + +Moving on, there are certain situations where we will have to no +operations or statements within the block of code. For example, we +have a code where we are waiting for the keyboard input. If the user +enters "s" as the input we would perform some operation nothing +otherwise. In such cases "pass" statement comes very handy:: + + a = raw_input("Enter 'c' to calculate and exit, 'd' to display the existing + results exit and 'x' to exit and any other key to continue: ") + + if a == 'c': + # Calculate the marks and exit + elif a == 'd': + # Display the results and exit + elif a == 'x': + # Exit the program + else: + pass + +In this case "pass" statement acts as a place holder for the block of +code. It is equivalent to a null operation. It literally does +nothing. So "pass" statement can be used as a null operation +statement, or it can used as a place holder when the actual code +implementation for a particular block of code is not known yet but has +to be filled up later. + +{{{ Show summary slide }}} + +This brings us to the end of the tutorial session on conditional +statements in Python. In this tutorial session we learnt + + * What are conditional statements + * if/else statement + * if/elif/else statement + * Ternary conditional statement - C if X else Y + * and the "pass" statement + +{{{ Show the "sponsored by FOSSEE" slide }}} + +This tutorial was created as a part of FOSSEE project, NME ICT, MHRD India + +Hope you have enjoyed and found it useful. +Thank you! + diff --git a/conditionals/slides.org b/conditionals/slides.org new file mode 100644 index 0000000..5d2ce93 --- /dev/null +++ b/conditionals/slides.org @@ -0,0 +1,123 @@ +#+LaTeX_CLASS: beamer +#+LaTeX_CLASS_OPTIONS: [presentation] +#+BEAMER_FRAME_LEVEL: 1 + +#+BEAMER_HEADER_EXTRA: \usetheme{Warsaw}\usecolortheme{default}\useoutertheme{infolines}\setbeamercovered{transparent} +#+COLUMNS: %45ITEM %10BEAMER_env(Env) %10BEAMER_envargs(Env Args) %4BEAMER_col(Col) %8BEAMER_extra(Extra) +#+PROPERTY: BEAMER_col_ALL 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 :ETC + +#+LaTeX_CLASS: beamer +#+LaTeX_CLASS_OPTIONS: [presentation] + +#+LaTeX_HEADER: \usepackage[english]{babel} \usepackage{ae,aecompl} +#+LaTeX_HEADER: \usepackage{mathpazo,courier,euler} \usepackage[scaled=.95]{helvet} + +#+LaTeX_HEADER: \usepackage{listings} + +#+LaTeX_HEADER:\lstset{language=Python, basicstyle=\ttfamily\bfseries, +#+LaTeX_HEADER: commentstyle=\color{red}\itshape, stringstyle=\color{darkgreen}, +#+LaTeX_HEADER: showstringspaces=false, keywordstyle=\color{blue}\bfseries} + +#+TITLE: Accessing parts of arrays +#+AUTHOR: FOSSEE +#+EMAIL: +#+DATE: + +#+DESCRIPTION: +#+KEYWORDS: +#+LANGUAGE: en +#+OPTIONS: H:3 num:nil toc:nil \n:nil @:t ::t |:t ^:t -:t f:t *:t <:t +#+OPTIONS: TeX:t LaTeX:nil skip:nil d:nil todo:nil pri:nil tags:not-in-toc + +* Outline + - Manipulating one and multi dimensional arrays + - Access and change individual elements + - Access and change rows and columns + - Slicing and striding on arrays to access chunks + - Read images into arrays and manipulations +* Sample Arrays + #+begin_src python + In []: A = array([12, 23, 34, 45, 56]) + + In []: C = array([[11, 12, 13, 14, 15], + [21, 22, 23, 24, 25], + [31, 32, 33, 34, 35], + [41, 42, 43, 44, 45], + [51, 52, 53, 54, 55]]) + + #+end_src +* Question 1 + Change the last column of ~C~ to zeroes. +* Solution 1 + #+begin_src python + In []: C[:, -1] = 0 + #+end_src +* Question 2 + Change ~A~ to ~[11, 12, 13, 14, 15]~. +* Solution 2 + #+begin_src python + In []: A[:] = [11, 12, 13, 14, 15] + #+end_src +* squares.png + #+begin_latex + \begin{center} + \includegraphics[scale=0.6]{squares} + \end{center} + #+end_latex +* Question 3 + - obtain ~[22, 23]~ from ~C~. + - obtain ~[11, 21, 31, 41]~ from ~C~. + - obtain ~[21, 31, 41, 0]~. +* Solution 3 + #+begin_src python + In []: C[1, 1:3] + In []: C[0:4, 0] + In []: C[1:5, 0] + #+end_src +* Question 4 + Obtain ~[[23, 24], [33, -34]]~ from ~C~ +* Solution 4 + #+begin_src python + In []: C[1:3, 2:4] + #+end_src +* Question 5 + Obtain the square in the center of the image +* Solution 5 + #+begin_src python + In []: imshow(I[75:225, 75:225]) + #+end_src +* Question 6 + Obtain the following + #+begin_src python + [[12, 0], [42, 0]] + [[12, 13, 14], [0, 0, 0]] + #+end_src + +* Solution 6 + #+begin_src python + In []: C[::3, 1::3] + In []: C[::4, 1:4] + #+end_src +* Summary + You should now be able to -- + - Manipulate 1D \& Multi dimensional arrays + - Access and change individual elements + - Access and change rows and columns + - Slice and stride on arrays + - Read images into arrays and manipulate them. +* Thank you! +#+begin_latex + \begin{block}{} + \begin{center} + This spoken tutorial has been produced by the + \textcolor{blue}{FOSSEE} team, which is funded by the + \end{center} + \begin{center} + \textcolor{blue}{National Mission on Education through \\ + Information \& Communication Technology \\ + MHRD, Govt. of India}. + \end{center} + \end{block} +#+end_latex + + diff --git a/conditionals/slides.tex b/conditionals/slides.tex new file mode 100644 index 0000000..df1462c --- /dev/null +++ b/conditionals/slides.tex @@ -0,0 +1,106 @@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%Tutorial slides on Python. +% +% Author: FOSSEE +% Copyright (c) 2009, FOSSEE, IIT Bombay +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\documentclass[14pt,compress]{beamer} +%\documentclass[draft]{beamer} +%\documentclass[compress,handout]{beamer} +%\usepackage{pgfpages} +%\pgfpagesuselayout{2 on 1}[a4paper,border shrink=5mm] + +% Modified from: generic-ornate-15min-45min.de.tex +\mode<presentation> +{ + \usetheme{Warsaw} + \useoutertheme{infolines} + \setbeamercovered{transparent} +} + +\usepackage[english]{babel} +\usepackage[latin1]{inputenc} +%\usepackage{times} +\usepackage[T1]{fontenc} + +\usepackage{ae,aecompl} +\usepackage{mathpazo,courier,euler} +\usepackage[scaled=.95]{helvet} + +\definecolor{darkgreen}{rgb}{0,0.5,0} + +\usepackage{listings} +\lstset{language=Python, + basicstyle=\ttfamily\bfseries, + commentstyle=\color{red}\itshape, + stringstyle=\color{darkgreen}, + showstringspaces=false, + keywordstyle=\color{blue}\bfseries} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Macros +\setbeamercolor{emphbar}{bg=blue!20, fg=black} +\newcommand{\emphbar}[1] +{\begin{beamercolorbox}[rounded=true]{emphbar} + {#1} + \end{beamercolorbox} +} +\newcounter{time} +\setcounter{time}{0} +\newcommand{\inctime}[1]{\addtocounter{time}{#1}{\tiny \thetime\ m}} + +\newcommand{\typ}[1]{\lstinline{#1}} + +\newcommand{\kwrd}[1]{ \texttt{\textbf{\color{blue}{#1}}} } + +% Title page +\title{Your Title Here} + +\author[FOSSEE] {FOSSEE} + +\institute[IIT Bombay] {Department of Aerospace Engineering\\IIT Bombay} +\date{} + +% DOCUMENT STARTS +\begin{document} + +\begin{frame} + \maketitle +\end{frame} + +\begin{frame}[fragile] + \frametitle{Outline} + \begin{itemize} + \item + \end{itemize} +\end{frame} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% All other slides here. %% +%% The same slides will be used in a classroom setting. %% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\begin{frame}[fragile] + \frametitle{Summary} + \begin{itemize} + \item + \end{itemize} +\end{frame} + +\begin{frame} + \frametitle{Thank you!} + \begin{block}{} + \begin{center} + This spoken tutorial has been produced by the + \textcolor{blue}{FOSSEE} team, which is funded by the + \end{center} + \begin{center} + \textcolor{blue}{National Mission on Education through \\ + Information \& Communication Technology \\ + MHRD, Govt. of India}. + \end{center} + \end{block} +\end{frame} + +\end{document} |