# HG changeset patch # User Puneeth Chaganti # Date 1289375746 -19800 # Node ID 4523b20486630ed55c6ba62e0629bdd7f1c667c4 # Parent 0840aa06d2e6a4659a8d3e877764b88e59422efd Reviewed conditionals LO. diff -r 0840aa06d2e6 -r 4523b2048663 conditionals/questions.rst --- a/conditionals/questions.rst Wed Nov 10 12:32:16 2010 +0530 +++ b/conditionals/questions.rst Wed Nov 10 13:25:46 2010 +0530 @@ -75,6 +75,27 @@ .. A minimum of 2 questions here (along with answers) -1. +1. Given a number, say, n. If it is divisible by 10, print the + quotient when divided by 10, otherwise if it is divisible by 5, + print the corresponding quotient, otherwise, print the number. + + + Answer:: -2. + if n%10==0: + print n/10 + elif n%5==0: + print n/5 + else: + print n + +2. Given a number, say, n. Write an if block to multiply n by three + and add 1, if it is odd, otherwise halve it. + + Answer:: + + if n % 2: + n = n*3+1 + else: + n /= 2 + diff -r 0840aa06d2e6 -r 4523b2048663 conditionals/script.rst --- a/conditionals/script.rst Wed Nov 10 12:32:16 2010 +0530 +++ b/conditionals/script.rst Wed Nov 10 13:25:46 2010 +0530 @@ -126,10 +126,19 @@ Following is an exercise that you must do. -%% %% +%% %% Given a number, num. Write an if else block to print num, as is, + if it is divisible by 10, else print 10 * num. Please, pause the video here. Do the exercise and then continue. +:: + + if num%10 == 0: + print num + else: + print 10*num + + 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 @@ -155,10 +164,15 @@ Following is an exercise that you must do. -%% %% +%% %% Given a number, num. Write a ternary operator to print num, as is, + if it is divisible by 10, else print 10 * num. Please, pause the video here. Do the exercise and then continue. +:: + + print num if num%10 == 0 else 10*num + Moving on, there are certain situations where we will have no operations or statements within a block of code. For example, we have a code where we are waiting for the keyboard input. If the user enters diff -r 0840aa06d2e6 -r 4523b2048663 conditionals/slides.org --- a/conditionals/slides.org Wed Nov 10 12:32:16 2010 +0530 +++ b/conditionals/slides.org Wed Nov 10 13:25:46 2010 +0530 @@ -30,12 +30,20 @@ #+OPTIONS: TeX:t LaTeX:nil skip:nil d:nil todo:nil pri:nil tags:not-in-toc * Outline + In this tutorial, we shall look at + + Using if/else blocks + + Using if/elif/else blocks + + Using the Ternary conditional statement * Question 1 - + Given a number, num. Write an if else block to print num, as is, if + it is divisible by 10, else print 10 * num. * Solution 1 #+begin_src python - + if num%10 == 0: + print num + else: + print 10*num #+end_src * ~if/elif~ ladder @@ -47,8 +55,21 @@ elif user == 'client': # Do customer operations #+end_src +* Question 2 + Given a number, num. Write a ternary operator to print num, as is, + if it is divisible by 10, else print 10 * num. +* Solution 2 + #+begin_src python + print num if num%10 == 0 else 10*num + #+end_src +* Summary + In this tutorial session we learnt -* Summary + + What are conditional statements + + if/else statement + + if/elif/else statement + + Ternary conditional statement - ~C if X else Y~ + + and the ~pass~ statement * Thank you! #+begin_latex diff -r 0840aa06d2e6 -r 4523b2048663 conditionals/slides.tex --- a/conditionals/slides.tex Wed Nov 10 12:32:16 2010 +0530 +++ b/conditionals/slides.tex Wed Nov 10 13:25:46 2010 +0530 @@ -1,95 +1,123 @@ -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%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 -{ - \usetheme{Warsaw} - \useoutertheme{infolines} - \setbeamercovered{transparent} -} - -\usepackage[english]{babel} +% Created 2010-11-10 Wed 13:25 +\documentclass[presentation]{beamer} \usepackage[latin1]{inputenc} -%\usepackage{times} \usepackage[T1]{fontenc} - -\usepackage{ae,aecompl} -\usepackage{mathpazo,courier,euler} -\usepackage[scaled=.95]{helvet} +\usepackage{fixltx2e} +\usepackage{graphicx} +\usepackage{longtable} +\usepackage{float} +\usepackage{wrapfig} +\usepackage{soul} +\usepackage{textcomp} +\usepackage{marvosym} +\usepackage{wasysym} +\usepackage{latexsym} +\usepackage{amssymb} +\usepackage{hyperref} +\tolerance=1000 +\usepackage[english]{babel} \usepackage{ae,aecompl} +\usepackage{mathpazo,courier,euler} \usepackage[scaled=.95]{helvet} +\usepackage{listings} +\lstset{language=Python, basicstyle=\ttfamily\bfseries, +commentstyle=\color{red}\itshape, stringstyle=\color{darkgreen}, +showstringspaces=false, keywordstyle=\color{blue}\bfseries} +\providecommand{\alert}[1]{\textbf{#1}} -\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} +\title{Conditionals} +\author{FOSSEE} \date{} -% DOCUMENT STARTS +\usetheme{Warsaw}\usecolortheme{default}\useoutertheme{infolines}\setbeamercovered{transparent} \begin{document} +\maketitle + + + + + + + + + \begin{frame} - \maketitle +\frametitle{Outline} +\label{sec-1} + + In this tutorial, we shall look at +\begin{itemize} +\item Using if/else blocks +\item Using if/elif/else blocks +\item Using the Ternary conditional statement +\end{itemize} \end{frame} +\begin{frame} +\frametitle{Question 1} +\label{sec-2} + Given a number, num. Write an if else block to print num, as is, if + it is divisible by 10, else print 10 * num. +\end{frame} \begin{frame}[fragile] - \frametitle{Outline} - \begin{itemize} - \item - \end{itemize} +\frametitle{Solution 1} +\label{sec-3} + +\lstset{language=Python} +\begin{lstlisting} +if num%10 == 0: + print num +else: + print 10*num +\end{lstlisting} \end{frame} +\begin{frame}[fragile] +\frametitle{\texttt{if/elif} ladder} +\label{sec-4} -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% All other slides here. %% -%% The same slides will be used in a classroom setting. %% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\lstset{language=Python} +\begin{lstlisting} +if user == 'admin': + # Do admin operations +elif user == 'moderator': + # Do moderator operations +elif user == 'client': + # Do customer operations +\end{lstlisting} +\end{frame} +\begin{frame} +\frametitle{Question 2} +\label{sec-5} + Given a number, num. Write a ternary operator to print num, as is, + if it is divisible by 10, else print 10 * num. +\end{frame} \begin{frame}[fragile] - \frametitle{Summary} - \begin{itemize} - \item - \end{itemize} +\frametitle{Solution 2} +\label{sec-6} + +\lstset{language=Python} +\begin{lstlisting} +print num if num%10 == 0 else 10*num +\end{lstlisting} \end{frame} - \begin{frame} - \frametitle{Thank you!} +\frametitle{Summary} +\label{sec-7} + + In this tutorial session we learnt + +\begin{itemize} +\item What are conditional statements +\item if/else statement +\item if/elif/else statement +\item Ternary conditional statement - \texttt{C if X else Y} +\item and the \texttt{pass} statement +\end{itemize} +\end{frame} +\begin{frame} +\frametitle{Thank you!} +\label{sec-8} + \begin{block}{} \begin{center} This spoken tutorial has been produced by the