Getting started with strings LO - script and questions.
authorPuneeth Chaganti <punchagan@fossee.in>
Wed, 13 Oct 2010 11:13:01 +0530
changeset 313 b9b7bfce773e
parent 312 8cb703eee88d
child 314 11869b16d86b
Getting started with strings LO - script and questions.
getting-started-strings.rst
getting-started-strings/questions.rst
getting-started-strings/quickref.tex
getting-started-strings/script.rst
getting-started-strings/slides.org
getting-started-strings/slides.tex
--- a/getting-started-strings.rst	Wed Oct 13 11:12:18 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,125 +0,0 @@
-Hello friends. Welcome to this spoken tutorial on Getting started with
-strings.
-
-{{{ Show the slide containing the title }}}
-
-{{{ Show the slide containing the outline }}}
-
-In this tutorial, we will learn what do we actually mean by strings in
-python, how python supports the use of strings. We will also learn
-some of the operations that can be performed on strings.
-
-{{{ Shift to terminal and start ipython }}}
-
-To begin with let us start ipython, by typing::
-
-  ipython
-
-on the terminal
-
-So what are strings? In Python anything within either single quotes
-or double quotes or triple single quotes or triple double quotes are
-strings. This is true whatsoever, even if there is only one character
-within the quotes
-
-{{{ Type in ipython the following and read them as you type }}}::
-
-  'This is a string'
-  "This is a string too'
-  '''This is a string as well'''
-  """This is also a string"""
-  'p'
-
-Having more than one control character to define strings come as very
-handy when one of the control characters itself is part of the
-string. For example::
-
-  "Python's string manipulation functions are very useful"
-
-In this case we use single quote for apostrophe. If we had only single
-quote to define strings we should have a clumsy way of escaping the
-single quote character to make it part of the string. Hence this is a
-very handy feature.
-
-The triple quoted strings let us define multi-lines strings without
-using any escaping. Everything within the triple quotes is a single
-string no matter how many lines it extends::
-
-   """Having more than one control character to define
-   strings come as very handy when one of the control
-   characters itself is part of the string."""
-
-We can assign this string to any variable::
-
-  a = 'Hello, World!'
-
-Now 'a' is a string variable. String is a collection of characters. In
-addition string is an immutable collection. So all the operations that
-are applicable to any other immutable collection in Python works on
-string as well. So we can add two strings::
-
-  a = 'Hello'
-  b = 'World'
-  c = a + ', ' + b + '!'
-
-We can add string variables as well as the strings themselves all in
-the same statement. The addition operation performs the concatenation
-of two strings.
-
-Similarly we can multiply a string with an integer::
-
-  a = 'Hello'
-  a * 5
-
-gives another string in which the original string 'Hello' is repeated
-5 times.
-
-Since strings are collections we can access individual items in the
-string using the subscripts::
-
-  a[0]
-
-gives us the first character in the string. The indexing starts from 0
-for the first character up to n-1 for the last character. We can
-access the strings from the end using negative indices::
-
-  a[-2]
-
-gives us second element from the end of the string
-
-Let us attempt to change one of the characters in a string::
-
-  a = 'hello'
-  a[0] = 'H'
-
-As said earlier, strings are immutable. We cannot manipulate the
-string. Although there are some methods which let us to manipulate the
-strings. We will look at them in the advanced session on strings. In
-addition to the methods that let us manipulate the strings we have
-methods like split which lets us break the string on the specified
-separator, the join method which lets us combine the list of strings
-into a single string based on the specified separator.
-
-{{{ Show summary slide }}}
-
-This brings us to the end of another session. In this tutorial session
-we learnt
-
-  * How to define strings
-  * Different types of defining a string
-  * String concatenation and repeatition
-  * Accessing individual elements of the string
-  * Immutability of strings
-
-{{{ 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.
-Thankyou
- 
-.. Author              : Madhu
-   Internal Reviewer 1 :         [potential reviewer: Nishanth]
-   Internal Reviewer 2 :         [potential reviewer: Amit]
-   External Reviewer   :
-
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/getting-started-strings/questions.rst	Wed Oct 13 11:13:01 2010 +0530
@@ -0,0 +1,80 @@
+Objective Questions
+-------------------
+
+.. A mininum of 8 questions here (along with answers)
+
+1. List the type of quotes that can be used to define strings. 
+ 
+   Answer: 'single quotes', "double quotes", 
+           '''triple single quotes'''
+           """triple double quotes"""
+   
+#. Given the strings ``s`` and ``S``, ``s='Hello World'`` and
+   ``S="Hello World``. s and S are different strings. True or False?
+
+#. What is the output of::
+   
+     s = 'It's all here'
+
+   Answer: ``SyntaxError``
+
+#. Write code to assign s, the string ``' is called the apostrophe``
+
+   Answer: ``s = "`is called the apostrophe"``
+
+#. Given strings s and t, ``s = "Hello"`` and ``t = "World"``. What is
+   the output of s + t?
+
+   Answer: HelloWorld
+
+#. Given strings s and t, ``s = "Hello"`` and ``t = "World"`` and an
+   integer r, ``r = 2``. What is the output of s * r + s * t?
+
+   Answer: HelloHelloWorldWorld
+
+#. Given strings s and t, ``s = "Hello"`` and ``t = "World"`` and an
+   integer r, ``r = 2``. What is the output of s * 'r' ? 
+
+   Answer: TypeError - can't multiply a sequence by non-int
+
+#. Given the string ``s = "Hello"``, we wish to change it to
+   ``hello``. what is the result of::
+   
+     s[0] = 'h'
+
+   Answer: TypeError - 'str' object does not support item assignment. 
+
+#. Given the string ``s = "Hello"``, we wish to change it to
+   ``hello``. what is the result of::
+   
+     s = "hello"
+
+   Answer: s is changed to "hello"
+
+#. Which type of string can be written in multiple lines, with line
+   breaks. (Note: more than one answer may be correct.)
+
+   #. triple double quoted strings
+   #. single quoted strings
+   #. double quoted strings
+   #. triple single quoted strings
+
+   Answer: triple double quoted strings and triple single quoted strings
+
+Larger Questions
+----------------
+
+.. A minimum of 2 questions here (along with answers)
+
+1. Given the string s, ``s = F.R.I.E.N.D.S``, obtain the string
+   "FRIENDS". 
+
+   Answer::
+   
+     s = s[0] + s[2] + s[4] + s[6] + s[8] + s[10] + s[12] 
+
+2. Assign the string ``Today's Quote: "Don't believe in any quote,
+   including this."`` to the variable ``quote``. 
+
+   Answer: 
+   quote = """Today's Quote: "Don't believe in any quote, including this."""
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/getting-started-strings/quickref.tex	Wed Oct 13 11:13:01 2010 +0530
@@ -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)|}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/getting-started-strings/script.rst	Wed Oct 13 11:13:01 2010 +0530
@@ -0,0 +1,145 @@
+.. Objectives
+.. ----------
+
+.. At the end of this tutorial, you should know --
+
+..   1. How to define strings
+..   #. Different ways of defining a string
+..   #. How to concatenate strings 
+..   #. How to print a string repeatedly 
+..   #. Accessing individual elements of the string
+..   #. Immutability of strings
+
+.. Prerequisites
+.. -------------
+
+.. 1. getting started with ipython
+     
+.. 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 what do we actually mean by strings in
+python, how python supports the use of strings. We will also learn
+some of the operations that can be performed on strings.
+
+{{{ Shift to terminal and start ipython }}}
+
+To begin with let us start ipython, by typing::
+
+  ipython
+
+on the terminal
+
+So what are strings? In Python anything within either single quotes
+or double quotes or triple single quotes or triple double quotes are
+strings. This is true whatsoever, even if there is only one character
+within the quotes
+
+{{{ Type in ipython the following and read them as you type }}}::
+
+  'This is a string'
+  "This is a string too'
+  '''This is a string as well'''
+  """This is also a string"""
+  'p'
+
+Having more than one control character to define strings come as very
+handy when one of the control characters itself is part of the
+string. For example::
+
+  "Python's string manipulation functions are very useful"
+
+In this case we use single quote for apostrophe. If we had only single
+quote to define strings we should have a clumsy way of escaping the
+single quote character to make it part of the string. Hence this is a
+very handy feature.
+
+The triple quoted strings let us define multi-lines strings without
+using any escaping. Everything within the triple quotes is a single
+string no matter how many lines it extends::
+
+   """Having more than one control character to define
+   strings come as very handy when one of the control
+   characters itself is part of the string."""
+
+We can assign this string to any variable::
+
+  a = 'Hello, World!'
+
+Now 'a' is a string variable. String is a collection of characters. In
+addition string is an immutable collection. So all the operations that
+are applicable to any other immutable collection in Python works on
+string as well. So we can add two strings::
+
+  a = 'Hello'
+  b = 'World'
+  c = a + ', ' + b + '!'
+
+We can add string variables as well as the strings themselves all in
+the same statement. The addition operation performs the concatenation
+of two strings.
+
+Similarly we can multiply a string with an integer::
+
+  a = 'Hello'
+  a * 5
+
+gives another string in which the original string 'Hello' is repeated
+5 times.
+
+Since strings are collections we can access individual items in the
+string using the subscripts::
+
+  a[0]
+
+gives us the first character in the string. The indexing starts from 0
+for the first character up to n-1 for the last character. We can
+access the strings from the end using negative indices::
+
+  a[-2]
+
+gives us second element from the end of the string
+
+Let us attempt to change one of the characters in a string::
+
+  a = 'hello'
+  a[0] = 'H'
+
+As said earlier, strings are immutable. We cannot manipulate the
+string. Although there are some methods which let us to manipulate the
+strings. We will look at them in the advanced session on strings. In
+addition to the methods that let us manipulate the strings we have
+methods like split which lets us break the string on the specified
+separator, the join method which lets us combine the list of strings
+into a single string based on the specified separator.
+
+{{{ Show summary slide }}}
+
+This brings us to the end of another session. In this tutorial session
+we learnt
+
+  * How to define strings
+  * Different ways of defining a string
+  * String concatenation and repeatition
+  * Accessing individual elements of the string
+  * Immutability of strings
+
+{{{ 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!
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/getting-started-strings/slides.org	Wed Oct 13 11:13:01 2010 +0530
@@ -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
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/getting-started-strings/slides.tex	Wed Oct 13 11:13:01 2010 +0530
@@ -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}