strings.org
author Shantanu <shantanu@fossee.in>
Wed, 21 Apr 2010 20:09:16 +0530
changeset 100 47a2ba7beaf8
parent 99 0bc1c9ec4fcf
child 103 587eb2416e6c
permissions -rw-r--r--
Added strings presentation.

* 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 Python anything enclosed within quotes is a string. Lets get 
    started by starting ipython interpreter. We shall create some 
    string variables by:

    a = 'This is a string'
    print a
    type(a) shows it is 'str'
    b = "This too!"
    print b

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

    c = '''This one too!'''
    print c
    d = """And one more."""
    print d

    These are special type of strings, called docstrings, which shall
    be discussed along with functions. 
    
    Like lists and arrays, which we have already seen, string elements 
    can also be accessed with their indexes. The indexing here, also, 
    begins from 0. 

    print a[0] gives us 'T'
    print a[5] gives us 'i' which is 6th character.

    To access the last element, we can use -1 as the index!
    print a[-1]
    Similarly, we could access other elements with corresponding -ve
    indexes. This is a very handy feature of python. 

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

    Python's strings support the operations + and *
    + concatenates two strings.
    a + b
    and * is used for replicating a string for given number of times.
    a * 4
    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, that
    is 
    a[0] = 't'
    throws an error
    
    Then how does one go about changing strings? 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.

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


    Now we shall look at simple input from and output to the
    console. 
    The raw_input function allows us to give input from the console. 
    a = raw_input()
    it is now waiting for the user input. 
    5
    a
    raw_input also allows us to give a prompt string, as shown 
    a = raw_input("Enter a value: ")
    Enter a value: 5
    Note that a, is now a string variable and not an integer. 
    type(a)
    we could use type conversion similar to that shown in the tutorial
    on numeric datatypes. 
    a = int(a)
    a has now been converted to an integer. 
    type(a)

    For console output, we use print which is pretty straightforward. 
    We shall look at a subtle feature of the print statement. 
    We shall first put the following code snippet in the file
    "hello1.py"
    print "Hello"
    print "World"
    We save the file and run it from the ipython interpreter. Make
    sure you navigate to the place, where you have saved it. 
    %run -i 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 -i hello2.py
    Note the difference in the output of the two files that we
    executed. 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 here a is integer
    a = 1.1 now a 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
    # a comment line
    a = "# not a comment"

    we come to the end of this tutorial on strings introduction of Data types in
    Python. In this tutorial we have learnt what are supported operations and 
    performing simple IO operations in Python.

*** Notes