Python-Old-Version/C3/Strings/English

From Script | Spoken-Tutorial
Jump to: navigation, search

Welcome friends.

In the previous tutorial we have looked at data types for dealing with numbers. In this tutorial we shall look at strings. We shall look at how to do elementary string manipulation, and simple input and output operations.

In this tutorial we shall use concepts of writing python scripts and basics of lists that have been covered in previous session

Lets get started by opening ipython interpreter. We shall create some string a by typing

a = 'This is a string'
print a 

a contains the string we can check for datatype of a by using type(a) and shows it is 'str'

consider the case when string contains single quote. for example I'll be back to store these kind of strings, we use double quotes type

b = "I'll be back"
print b 

In python, anything enlosed in quotes is a string. Does not matter if they are single quotes or double quotes.

There is also a special type of string enclosed in triple single quotes or triple double quotes.

so when you do

c = Iam also a string
print c

and c is also string variable.

d = """And one more."""
print d 

d is also a string

These strings enclosed in triple quotes are special type of strings, called docstrings, and they shall be discussed in detail along with functions.

We know elements in lists and arrays can be accessed with indices. similarly string elements can also be accessed with their indexes. and here also, indexing starts from 0.

print a[0] 

gives us 'T' which is the first character

print a[5] 

gives us 'i' which is 6th character.

The len function, which we used with lists and arrays, works with strings too.

len(a) 

gives us the length of string a

Python's strings support the + and * operations. + concatenates two strings.

a + b 

gives us the two srtings concatenated

  • is used for replicating a string for given number of times.
a * 4 

gives us a replicated 4 times

What do you think would happen when you do a * a? It's obviously an error since, it doesn't make any logical sense.

One thing to note about strings, is that they are immutable, which means when yo do

a[0] = 't'

it throws an error

Then how does one go about doing strings manipulations. Python provides 'methods' for doing various manipulations on strings. For example -

a.upper() 

returns a string with all letters capitalized.

a.lower() 

returns a string with all smaller case letters.

There are many other methods available and we shall use Ipython auto suggestion feature to find out. Type

a.

and hit tab. We can see there are many methods available in python for string manipulation. Let's try startswith

a.startswith('Thi')

returns True if the string starts with the argument passed.

similarly there's endswith

a.endswith('ING')

We've seen the use of split function in the previous tutorials. split returns a list after splitting the string on the given argument.

alist = a.split()

will give list with four elements.

print alist

Python also has a 'join' function, which does the opposite of what split does.

' '.join(alist) 

will return the original string a. This function takes list of elements(in our case alist) to be joined.

'-'.join(alist) 

will return a string with the spaces in the string 'a' replaced with hyphens. Please note that after all these operations, the original string is not changed. and print a prints the original string.

At times we want our output or message in a particular format with variables embedded, something like printf in C. For those situations python provides a provision. First lets create some variables say

In []: x, y = 1, 1.234
In []: print 'x is %s, y is %s' %(x, y)
Out[]: 'x is 1, y is 1.234'

Here %s means string, you can also try %d or %f for integer and float values respectively.

We have seen how to output data. Now we shall look at taking input from the console.

The raw_input function allows us to take input from the console.

a = raw_input() 

and hit enter. Now Python is waiting for input. Type

5 

and hit enter.

We can check for the value of a by typing

print a 

and we see that it is 5.

raw_input also allows us to give a prompt string. we type

a = raw_input("Enter a value: ")

and we see that the string given as argument is prompted at the user.

5

Note that a, is now a string variable and not an integer.

type(a)

raw_input takes input only as a string

We cannot do mathematical operations on it, but we can use type conversion similar to that shown in previous tutorial.

b = int(a)

a has now been converted to an integer and stored in b.

type(b) 

gives int. b can be used here for mathematical operations.

For console output, we have been using print which is pretty straightforward. We shall look at a subtle feature of the print statement.

Open scite editor and type

print "Hello"
print "World"

We save the file as "hello1.py" run it from the ipython interpreter. Make sure you navigate to the place, where you have saved it.

%run hello1.py

Now we make a small change to the code snippet and save it in the file named "hello2.py"

print "Hello", 
print "World"

We now run this file, from the ipython interpreter.

%run hello2.py


Note the difference in the output. The comma adds a space at the end of the line, instead of a new line character that is normally added.

Before we wind up, a couple of miscellaneous things. As you may have already noticed, Python is a dynamically typed language, that is you don't have to specify the type of a variable when using a new one. You don't have to do anything special, to 'reuse' a variable that was of int type as a float or string.

a = 1 

and here a is integer. lets store a float value in a by typing

a = 1.1
print a

now a is float

a = "Now I am a string!"

Comments in Python start with a pound or hash sign. Anything after a #, until the end of the line is considered a comment, except of course, if the hash is in a string.

a = 1 # in-line comments
print a 

we see that comment is not a part of variable a

a = "# not a comment"

We come to the end of this tutorial on strings. In this tutorial we have learnt what are supported operations on strings and how to perform simple Input and Output operations in Python.

Thank you!

Contributors and Content Editors

Pravin1389