diff options
Diffstat (limited to 'manipulating-strings')
-rw-r--r-- | manipulating-strings/quickref.tex | 14 | ||||
-rw-r--r-- | manipulating-strings/script.rst | 255 | ||||
-rw-r--r-- | manipulating-strings/slides.org | 94 | ||||
-rw-r--r-- | manipulating-strings/slides.tex | 150 |
4 files changed, 0 insertions, 513 deletions
diff --git a/manipulating-strings/quickref.tex b/manipulating-strings/quickref.tex deleted file mode 100644 index 533a1ef..0000000 --- a/manipulating-strings/quickref.tex +++ /dev/null @@ -1,14 +0,0 @@ -\textbf{Manipulating strings} - -String indexing starts from 0, like lists. - -\lstinline|s = `Hello World'|\\ -\lstinline|s[0:5]| gives \texttt{Hello}\\ -\lstinline|s[6:]| gives \textt{World}\\ -\lstinline|s[6::2]| gives \textt{Wrd}\\ - -\lstinline|s.replace('e', 'a')| returns a new string with all e's -replaced by a. - -\lstinline|s.lower()| and \lstinline|s.upper()| return new strings -with all lower and upper case letters, respectively. diff --git a/manipulating-strings/script.rst b/manipulating-strings/script.rst deleted file mode 100644 index 3cc1b9c..0000000 --- a/manipulating-strings/script.rst +++ /dev/null @@ -1,255 +0,0 @@ -.. Objectives -.. ---------- - -.. By the end of this tutorial, you will be able to - -.. 1. Slice strings and get sub-strings out of them -.. #. Reverse strings -.. #. Replace characters in strings. -.. #. Convert strings to upper or lower case -.. #. joining a list of strings - -.. Prerequisites -.. ------------- - -.. 1. getting started with strings -.. #. getting started with lists -.. #. basic datatypes - -.. Author : Puneeth - Internal Reviewer : Amit - External Reviewer : - Language Reviewer : Bhanukiran - Checklist OK? : <08-11-2010, Anand, OK> [2010-10-05] - -Script ------- - -{{{ Show the slide containing title }}} - -Hello Friends. Welcome to this tutorial on manipulating strings. - -{{{ show the slide with outline }}} - -In this tutorial we shall learn to manipulate strings, specifically -slicing and reversing them, or replacing characters, converting from -upper to lower case and vice-versa and joining a list of strings. - -We have an ``ipython`` shell open, in which we are going to work, -through out this session. - -Let us consider a simple problem, and learn how to slice strings and -get sub-strings. - -Let's say the variable ``week`` has the list of the names of the days -of the week. - -:: - - week = ["sun", "mon", "tue", "wed", "thu", "fri", "sat"] - - -Now given a string ``s``, we should be able to check if the string is a -valid name of a day of the week or not. - -:: - - s = saturday - - -``s`` could be in any of the forms --- sat, saturday, Sat, Saturday, -SAT, SATURDAY. For now, shall now be solving the problem only for the forms, -sat and saturday. We shall solve it for the other forms, at the end of -the tutorial. - -{{{ show these forms in a slide }}} - -So, we need to check if the first three characters of the given string -exists in the variable ``week``. - -As, with any of the sequence data-types, strings can be sliced into -sub-strings. To get the first three characters of s, we say, - -:: - - s[0:3] - -Note that, we are slicing the string from the index 0 to index 3, 3 -not included. - -As we already know, the last element of the string can be accessed -using ``s[-1]``. - -Following is an exercise that you must do. - -%%1%% Obtain the sub-string excluding the first and last characters -from the string s. - -Please, pause the video here. Do the exercise(s) and then continue. - -:: - - s[1:-1] - -gives the substring of s, without the first and the last -characters of s. - -:: - - s = saturday - s[:3] - -Now, we just check if that substring is present in the variable -``week``. - -:: - - s[:3] in week - -Let us now consider the problem of finding out if a given string is -palindromic or not. First of all, a palindromic string is a string -that remains same even when it has been reversed. - -Let the string given be ``malayalam``. - -:: - - s = "malayalam" - -Now, we need to compare this string with it's reverse. - -Again, we will use a technique common to all sequence data-types, -[::-1] - -So, we obtain the reverse of s, by simply saying, - -:: - - s[::-1] - -Now, to check if the string is ``s`` is palindromic, we say -:: - - s == s[::-1] - -As, expected, we get ``True``. - -Now, if the string we are given is ``Malayalam`` instead of -``malayalam``, the above comparison would return a False. So, we will -have to convert the string to all lower case or all upper case, before -comparing. Python provides methods, ``s.lower`` and ``s.upper`` to -achieve this. - -Let's try it out. -:: - - s = "Malayalam" - - s.upper() - - s - -As you can see, s has not changed. It is because, ``upper`` returns a -new string. It doesn't change the original string. - -:: - - s.lower() - - s.lower() == s.lower()[::-1] - -Following is an exercise that you must do. - -%%2%% Check if ``s`` is a valid name of a day of the week. Change the -solution to this problem, to include forms like, SAT, SATURDAY, -Saturday and Sat. - -Please, pause the video here. Do the exercise and then continue. - -:: - - s in week - - s.lower()[:3] in week - - -So, as you can see, now we can check for presence of ``s`` in -``week``, in whichever format it is present -- capitalized, or all -caps, full name or short form. - -We just convert any input string to lower case and then check if it is -present in the list ``week``. - -Now, let us consider another problem. We often encounter e-mail id's -which have @ and periods replaced with text, something like -info[at]fossee[dot]in. We now wish to get back proper e-mail -addresses. - -Let's say the variable email has the email address. -:: - - email = "info[at]fossee[dot]in" - -Now, we first replace the ``[at]`` with the ``@``, using the replace -method of strings. -:: - - email = email.replace("[at]", "@") - print email - -Following is an exercise that you must do. - -%%3%% Replace the ``[dot]`` with ``.`` in ``email`` - -Please, pause the video here. Do the exercise and then continue. - -:: - - email = email.replace("[dot]", ".") - print email - -Now, let's look at another interesting problem where we have a list of -e-mail addresses and we wish to obtain one long string of e-mail -addresses separated by commas or semi-colons. - -:: - - email_list = ["info@fossee.in", "enquiries@fossee.in", "help@fossee.in"] - - -Now, if we wish to obtain one long string, separating each of the -email id by a comma, we use the join operator on ``,``. - -:: - - email_str = ", ".join(email_list) - print email_str - -Notice that the email ids are joined by a comma followed by a space. - -Following is an exercise that you must do. - -%%3%% From the email_str that we generated, change the separator to be -a semicolon instead of a comma. - -Please, pause the video here. Do the exercise and then continue. - -:: - - email_str = email_str.replace(",", ";") - -That brings us to the end of the tutorial. - -{{{ show summary slide }}} - -In this tutorial, we have learnt how to get substrings, reverse -strings and a few useful methods, namely upper, lower, replace and -join. - -{{{ 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/manipulating-strings/slides.org b/manipulating-strings/slides.org deleted file mode 100644 index cb8adfd..0000000 --- a/manipulating-strings/slides.org +++ /dev/null @@ -1,94 +0,0 @@ -#+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: Manipulating strings -#+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 - - Slicing strings to get sub-strings - - Reversing strings - - Replacing characters in strings. - - Converting strings to upper or lower case - - Joining a list of strings -* Question 1 - Obtain the sub-string excluding the first and last characters from - the string ~s~. -* Solution 1 - #+begin_src python - In []: s[1:-1] - #+end_src -* Question 2 - Given a list week, week = ~week = ["sun", "mon", "tue", "wed", - "thu", "fri", "sat"]~. Check if ~s~ is a valid name of a day of the - week. Change the solution to this problem, to include forms like, - SAT, SATURDAY, Saturday and Sat. -* Solution 2 - #+begin_src python - In []: s in week - In []: s.lower()[:3] in week - #+end_src -* Question 3 - Given ~email~ -- ~info@fossee[dot]in~ - - Replace the ~[dot]~ with ~.~ in ~email~ -* Solution 3 - #+begin_src python - email.replace('[dot], '.') - print email - #+end_src -* Question 4 - From the ~email_str~ that we generated, change the separator to be a - semicolon instead of a comma. -* Solution 4 - #+begin_src python - email_str = email_str.replace(",", ";") - #+end_src -* Summary - You should now be able to -- - - Slice strings and get sub-strings out of them - - Reverse strings - - Replace characters in strings. - - Convert strings to upper or lower case - - Join a list of strings - -* 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/manipulating-strings/slides.tex b/manipulating-strings/slides.tex deleted file mode 100644 index ed0317b..0000000 --- a/manipulating-strings/slides.tex +++ /dev/null @@ -1,150 +0,0 @@ -% Created 2010-10-28 Thu 11:35 -\documentclass[presentation]{beamer} -\usepackage[latin1]{inputenc} -\usepackage[T1]{fontenc} -\usepackage{fixltx2e} -\usepackage{graphicx} -\usepackage{longtable} -\usepackage{float} -\usepackage{wrapfig} -\usepackage{soul} -\usepackage{t1enc} -\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}} - -\title{Manipulating strings} -\author{FOSSEE} -\date{} - -\usetheme{Warsaw}\usecolortheme{default}\useoutertheme{infolines}\setbeamercovered{transparent} -\begin{document} - -\maketitle - - - - - - - - - -\begin{frame} -\frametitle{Outline} -\label{sec-1} - -\begin{itemize} -\item Slicing strings to get sub-strings -\item Reversing strings -\item Replacing characters in strings. -\item Converting strings to upper or lower case -\item Joining a list of strings -\end{itemize} -\end{frame} -\begin{frame} -\frametitle{Question 1} -\label{sec-2} - - Obtain the sub-string excluding the first and last characters from - the string \texttt{s}. -\end{frame} -\begin{frame}[fragile] -\frametitle{Solution 1} -\label{sec-3} - -\begin{verbatim} -In []: s[1:-1] -\end{verbatim} -\end{frame} -\begin{frame} -\frametitle{Question 2} -\label{sec-4} - - Given a list week, week = \texttt{week = ["sun", "mon", "tue", "wed", "thu", "fri", "sat"]}. Check if \texttt{s} is a valid name of a day of the - week. Change the solution to this problem, to include forms like, - SAT, SATURDAY, Saturday and Sat. -\end{frame} -\begin{frame}[fragile] -\frametitle{Solution 2} -\label{sec-5} - -\begin{verbatim} -In []: s in week -In []: s.lower()[:3] in week -\end{verbatim} -\end{frame} -\begin{frame} -\frametitle{Question 3} -\label{sec-6} - - Given \texttt{email} -- \texttt{info@fossee[dot]in} - - Replace the \texttt{[dot]} with \texttt{.} in \texttt{email} -\end{frame} -\begin{frame}[fragile] -\frametitle{Solution 3} -\label{sec-7} - -\begin{verbatim} -email.replace('[dot], '.') -print email -\end{verbatim} -\end{frame} -\begin{frame} -\frametitle{Question 4} -\label{sec-8} - - From the \texttt{email\_str} that we generated, change the separator to be a - semicolon instead of a comma. -\end{frame} -\begin{frame}[fragile] -\frametitle{Solution 4} -\label{sec-9} - -\begin{verbatim} -email_str = email_str.replace(",", ";") -\end{verbatim} -\end{frame} -\begin{frame} -\frametitle{Summary} -\label{sec-10} - - You should now be able to -- -\begin{itemize} -\item Slice strings and get sub-strings out of them -\item Reverse strings -\item Replace characters in strings. -\item Convert strings to upper or lower case -\item Join a list of strings -\end{itemize} -\end{frame} -\begin{frame} -\frametitle{Thank you!} -\label{sec-11} - - \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} |