Cleaned up getting started with strings LO.
--- a/getting-started-strings/quickref.tex Wed Nov 10 10:24:03 2010 +0530
+++ b/getting-started-strings/quickref.tex Wed Nov 10 10:47:21 2010 +0530
@@ -1,8 +1,8 @@
-Creating a linear array:\\
-{\ex \lstinline| x = linspace(0, 2*pi, 50)|}
+Creating a string:\\
+{\ex \lstinline| s = ``Hello World''|} -- Single quotes and triple
+quotes can also be used.
-Plotting two variables:\\
-{\ex \lstinline| plot(x, sin(x))|}
+Accessing individual elements:\\
+{\ex \lstinline| s[5]|} -- Elements can be accessed with their index
-Plotting two lists of equal length x, y:\\
-{\ex \lstinline| plot(x, y)|}
+Strings are immutable.
--- a/getting-started-strings/script.rst Wed Nov 10 10:24:03 2010 +0530
+++ b/getting-started-strings/script.rst Wed Nov 10 10:47:21 2010 +0530
@@ -30,9 +30,9 @@
{{{ 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.
+In this tutorial, we will look at what we really mean by strings, how
+python supports the use of strings and some of the operations that can
+be performed on strings.
{{{ Shift to terminal and start ipython }}}
@@ -42,10 +42,9 @@
on the terminal
-So what are strings? In Python anything within either single quotes
+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
+strings.
{{{ Type in ipython the following and read them as you type }}}::
@@ -54,19 +53,21 @@
'''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::
+Note that it really doesn't matter how many characters are present in
+the string. The last example is a null string or an empty string.
+
+Having more than one control character to define strings is 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.
+By having multiple control characters, we avoid the need for
+escaping characters -- in this case the apostrophe.
-The triple quoted strings let us define multi-lines strings without
+The triple quoted strings let us define multi-line strings without
using any escaping. Everything within the triple quotes is a single
string no matter how many lines it extends::
@@ -99,19 +100,63 @@
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::
+Following is an exercise that you must do.
+
+%% %% Obtain the string ``%% -------------------- %%`` (20 hyphens)
+ without typing out all the twenty hyphens.
+
+Please, pause the video here. Do the exercise and then continue.
+
+::
+
+ s = "%% " + "-"*20 + " %%"
+
+Let's now look at accessing individual elements of strings. 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::
+for the first character and goes up to n-1 for the last character. We
+can access the strings from the end using negative indices::
+
+ a[-1]
- a[-2]
+gives us the last element of the string and
+::
+
+ a[-2]
gives us second element from the end of the string
+Following is an exercise that you must do.
+
+%% %% Given a string, ``s = "Hello World"``, what is the output of::
+
+ s[-5]
+ s[-10]
+ s[-15]
+
+Please, pause the video here. Do the exercise and then continue.
+
+::
+
+ s[-5]
+
+gives us 'W'
+::
+
+ s[-10]
+
+gives us 'e' and
+::
+
+ s[-15]
+
+gives us an ``IndexError``, as should be expected, since the string
+given to us is only 11 characters long.
+
Let us attempt to change one of the characters in a string::
a = 'hello'
@@ -132,7 +177,7 @@
* How to define strings
* Different ways of defining a string
- * String concatenation and repeatition
+ * String concatenation and repetition
* Accessing individual elements of the string
* Immutability of strings
--- a/getting-started-strings/slides.org Wed Nov 10 10:24:03 2010 +0530
+++ b/getting-started-strings/slides.org Wed Nov 10 10:47:21 2010 +0530
@@ -18,7 +18,7 @@
#+LaTeX_HEADER: commentstyle=\color{red}\itshape, stringstyle=\color{darkgreen},
#+LaTeX_HEADER: showstringspaces=false, keywordstyle=\color{blue}\bfseries}
-#+TITLE: Accessing parts of arrays
+#+TITLE:
#+AUTHOR: FOSSEE
#+EMAIL:
#+DATE:
@@ -30,81 +30,38 @@
#+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
+*** Defining strings
+*** Concatenation
+*** Accessing individual elements
+*** Immutability of strings
* Question 1
- Change the last column of ~C~ to zeroes.
+ Obtain the string ~%% -------------------- %%~ (20 hyphens) without
+ typing out all the twenty hyphens.
* Solution 1
#+begin_src python
- In []: C[:, -1] = 0
+ s = "%% " + "-"*20 + " %%"
#+end_src
* Question 2
- Change ~A~ to ~[11, 12, 13, 14, 15]~.
+ Given a string, ~s~ which is ~Hello World~ , what is the output of::
+ #+begin_src python
+ s[-5]
+ s[-10]
+ s[-15]
+ #+end_src
* 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]
+ 'W'
+ 'e'
+ IndexError
#+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.
+ In this tutorial we have learnt
+ + How to define strings
+ + Different ways of defining a string
+ + String concatenation and repetition
+ + Accessing individual elements of the string
+ + Immutability of strings
+
* Thank you!
#+begin_latex
\begin{block}{}
--- a/getting-started-strings/slides.tex Wed Nov 10 10:24:03 2010 +0530
+++ b/getting-started-strings/slides.tex Wed Nov 10 10:47:21 2010 +0530
@@ -1,95 +1,118 @@
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%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}
+% Created 2010-11-10 Wed 10:46
+\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{}
+\author{FOSSEE}
\date{}
-% DOCUMENT STARTS
+\usetheme{Warsaw}\usecolortheme{default}\useoutertheme{infolines}\setbeamercovered{transparent}
\begin{document}
+
+
+
+
+
+
+
+
+
+
\begin{frame}
- \maketitle
+\frametitle{Outline}
+\label{sec-1}
+\begin{itemize}
+
+\item Defining strings\\
+\label{sec-1_1}%
+\item Concatenation\\
+\label{sec-1_2}%
+\item Accessing individual elements\\
+\label{sec-1_3}%
+\item Immutability of strings\\
+\label{sec-1_4}%
+\end{itemize} % ends low level
\end{frame}
+\begin{frame}
+\frametitle{Question 1}
+\label{sec-2}
+ Obtain the string \texttt{\%\% -------------------- \%\%} (20 hyphens) without
+ typing out all the twenty hyphens.
+\end{frame}
\begin{frame}[fragile]
- \frametitle{Outline}
- \begin{itemize}
- \item
- \end{itemize}
+\frametitle{Solution 1}
+\label{sec-3}
+
+\lstset{language=Python}
+\begin{lstlisting}
+s = "%% " + "-"*20 + " %%"
+\end{lstlisting}
\end{frame}
+\begin{frame}[fragile]
+\frametitle{Question 2}
+\label{sec-4}
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-%% All other slides here. %%
-%% The same slides will be used in a classroom setting. %%
-%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
+ Given a string, \texttt{s} which is \texttt{Hello World} , what is the output of::
+\lstset{language=Python}
+\begin{lstlisting}
+s[-5]
+s[-10]
+s[-15]
+\end{lstlisting}
+\end{frame}
\begin{frame}[fragile]
- \frametitle{Summary}
- \begin{itemize}
- \item
- \end{itemize}
+\frametitle{Solution 2}
+\label{sec-5}
+
+\lstset{language=Python}
+\begin{lstlisting}
+'W'
+'e'
+IndexError
+\end{lstlisting}
\end{frame}
-
\begin{frame}
- \frametitle{Thank you!}
+\frametitle{Summary}
+\label{sec-6}
+
+ In this tutorial we have learnt
+\begin{itemize}
+\item How to define strings
+\item Different ways of defining a string
+\item String concatenation and repetition
+\item Accessing individual elements of the string
+\item Immutability of strings
+\end{itemize}
+
+
+\end{frame}
+\begin{frame}
+\frametitle{Thank you!}
+\label{sec-7}
+
\begin{block}{}
\begin{center}
This spoken tutorial has been produced by the
--- a/progress.org Wed Nov 10 10:24:03 2010 +0530
+++ b/progress.org Wed Nov 10 10:47:21 2010 +0530
@@ -15,7 +15,7 @@
|---------+----------------------------------------+-------+----------+-----------------+-----------|
| 3.1 LO: | getting started with lists | 2 | Amit | Anoop(Done) | |
| 3.2 LO: | getting started with =for= | 2 | Anoop | Nishanth (Done) | |
-| 3.3 LO: | getting started with strings | 2 | Madhu | Punch (Pending) | |
+| 3.3 LO: | getting started with strings | 2 | Madhu | Punch (Done) | |
| 3.4 LO: | getting started with files | 3 | Punch | Anoop(Done) | |
| 3.5 LO: | parsing data | 3 | Nishanth | Amit (Done) | |
| 3.6 LO: | statistics | 2 | Amit | Punch (Done) | |