CSC111 Programming Examples Week 5

From dftwiki3
Jump to: navigation, search

--D. Thiebaut (talk) 08:32, 26 February 2015 (EST)


Programs developed in class in Week #5


exo1.py


# exercise 1
#

def main0():
    # input data
    fname = "MaX" #input( "first name? " )
    lname = "HEADROOM" #input( "last name? " )

    # reformat data
    fullName = fname.capitalize() + " " + lname.capitalize()
    fullName = fullName.center( 60 )
    
    # output data
    #print( fname, lname )
    print( fullName+"!" )

def main():
    # get the input line
    line = "01234564135551212adflkja;sdlkfja ;sdflkjads; lfkjasldkfj"

    # extract phone number
    phone = line[ 7:7+10 ]

    # reformat phone number
    formattedPhone = "({0:1}) {1:1}-{2:1}".format( phone[0:3],
                                                   phone[3:6],
                                                   phone[6: ] )
    # output phone number
    print( phone )
    print( formattedPhone )

    
main()


sing.py

# sing.py
# D. Thiebaut
# Example of top-down design, and use of functions.
# CSC111 week #5

# singHappyDave: sings happy birthday to just Dave
# (This function is very boring, as it always does the same
# thing)
def singHappyDave():
    print( "Happy birthday to you," )
    print( "Happy birthday to you," )
    print( "Happy birthday, dear Dave" )
    print( "Happy birthday to you," )
    
# singHappyDave: sings happy birthday to just Sutart
# (This function is also very boring, as it always does the same
# thing)
def singHappyStuart():
    print( "Happy birthday to you," )
    print( "Happy birthday to you," )
    print( "Happy birthday, dear Stuart" )
    print( "Happy birthday to you," )

# printBar: prints a bar made of the character 'char',
# and with 'length' characters
def printBar( char, length ):
    print( char * length )
    

# printBarName: prints a bar made of the name of a person,
# with a variable length defined by 'length'.
# For example, printBar( "Dave", 10 ) will print the string
# "Dave*Dave*" (without the quotes).  This string has length
# 10.   printBar( "Dave",12 ) would print "Dave*Dave*Da".
def printBarName( name, length ):
    line = (name +"*" ) * length
    print( line[0:length]  )

# singHappy: sings happy birthday to a person whose name
# is passed in the parameter 'name'.  Prints a bar above
# and below the song.  The bar is the same length as the
# line where the person's name is mentioned.
def singHappy( name ):

    # create a string for the part of the line that contains
    # the person's name.
    line = "Happy birthday, dear"

    # print a bar that is the same length as the line
    # containing the person's name.
    #printBar( "=", len( line ) + len( name ) + 1 )
    printBarName( name, len( line ) + len( name ) + 1)

    # sing happy birthday
    print( "Happy birthday to you," )
    print( "Happy birthday to you," )
    print( line, name )  # prints "Happy birthday, dear xxxx"
                         # where xxxx is whatever is in name.
    print( "Happy birthday to you," )

    # print another bar
    #printBar( "=", len( line ) + len( name ) + 1 )
    printBarName( name, len( line ) + len( name ) + 1)

    # a couple blank lines...
    print( "\n\n" )

# createTextFile.  Utility function that I will use to
# quickly create a text file with some information in it.
# This function automatically stores the file in the same
# directory where this program is saved.
def createTextFile():
    file = open( "names.txt", "w" )
    file.write( "Gru Stuart Dave Carl Tim Jorge\n" )
    file.close()

# debugging function.  Just to test printBarName() on its
# own, without running the rest of the program.
def main0():
    printBarName( "Dave", 10 )


# MAIN FUNCTION
# This is where the program starts.
# The code sections between """ quotes are strings,
# and regarded by the interpreter as nothing more than
# a string.  We use this to comment out large sections of
# code.
def main():
    # create the text file with
    # minion names in it.  Comment this line once you have
    # run your program once (you don't want to keep on
    # recreating this file all the time!)
    createTextFile()

    """
    # sing happy birthdy to Dave and Stuart
    singHappyDave()
    print()
    singHappyStuart()
    print()
    """

    """
    # sing happy birthday to 2 people, but this
    # time we use the same function to perform the
    # same task, but pass the name of the person
    # via a parameter.
    singHappy( "Dave" )
    print()
    singHappy( "Stuart" )
    print()
    """


    # Sings happy birthday to a list of people whose
    # names are in a string, separated by spaces.
    """
    # list of people to sing to...
    minions = "Gru Stuart Dave Carl Tim Jorge"
    names = minions.split( ' ' )
    #print( names )
    for name in names:
        singHappy( name )
    """

    
    # Read names from a file called names.txt on disk,
    # and sing happy birthday to all the people listed
    # We assume that all the names are listed on one
    # line, all separated by spaces.
    file = open( "names.txt", "r" )
    line = file.read()
    file.close()

    # remove whitespace at beginning and end of string
    #print( line, "!" )  # debugging statement to check
                         # if there is a \n at the end
                         # of line.
    line = line.strip()  # we found out there was one,
                         # so we strip the line of
                         # leading and trailing whitespace
                         # (space, tab, and \n)
    
    names = line.split( ' ' )
    for name in names:
        singHappy( name )
        
    
# ----------------------------------------------------------
#                         M A I N 
# ----------------------------------------------------------
main()


Functions.py


# Functions.py
# Example of functions returning values. (Friday 2/27)

def worker1( num1 ):
    num2 = num1 * 2 + 1
    return num2


def worker2( num1 ):
    num2 = num1 % 10
    return num2


def worker3( num1 ):
    num2 = worker1( num1 )
    num3 = worker2( num2 )
    return num3

def fahr2celsius( fahr ):
    celsius = ( fahr-32 ) * 5/9

def getTextFromFile( fileName ):
    file = open( fileName, "r" )
    text = file.read()
    file.close()
    return text

def getTextFromFileStrip( fileName ):
    file = open( fileName, "r" )
    text = file.read()
    file.close()
    return text.strip()

def formatDate( date ):
    months = "XXXJanFebMarAprMayJunJulAugSepOctNovDec"
    # date is in mmddyyyy format
    index = int( date[0:2] ) * 3
    month = months[ index:index+3 ]
    day   = date[2:4]
    year  = date[4: ]
    return day + " " + month + " " + year

def main():
    date    = "02272015"
    newDate = formatDate( date )
    print( date, "-->", newDate )
    
    data = getTextFromFileStrip( "poem.txt" )
    print( data )
                            
    n = 12
    print( "n = ", n, " worker1(n) = ", worker1( n ) )
    print( "n = ", n, " worker2(n) = ", worker2( n ) )
    print( "n = ", n, " worker3(n) = ", worker3( n ) )

    temperature = 12
    for temp in range( 20, 40 ):
        print( temp, fahr2celsius( temp ) )

        
main()