Chapter 06 : Handling Of Character Strings

Example: 1, Page Number: 5.19

In [48]:
#Program for reading a line of text

n = 0
print "Enter text press RETRUN to end"
Enter text press RETRUN to end

Example: 2, Page Number: 5.20

In [4]:
#String function

s1= "Hello"
s2='H''e''l''l''o'

print s1
print s2
Hello
Hello

Example: 3, Page Number: 5.22

In [50]:
#Program using strlen() function

name = "MUNI"
len1 = len(name)
len2 = len("LAK")
print "String length of %s is %d" %(name,len1)
print "String length of %s is %d" %("LAK",len2)
String length of MUNI is 4
String length of LAK is 3

Example: 4, Page Number: 5.23

In [64]:
#Program using strcpy() function
def strcpy(cstring1):
      import copy
      cstring2=copy.copy(cstring1)
      return cstring2  

source = "MUNI"
target = strcpy(source)
print "Source string is %s" %source
print "Target string is %s" %target
Source string is MUNI
Target string is MUNI

Example: 5, Page Number:5.24

In [11]:
#Strcat function

str1="MUNI"
str2="LAK"
print str1+str2
MUNILAK

Example: 6, Page Number: 5.24

In [69]:
#Program using strcat() function
def strcat(cstring1, cstring2):
    cstring3 = cstring1 + cstring2
    return cstring3

source = "Ramesh"
target = "Babu"
source = strcat(source,target)
print "Source string is %s" %source
print "Target string is %s" %target
Source string is RameshBabu
Target string is Babu

Example: 7, Page Number: 5.25

In [15]:
#Program using strcmp() function

name = "Kalai"
name1 = "Malai"
if name =="Kalai":
    print "0",
if name1!=name:
    print "1",
if name != "Kalai mani":
    print "6"
0 1 6

Example: 8, Page Number: 5.26

In [85]:
#Program using strrev() function
def strrev(cstring1):
    cstring2 = ' '
    for i in range(len(cstring1)-1,-1,-1):
        cstring2 = cstring2 + cstring1[i]
    return cstring2

y = raw_input("Enter the string ")
print "The string reversed is : %s" %strrev(y)
Enter the string book
The string reversed is :  koob

Example: 9, Page Number: 5.27

In [125]:
#Program using enumerated data type
def enum(*sequential, **named):
    enums = dict(zip(sequential, range(len(sequential))), **named)
    return type('Enum', (), enums)

week = enum(' ', 'sun','Mon','Tue','Wed','Thr','Fri','Sat')
print "Mon = %d" %week.Mon
print "Tue = %d" %week.Tue
print "Wed= %d" %week.Wed
print "Sat = %d" %week.Sat
Mon = 2
Tue = 3
Wed= 4
Sat = 7

Example: 10, Page Number: 5.28

In [143]:
#Program to identify whether the entered character is letter, digit or other symbols
def enum(*sequential, **named):
    enums = dict(zip(sequential, range(len(sequential))), **named)
    return type('Enum', (), enums)

ctype = enum(' ', 'Letter', 'Digit', 'Other')
ch = raw_input("Enter a any character.")
a = ch.isalpha()
if a != False:
    print "%c is %d type of symbol." %(ch,ctype.Letter)
else:
    a = ch.isdigit()
    if a != False:
        print "%c is %d type of symbol." %(ch,ctype.Digit)
    else:
        print "%c is %d type of symbol." %(ch,ctype.Other)
Enter a any character.%
% is 3 type of symbol.

Case Study: 1, Page Number: 5.29

In [1]:
#Program for sorting an array of elements

a = []
n = input("Enter Upper limit....")
for i in range(0,n):
    a.append(0)
print "Enter elements...."    
for i in range(0,n):
    a[i]=input()
for i in range(0,n):
    for j in range(i,n):
        if a[i]>a[j]:
            t = a[i]
            a[i] = a[j]
            a[j] = t
print "Numbers in Ascending order"
for i in range(0,n):
    print "%d" %a[i],
Enter Upper limit....6
Enter elements....
5
1
4
6
2
3
Numbers in Ascending order
1 2 3 4 5 6

Case Study: 2, Page Number: 5.31

In [162]:
#Program to fing Median for a given 'n' numbers

arr = []
n = input("Enter Upper limit....")
for i in range(0,n):
    arr.append(0)
print "Enter..%d..values" %n    
for i in range(0,n):
    arr[i]=input()
for i in range(1,n):
    for j in range(1,n-i):
        if arr[j] <= arr[j+1]:
            t = arr[j]
            arr[j] = arr[j+1]
            arr[j+1] = t
        else:
            continue
if n%2 == 0:
    median = (arr[n/2]+arr[n/2+1])/2.0
else:
    median = arr[n/2+1]
print "Median is....%.f" %median    
                
Enter Upper limit....3
Enter..3..values
10
20
30
Median is....20

Case Study: 3, Page Number: 5.32

In [169]:
#Program to find standard deviation for the given data
import math

val = []
sum = ssqr = n = 0
for i in range(0,100):
    val.append(0)
print "Enter Values -999 to stop...."
for i in range(0,100):
    val[i] = float(raw_input())
    if val[i] == -999:
        break
    sum = float(sum) + val[i]    
    n = n + 1
mean = float(sum) / float(n)    
for i in range(0,n):
    dev = val[i] - mean
    ssqr = float(ssqr) + float(dev)*float(dev)
