author | Nishanth <nishanth@fossee.in> |
Mon, 11 Oct 2010 13:42:52 +0530 | |
changeset 297 | bef342784a40 |
parent 286 | 44f06ae0d957 |
child 350 | d14bc84feca1 |
permissions | -rw-r--r-- |
265
5734d03b026c
Cleaned up script of manipulating strings LO.
Puneeth Chaganti <punchagan@fossee.in>
parents:
217
diff
changeset
|
1 |
.. Objectives |
5734d03b026c
Cleaned up script of manipulating strings LO.
Puneeth Chaganti <punchagan@fossee.in>
parents:
217
diff
changeset
|
2 |
.. ---------- |
5734d03b026c
Cleaned up script of manipulating strings LO.
Puneeth Chaganti <punchagan@fossee.in>
parents:
217
diff
changeset
|
3 |
|
5734d03b026c
Cleaned up script of manipulating strings LO.
Puneeth Chaganti <punchagan@fossee.in>
parents:
217
diff
changeset
|
4 |
.. By the end of this tutorial, you will be able to |
5734d03b026c
Cleaned up script of manipulating strings LO.
Puneeth Chaganti <punchagan@fossee.in>
parents:
217
diff
changeset
|
5 |
|
5734d03b026c
Cleaned up script of manipulating strings LO.
Puneeth Chaganti <punchagan@fossee.in>
parents:
217
diff
changeset
|
6 |
.. 1. Slice strings and get sub-strings out of them |
5734d03b026c
Cleaned up script of manipulating strings LO.
Puneeth Chaganti <punchagan@fossee.in>
parents:
217
diff
changeset
|
7 |
.. #. Reverse strings |
5734d03b026c
Cleaned up script of manipulating strings LO.
Puneeth Chaganti <punchagan@fossee.in>
parents:
217
diff
changeset
|
8 |
.. #. Replace characters in strings. |
286
44f06ae0d957
Slides for manipulating strings LO.
Puneeth Chaganti <punchagan@fossee.in>
parents:
266
diff
changeset
|
9 |
.. #. Convert strings to upper or lower case |
266
8018779e02b7
Added questions to manipulating strings LO.
Puneeth Chaganti <punchagan@fossee.in>
parents:
265
diff
changeset
|
10 |
.. #. joining a list of strings |
265
5734d03b026c
Cleaned up script of manipulating strings LO.
Puneeth Chaganti <punchagan@fossee.in>
parents:
217
diff
changeset
|
11 |
|
5734d03b026c
Cleaned up script of manipulating strings LO.
Puneeth Chaganti <punchagan@fossee.in>
parents:
217
diff
changeset
|
12 |
.. Prerequisites |
5734d03b026c
Cleaned up script of manipulating strings LO.
Puneeth Chaganti <punchagan@fossee.in>
parents:
217
diff
changeset
|
13 |
.. ------------- |
217
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
14 |
|
265
5734d03b026c
Cleaned up script of manipulating strings LO.
Puneeth Chaganti <punchagan@fossee.in>
parents:
217
diff
changeset
|
15 |
.. 1. getting started with strings |
5734d03b026c
Cleaned up script of manipulating strings LO.
Puneeth Chaganti <punchagan@fossee.in>
parents:
217
diff
changeset
|
16 |
.. #. getting started with lists |
266
8018779e02b7
Added questions to manipulating strings LO.
Puneeth Chaganti <punchagan@fossee.in>
parents:
265
diff
changeset
|
17 |
.. #. basic datatypes |
265
5734d03b026c
Cleaned up script of manipulating strings LO.
Puneeth Chaganti <punchagan@fossee.in>
parents:
217
diff
changeset
|
18 |
|
5734d03b026c
Cleaned up script of manipulating strings LO.
Puneeth Chaganti <punchagan@fossee.in>
parents:
217
diff
changeset
|
19 |
.. Author : Puneeth |
5734d03b026c
Cleaned up script of manipulating strings LO.
Puneeth Chaganti <punchagan@fossee.in>
parents:
217
diff
changeset
|
20 |
Internal Reviewer : |
5734d03b026c
Cleaned up script of manipulating strings LO.
Puneeth Chaganti <punchagan@fossee.in>
parents:
217
diff
changeset
|
21 |
External Reviewer : |
5734d03b026c
Cleaned up script of manipulating strings LO.
Puneeth Chaganti <punchagan@fossee.in>
parents:
217
diff
changeset
|
22 |
Checklist OK? : <put date stamp here, if OK> [2010-10-05] |
217
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
23 |
|
265
5734d03b026c
Cleaned up script of manipulating strings LO.
Puneeth Chaganti <punchagan@fossee.in>
parents:
217
diff
changeset
|
24 |
Script |
5734d03b026c
Cleaned up script of manipulating strings LO.
Puneeth Chaganti <punchagan@fossee.in>
parents:
217
diff
changeset
|
25 |
------ |
5734d03b026c
Cleaned up script of manipulating strings LO.
Puneeth Chaganti <punchagan@fossee.in>
parents:
217
diff
changeset
|
26 |
|
5734d03b026c
Cleaned up script of manipulating strings LO.
Puneeth Chaganti <punchagan@fossee.in>
parents:
217
diff
changeset
|
27 |
{{{ Show the slide containing title }}} |
5734d03b026c
Cleaned up script of manipulating strings LO.
Puneeth Chaganti <punchagan@fossee.in>
parents:
217
diff
changeset
|
28 |
|
5734d03b026c
Cleaned up script of manipulating strings LO.
Puneeth Chaganti <punchagan@fossee.in>
parents:
217
diff
changeset
|
29 |
Hello Friends. Welcome to this tutorial on manipulating strings. |
217
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
30 |
|
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
31 |
{{{ show the slide with outline }}} |
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
32 |
|
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
33 |
In this tutorial we shall learn to manipulate strings, specifically |
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
34 |
slicing and reversing them, or replacing characters, converting from |
266
8018779e02b7
Added questions to manipulating strings LO.
Puneeth Chaganti <punchagan@fossee.in>
parents:
265
diff
changeset
|
35 |
upper to lower case and vice-versa and joining a list of strings. |
217
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
36 |
|
266
8018779e02b7
Added questions to manipulating strings LO.
Puneeth Chaganti <punchagan@fossee.in>
parents:
265
diff
changeset
|
37 |
.. #[punch: reversed returns an iterator. should we still teach it?] |
217
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
38 |
|
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
39 |
We have an ``ipython`` shell open, in which we are going to work, |
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
40 |
through out this session. |
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
41 |
|
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
42 |
Let us consider a simple problem, and learn how to slice strings and |
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
43 |
get sub-strings. |
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
44 |
|
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
45 |
Let's say the variable ``week`` has the list of the names of the days |
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
46 |
of the week. |
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
47 |
|
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
48 |
:: |
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
49 |
|
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
50 |
week = ["sun", "mon", "tue", "wed", "thu", "fri", "sat"] |
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
51 |
|
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
52 |
|
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
53 |
Now given a string ``s``, we should be able to check if the string is a |
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
54 |
valid name of a day of the week or not. |
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
55 |
|
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
56 |
:: |
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
57 |
|
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
58 |
s = saturday |
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
59 |
|
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
60 |
|
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
61 |
``s`` could be in any of the forms --- sat, saturday, Sat, Saturday, |
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
62 |
SAT, SATURDAY. We shall now be solving the problem only for the forms, |
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
63 |
sat and saturday. We shall solve it for the other forms, at the end of |
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
64 |
the tutorial. |
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
65 |
|
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
66 |
{{{ show these forms in a slide }}} |
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
67 |
|
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
68 |
So, we need to check if the first three characters of the given string |
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
69 |
exists in the variable ``week``. |
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
70 |
|
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
71 |
As, with any of the string data-types, strings can be sliced into |
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
72 |
sub-strings. To get the first three characters of s, we say, |
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
73 |
|
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
74 |
:: |
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
75 |
|
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
76 |
s[0:3] |
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
77 |
|
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
78 |
Note that, we are slicing the string from the index 0 to index 3, 3 |
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
79 |
not included. |
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
80 |
|
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
81 |
As we already know, the last element of the string can be accessed |
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
82 |
using ``s[-1]``. |
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
83 |
|
265
5734d03b026c
Cleaned up script of manipulating strings LO.
Puneeth Chaganti <punchagan@fossee.in>
parents:
217
diff
changeset
|
84 |
Following is an exercise that you must do. |
5734d03b026c
Cleaned up script of manipulating strings LO.
Puneeth Chaganti <punchagan@fossee.in>
parents:
217
diff
changeset
|
85 |
|
5734d03b026c
Cleaned up script of manipulating strings LO.
Puneeth Chaganti <punchagan@fossee.in>
parents:
217
diff
changeset
|
86 |
%%1%% Obtain the sub-string excluding the first and last characters |
286
44f06ae0d957
Slides for manipulating strings LO.
Puneeth Chaganti <punchagan@fossee.in>
parents:
266
diff
changeset
|
87 |
from the string s. |
265
5734d03b026c
Cleaned up script of manipulating strings LO.
Puneeth Chaganti <punchagan@fossee.in>
parents:
217
diff
changeset
|
88 |
|
5734d03b026c
Cleaned up script of manipulating strings LO.
Puneeth Chaganti <punchagan@fossee.in>
parents:
217
diff
changeset
|
89 |
Please, pause the video here. Do the exercise(s) and then continue. |
217
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
90 |
|
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
91 |
:: |
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
92 |
|
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
93 |
s[1:-1] |
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
94 |
|
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
95 |
gives the a substring of s, without the first and the last |
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
96 |
characters. |
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
97 |
|
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
98 |
:: |
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
99 |
|
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
100 |
s = saturday |
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
101 |
s[:3] |
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
102 |
|
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
103 |
Now, we just check if that substring is present in the variable |
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
104 |
``week``. |
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
105 |
|
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
106 |
:: |
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
107 |
|
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
108 |
s[:3] in week |
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
109 |
|
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
110 |
Let us now consider the problem of finding out if a given string is |
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
111 |
palindromic or not. First of all, a palindromic string is a string |
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
112 |
that remains same even when it has been reversed. |
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
113 |
|
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
114 |
Let the string given be ``malayalam``. |
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
115 |
|
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
116 |
:: |
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
117 |
|
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
118 |
s = "malayalam" |
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
119 |
|
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
120 |
Now, we need to compare this string with it's reverse. |
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
121 |
|
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
122 |
Again, we will use a technique common to all sequence data-types, |
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
123 |
[::-1] |
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
124 |
|
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
125 |
So, we obtain the reverse of s, by simply saying, |
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
126 |
|
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
127 |
:: |
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
128 |
|
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
129 |
s[::-1] |
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
130 |
|
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
131 |
Now, to check if the string is ``s`` is palindromic, we say |
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
132 |
:: |
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
133 |
|
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
134 |
s == s[::-1] |
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
135 |
|
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
136 |
As, expected, we get ``True``. |
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
137 |
|
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
138 |
Now, if the string we are given is ``Malayalam`` instead of |
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
139 |
``malayalam``, the above comparison would return a False. So, we will |
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
140 |
have to convert the string to all lower case or all upper case, before |
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
141 |
comparing. Python provides methods, ``s.lower`` and ``s.upper`` to |
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
142 |
achieve this. |
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
143 |
|
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
144 |
Let's try it out. |
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
145 |
:: |
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
146 |
|
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
147 |
s = "Malayalam" |
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
148 |
|
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
149 |
s.upper() |
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
150 |
|
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
151 |
s |
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
152 |
|
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
153 |
s.lower() |
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
154 |
|
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
155 |
s.lower() == s.lower()[::-1] |
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
156 |
|
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
157 |
Note that these methods, do not change the original string, but return |
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
158 |
a new string. |
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
159 |
|
265
5734d03b026c
Cleaned up script of manipulating strings LO.
Puneeth Chaganti <punchagan@fossee.in>
parents:
217
diff
changeset
|
160 |
Following is an exercise that you must do. |
5734d03b026c
Cleaned up script of manipulating strings LO.
Puneeth Chaganti <punchagan@fossee.in>
parents:
217
diff
changeset
|
161 |
|
5734d03b026c
Cleaned up script of manipulating strings LO.
Puneeth Chaganti <punchagan@fossee.in>
parents:
217
diff
changeset
|
162 |
%%2%% Check if ``s`` is a valid name of a day of the week. Change the |
5734d03b026c
Cleaned up script of manipulating strings LO.
Puneeth Chaganti <punchagan@fossee.in>
parents:
217
diff
changeset
|
163 |
solution to this problem, to include forms like, SAT, SATURDAY, |
5734d03b026c
Cleaned up script of manipulating strings LO.
Puneeth Chaganti <punchagan@fossee.in>
parents:
217
diff
changeset
|
164 |
Saturday and Sat. |
5734d03b026c
Cleaned up script of manipulating strings LO.
Puneeth Chaganti <punchagan@fossee.in>
parents:
217
diff
changeset
|
165 |
|
5734d03b026c
Cleaned up script of manipulating strings LO.
Puneeth Chaganti <punchagan@fossee.in>
parents:
217
diff
changeset
|
166 |
Please, pause the video here. Do the exercise and then continue. |
217
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
167 |
|
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
168 |
:: |
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
169 |
|
286
44f06ae0d957
Slides for manipulating strings LO.
Puneeth Chaganti <punchagan@fossee.in>
parents:
266
diff
changeset
|
170 |
s in week |
44f06ae0d957
Slides for manipulating strings LO.
Puneeth Chaganti <punchagan@fossee.in>
parents:
266
diff
changeset
|
171 |
|
217
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
172 |
s.lower()[:3] in week |
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
173 |
|
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
174 |
We just convert any input string to lower case and then check if it is |
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
175 |
present in the list ``week``. |
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
176 |
|
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
177 |
Now, let us consider another problem. We often encounter e-mail id's |
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
178 |
which have @ and periods replaced with text, something like |
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
179 |
info[at]fossee[dot]in. We now wish to get back proper e-mail |
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
180 |
addresses. |
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
181 |
|
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
182 |
Let's say the variable email has the email address. |
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
183 |
:: |
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
184 |
|
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
185 |
email = "info[at]fossee[dot]in" |
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
186 |
|
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
187 |
Now, we first replace the ``[at]`` with the ``@``, using the replace |
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
188 |
method of strings. |
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
189 |
:: |
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
190 |
|
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
191 |
email = email.replace("[at]", "@") |
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
192 |
print email |
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
193 |
|
265
5734d03b026c
Cleaned up script of manipulating strings LO.
Puneeth Chaganti <punchagan@fossee.in>
parents:
217
diff
changeset
|
194 |
Following is an exercise that you must do. |
5734d03b026c
Cleaned up script of manipulating strings LO.
Puneeth Chaganti <punchagan@fossee.in>
parents:
217
diff
changeset
|
195 |
|
286
44f06ae0d957
Slides for manipulating strings LO.
Puneeth Chaganti <punchagan@fossee.in>
parents:
266
diff
changeset
|
196 |
%%3%% Replace the ``[dot]`` with ``.`` in ``email`` |
265
5734d03b026c
Cleaned up script of manipulating strings LO.
Puneeth Chaganti <punchagan@fossee.in>
parents:
217
diff
changeset
|
197 |
|
5734d03b026c
Cleaned up script of manipulating strings LO.
Puneeth Chaganti <punchagan@fossee.in>
parents:
217
diff
changeset
|
198 |
Please, pause the video here. Do the exercise and then continue. |
217
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
199 |
|
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
200 |
:: |
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
201 |
|
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
202 |
email = email.replace("[dot]", ".") |
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
203 |
print email |
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
204 |
|
266
8018779e02b7
Added questions to manipulating strings LO.
Puneeth Chaganti <punchagan@fossee.in>
parents:
265
diff
changeset
|
205 |
Now, let's look at another interesting problem where we have a list of |
8018779e02b7
Added questions to manipulating strings LO.
Puneeth Chaganti <punchagan@fossee.in>
parents:
265
diff
changeset
|
206 |
e-mail addresses and we wish to obtain one long string of e-mail |
8018779e02b7
Added questions to manipulating strings LO.
Puneeth Chaganti <punchagan@fossee.in>
parents:
265
diff
changeset
|
207 |
addresses separated by commas or semi-colons. |
8018779e02b7
Added questions to manipulating strings LO.
Puneeth Chaganti <punchagan@fossee.in>
parents:
265
diff
changeset
|
208 |
|
8018779e02b7
Added questions to manipulating strings LO.
Puneeth Chaganti <punchagan@fossee.in>
parents:
265
diff
changeset
|
209 |
:: |
8018779e02b7
Added questions to manipulating strings LO.
Puneeth Chaganti <punchagan@fossee.in>
parents:
265
diff
changeset
|
210 |
|
8018779e02b7
Added questions to manipulating strings LO.
Puneeth Chaganti <punchagan@fossee.in>
parents:
265
diff
changeset
|
211 |
email_list = ["info@fossee.in", "enquiries@fossee.in", "help@fossee.in"] |
8018779e02b7
Added questions to manipulating strings LO.
Puneeth Chaganti <punchagan@fossee.in>
parents:
265
diff
changeset
|
212 |
|
8018779e02b7
Added questions to manipulating strings LO.
Puneeth Chaganti <punchagan@fossee.in>
parents:
265
diff
changeset
|
213 |
|
8018779e02b7
Added questions to manipulating strings LO.
Puneeth Chaganti <punchagan@fossee.in>
parents:
265
diff
changeset
|
214 |
Now, if we wish to obtain one long string, separating each of the |
8018779e02b7
Added questions to manipulating strings LO.
Puneeth Chaganti <punchagan@fossee.in>
parents:
265
diff
changeset
|
215 |
email id by a comma, we use the join operator on ``,``. |
8018779e02b7
Added questions to manipulating strings LO.
Puneeth Chaganti <punchagan@fossee.in>
parents:
265
diff
changeset
|
216 |
|
8018779e02b7
Added questions to manipulating strings LO.
Puneeth Chaganti <punchagan@fossee.in>
parents:
265
diff
changeset
|
217 |
:: |
8018779e02b7
Added questions to manipulating strings LO.
Puneeth Chaganti <punchagan@fossee.in>
parents:
265
diff
changeset
|
218 |
|
8018779e02b7
Added questions to manipulating strings LO.
Puneeth Chaganti <punchagan@fossee.in>
parents:
265
diff
changeset
|
219 |
email_str = ", ".join(email_list) |
8018779e02b7
Added questions to manipulating strings LO.
Puneeth Chaganti <punchagan@fossee.in>
parents:
265
diff
changeset
|
220 |
print email_str |
8018779e02b7
Added questions to manipulating strings LO.
Puneeth Chaganti <punchagan@fossee.in>
parents:
265
diff
changeset
|
221 |
|
8018779e02b7
Added questions to manipulating strings LO.
Puneeth Chaganti <punchagan@fossee.in>
parents:
265
diff
changeset
|
222 |
Notice that the email ids are joined by a comma followed by a space. |
8018779e02b7
Added questions to manipulating strings LO.
Puneeth Chaganti <punchagan@fossee.in>
parents:
265
diff
changeset
|
223 |
|
8018779e02b7
Added questions to manipulating strings LO.
Puneeth Chaganti <punchagan@fossee.in>
parents:
265
diff
changeset
|
224 |
Following is an exercise that you must do. |
8018779e02b7
Added questions to manipulating strings LO.
Puneeth Chaganti <punchagan@fossee.in>
parents:
265
diff
changeset
|
225 |
|
8018779e02b7
Added questions to manipulating strings LO.
Puneeth Chaganti <punchagan@fossee.in>
parents:
265
diff
changeset
|
226 |
%%3%% From the email_str that we generated, change the separator to be |
8018779e02b7
Added questions to manipulating strings LO.
Puneeth Chaganti <punchagan@fossee.in>
parents:
265
diff
changeset
|
227 |
a semicolon instead of a comma. |
8018779e02b7
Added questions to manipulating strings LO.
Puneeth Chaganti <punchagan@fossee.in>
parents:
265
diff
changeset
|
228 |
|
8018779e02b7
Added questions to manipulating strings LO.
Puneeth Chaganti <punchagan@fossee.in>
parents:
265
diff
changeset
|
229 |
Please, pause the video here. Do the exercise and then continue. |
8018779e02b7
Added questions to manipulating strings LO.
Puneeth Chaganti <punchagan@fossee.in>
parents:
265
diff
changeset
|
230 |
|
8018779e02b7
Added questions to manipulating strings LO.
Puneeth Chaganti <punchagan@fossee.in>
parents:
265
diff
changeset
|
231 |
:: |
8018779e02b7
Added questions to manipulating strings LO.
Puneeth Chaganti <punchagan@fossee.in>
parents:
265
diff
changeset
|
232 |
|
8018779e02b7
Added questions to manipulating strings LO.
Puneeth Chaganti <punchagan@fossee.in>
parents:
265
diff
changeset
|
233 |
email_str = email_str.replace(",", ";") |
217
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
234 |
|
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
235 |
That brings us to the end of the tutorial. |
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
236 |
|
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
237 |
{{{ show summary slide }}} |
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
238 |
|
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
239 |
In this tutorial, we have learnt how to get substrings, reverse |
266
8018779e02b7
Added questions to manipulating strings LO.
Puneeth Chaganti <punchagan@fossee.in>
parents:
265
diff
changeset
|
240 |
strings and a few useful methods, namely upper, lower, replace and |
8018779e02b7
Added questions to manipulating strings LO.
Puneeth Chaganti <punchagan@fossee.in>
parents:
265
diff
changeset
|
241 |
join. |
217
b595f90016c5
Changed structure of my scripts.
Puneeth Chaganti <punchagan@fossee.in>
parents:
diff
changeset
|
242 |
|
265
5734d03b026c
Cleaned up script of manipulating strings LO.
Puneeth Chaganti <punchagan@fossee.in>
parents:
217
diff
changeset
|
243 |
{{{ Show the "sponsored by FOSSEE" slide }}} |
5734d03b026c
Cleaned up script of manipulating strings LO.
Puneeth Chaganti <punchagan@fossee.in>
parents:
217
diff
changeset
|
244 |
|
5734d03b026c
Cleaned up script of manipulating strings LO.
Puneeth Chaganti <punchagan@fossee.in>
parents:
217
diff
changeset
|
245 |
This tutorial was created as a part of FOSSEE project, NME ICT, MHRD India |
5734d03b026c
Cleaned up script of manipulating strings LO.
Puneeth Chaganti <punchagan@fossee.in>
parents:
217
diff
changeset
|
246 |
|
5734d03b026c
Cleaned up script of manipulating strings LO.
Puneeth Chaganti <punchagan@fossee.in>
parents:
217
diff
changeset
|
247 |
Hope you have enjoyed and found it useful. |
5734d03b026c
Cleaned up script of manipulating strings LO.
Puneeth Chaganti <punchagan@fossee.in>
parents:
217
diff
changeset
|
248 |
Thank you! |
5734d03b026c
Cleaned up script of manipulating strings LO.
Puneeth Chaganti <punchagan@fossee.in>
parents:
217
diff
changeset
|
249 |