Added questions to manipulating strings LO.
--- a/manipulating-strings/questions.rst Fri Oct 08 13:12:25 2010 +0530
+++ b/manipulating-strings/questions.rst Fri Oct 08 16:11:20 2010 +0530
@@ -1,17 +1,94 @@
-Objective
----------
+Objective Questions
+-------------------
+
+.. A mininum of 8 questions here (along with answers)
+
+1. Given the list week::
+
+ ["sun", "mon", "tue", "wed", "thu", "fri", "sat"]
+
+ ``"Sun" in week`` returns True or False?
+
+ Answer: False
+
+#. Given the string ``s = "palindrome"``, what is returned by s[4:]
+
+ Answer: ``ndrome``
+
+#. Given the string ``s = "palindrome"``, what is returned by s[-4]
+
+ Answer: ``r``
+
+#. Given the string ``s = "palindrome"``, what is returned by s[4::-1]
-.. A mininum of 8 questions here.
+ Answer: ``nilap``
+
+#. Given the string ``s = "palindrome"``, what is returned by s[-4:]
+
+ Answer: ``rome``
+
+#. Given a string ``s = "this is a string"``, how will you change it
+ to ``"this isn't a list"`` ?
-1. Question 1
-2. Question 2
-3. Question 3
+ Answer::
+
+ s = s.replace("string", "list")
+ s = s.replace("is", "isn't")
+
+#. Given a string ``s = "this is a string"``, how will you change it
+ to ``"THIS ISN'T A LIST"`` ?
+
+ Answer::
+
+ s = s.replace("string", "list")
+ s = s.replace("is", "isn't")
+ s = s.upper()
+#. Given a line from a CSV file (comma separated values), convert it
+ to a space separated line.
-Programming
------------
+ Answer: line.replace(',' ' ')
+
+#. Given the string "F.R.I.E.N.D.S" in s, obtain the friends.
+
+ Answer: ``s[::2].lower()
+
+Larger Questions
+----------------
+
+.. A minimum of 2 questions here (along with answers)
+
+1. Given the string friends, obtain the string "F.R.I.E.N.D.S".
+
+ Answer::
+
+ s = "friends"
+ s = s.upper()
+ s_list = list(s)
+ ".".join(s_list)
-.. A minimum of 2 questions here.
+2. Given a string with double quotes and single quotes. Interchange
+ all the double quotes to single quotes and vice-versa. [Solve it
+ for this particular string. Not a generic one. Solve it for a
+ generic string, if you know how to iterate over a list.]
+
+ s = """ "Isn't this a 'simple' task?" "No, it isn't." "Yes! it is." """
+
+ Answer::
+
+ s = s.replace('"', '#')
+ s = s.replace("'", '"')
+ s = s.replace('#', "'")
-1. Programming Assignment 1
-2. Programming Assignment 2
+ .. depends on ``for`` which is not an LO dependency a generic string.
+
+ For generic string
+ Answer::
+
+ S = []
+ s_list = s.split("'")
+
+ for s_s in s_list:
+ S.append(s_s.replace('"', "'"))
+
+ s = '"'.join(S)
--- a/manipulating-strings/script.rst Fri Oct 08 13:12:25 2010 +0530
+++ b/manipulating-strings/script.rst Fri Oct 08 16:11:20 2010 +0530
@@ -7,13 +7,14 @@
.. #. Reverse strings
.. #. Replace characters in strings.
.. #. Convert to 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 :
@@ -31,9 +32,9 @@
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
+upper to lower case and vice-versa and joining a list of strings.
-#[punch: reversed returns an iterator. should we still teach it?]
+.. #[punch: reversed returns an iterator. should we still teach it?]
We have an ``ipython`` shell open, in which we are going to work,
through out this session.
@@ -199,13 +200,43 @@
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 and replace.
+strings and a few useful methods, namely upper, lower, replace and
+join.
{{{ Show the "sponsored by FOSSEE" slide }}}