var = ssqr / float(n)    
sd = math.sqrt(float(var))
print "Number of Items.....%d" %n
print "Mean is .....%f" %mean
print "Standard Deviation is .....%f" %sd
Enter Values -999 to stop....
10
20
30
40
50
-999
Number of Items.....5
Mean is .....30.000000
Standard Deviation is .....14.142136

Case Study: 4, Page Number: 5.34

In [174]:
#Bubble sort using function

def bubble(n, x = []):
    for item in range(0,n-1):
        for i in range(item+1,n):
            if x[i]<x[item]:
                temp = x[item]
                x[item] = x[i]
                x[i] = temp
                
a = []                
n = input("Enter upper limit: ")
for i in range(0,n):
    a.append(0)
for i in range(0,n):
    a[i] = input()
    
bubble(n,a)    
print "After sorting",
for i in range(0,n):
    print "%d" %a[i],
Enter upper limit: 5
1
5
3
4
2
After sorting 1 2 3 4 5

Case Study: 5, Page Number: 5.35

In [186]:
#Program to sort an element using Insertion sort

a = []
x = input("Elements to be inserted ")
for i in range(0,100):
    a.append(0)
i = 0
while x != -99:
    k = i-1
    while (x<a[k]) and (k>=0):
        a[k+1] = a[k]
        k = k-1
    a[k+1]=x
    print "Array after inserting %d:" %x
    for j in range(0,i):
        print "%5d" %a[j]
    x = input("Elements to be inserted(-99 to stop)?")
    i = i+1
print "The final sorted array"
for j in range(0,i):
    print "%5d" %a[j],
Elements to be inserted 5
Array after inserting 5:
Elements to be inserted(-99 to stop)?3
Array after inserting 3:
    3
Elements to be inserted(-99 to stop)?4
Array after inserting 4:
    3
    4
Elements to be inserted(-99 to stop)?2
Array after inserting 2:
    2
    3
    4
Elements to be inserted(-99 to stop)?1
Array after inserting 1:
    1
    2
    3
    4
Elements to be inserted(-99 to stop)?-99
The final sorted array
    1     2     3     4     5

Case Study: 6, Page Number: 5.36

In [190]:
#Program to sort an element using selection sort

a = []
for i in range(0,100):
    a.append(0)
n = input("Enter Number of elements in array...")
print "Enter Elements...",n
for i in range(0,n):
    a[i] = input()
for i in range(0,n-1):
    m = i
    for j in range(i+1,n):
        if a[m]>a[j]:
            m = j
    if i != m:
        k = a[i]
        a[i] = a[m]
        a[m] = k
        
print "Sorted Array (Selection Sort) is...\n"
for i in range(0,n):
    print "%5d" %a[i],
Enter Number of elements in array...9
Enter Elements... 9
56
326
85
42
156
845
66
1
55
Sorted Array (Selection Sort) is...

    1    42    55    56    66    85   156   326   845

Case Study: 7, Page Number: 5.38

In [15]:
#Quick sort

def quickSort(array):
   quickSortHelper(array,0,len(array)-1)

def quickSortHelper(array,right,left):
   if right<left:
       splitpoint = partition(array,right,left)
       quickSortHelper(array,right,splitpoint-1)
       quickSortHelper(array,splitpoint+1,left)

def partition(array,right,left):
   pivotvalue = array[right]

   begin = right+1
   end = left

   done = False
   while not done:

       while begin <= end and \
               array[begin] <= pivotvalue:
           begin = begin + 1

       while array[end] >= pivotvalue and \
               end >= begin:
           end = end -1

       if end < begin:
           done = True
       else:
           temp = array[begin]
           alist[begin] = array[end]
           alist[end] = temp

   temp = array[right]
   array[right] = array[end]
   array[end] = temp
   return end

array = []
n=input("Enter the values in array: ")
for i in range (0,n):
    array.append(0)
for i in range (0,n):
    array[i]=input()
    
quickSort(array)
print "Quick Sorted Array is", array
Enter the values in array: 5
1
3
2
5
4
Quick Sorted Array is [1, 2, 3, 4, 5]

Case Study: 8, Page Number: 5.40

In [206]:
#program to find the specified elements from the array using linear searching

a = [100]
for i in range(0,100):
    a.append(0)
c = 'y'
while (c=='y')or(c=='Y'):
    no = input("Enter the size of sorting")
    print "Enter the elements of the array"
    for i in range(0,no):
        a[i]=input()
    k = input("Enter the element to be searched")    
    for i in range(0,no):
        if k == a[i]:
            print "Element %d is in the position %d" %(k,i+1)
            f=2
            break
    if f==1:
        print "The entered element is not in the array"
    ch = raw_input("If you want to continue y/n ")
    c = ch
    
Enter the size of sorting5
Enter the elements of the array
3
2
1
4
5
Enter the element to be searched4
Element 4 is in the position 4
If you want to continue y/n n

Case Study: 9, Page Number: 5.42

In [19]:
#Program to find the specified element from array using Binary search

a = [100]
for i in range(0,100):
    a.append(0)
no = input("Enter the size of sorting")
print "Enter the elements in ascending order"
for i in range(0,no):
        a[i]=input() 
t = input("Enter the element to be searched") 
l=0
h=no-1
while l <= h:
    m = (l+h)/2
    if t<a[m]:
        h = m-1
    elif t>a[m]:
        l = m+1
    else:
        print "Entered %d is in position %d" %(t,m+1)
        f=2
        break
if f==1:
    print "Entered element is not in the array"
Enter the size of sorting5
Enter the elements in ascending order
1
3
4
5
6
Enter the element to be searched3
Entered 3 is in position 2