strings.org
author asokan <asokan@fossee.in>
Tue, 18 May 2010 15:40:17 +0530
changeset 126 2eac725a5766
parent 113 6388eacf7502
permissions -rw-r--r--
changes to array.txt

* Strings
*** Outline
***** Strings
******* basic manipulation
******* operations
******* immutability
******* string methods
******* split and join
******* formatting - printf style
***** Simple IO
******* raw_input
******* console output
***** Odds and Ends
******* dynamic typing
******* comments
***** Arsenal Required
******* lists
******* writing to files
*** Script
	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 tuotrial 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 
	a string by typing 

	a = open single quote 'This is a string' close single quote
	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 = open double quote "I'll be back" close double quote
	print b ptints the value

	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
	and even 
	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

	so
	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.
	so a + b gives us the two srtings concatenated
	and * is used for replicating a string for given number of times.
	so 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.

	and 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

	lets us 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.
	* formatting - printf style *

	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. 
	type 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 doing 
	a = 1.1
	and 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

	pritn a and 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.

*** Notes