CSC111 Lab 5 2015

From dftwiki3
Revision as of 16:53, 23 February 2015 by Thiebaut (talk | contribs)
Jump to: navigation, search

--D. Thiebaut (talk) 12:17, 22 February 2015 (EST)


<showafterdate after="20150225 11:00" before="20150601 00:00">

Preparation


  • Copy paste the program below in a new Idle window, and call it lab5Companion.py.
  • Save your new program to your working directory, where you normally save your lab programs.
  • Run the program. It should create 3 text files in your folder. You will be using them in this lab. The files are called:
    • chocoQuotes.txt
    • hargitay.txt
    • joanneHarris.txt


# lab5Companion.py
# D. Thiebaut
# This program will create several files in the directory
# where you will run it.
# The files are retrieved from a Web server, stored temporarily
# in a string, and stored in a local file on your disk.
# The 3 files are very, very short.
# Their names are:
# - chocoQuotes.txt
# - hargitay.txt
# - joanneHarris.txt

import urllib.request  # the lib that handles the url stuff

# main program
def main():

    # list of files to retrieve 
    fileNames = [ "chocoQuotes.txt", "hargitay.txt", "joanneHarris.txt" ]

    # get each file, one at a time
    for fileName in fileNames:

        # url where the files are located
        url = "http://cs.smith.edu/~dthiebaut/111/files/" + fileName

        # fetch the file and put its contents in the
        # strign text.
        response = urllib.request.urlopen( url )
        text     = response.read().decode( 'UTF-8' )
        
        # write text to file, in the same directory as this program.
        file     = open( fileName, "w" )
        file.write( text + "\n" )
        file.close()

        # give feedback to user.
        print( "File {0:1} created in your folder".format( fileName ) )


main()


Splitting Long Strings


In this section you will see how to take text represented as a multi-line string, and process it various ways.


  • Long strings that span several lines can be created by enclosing them in triple quotes; either triple single-quotes (), or triple double-quotes (""").
  • Copy/paste the program below in a new program. You may call it lab5.py


# lab5.py

text = """Chocolate
Chocolate is the first luxury.
It has so many things wrapped up in it:
Deliciusness in the moment,
childhood memories,
and that grin-inducing
feeling of getting a reward for being good.
--Mariska Hargitay"""

def main():
    # make sure main knows that this variable exists
    global text
    
    # split the long string into individual lines
    lines = text.split( "\n" )

    # print each line
    for line in lines:
        print( line )

main()


  • Run the program. Verify that it outputs the entirety of the text.
  • Just to make sure we understand what the variable lines contain, make your program print lines, with a simple print( lines ) statement.
  • Observe that it's just a regular Python list.



Challenge #1

QuestionMark1.jpg
  • Modify your program, and make it print the poem so that each line is centered in a field of 60 spaces. You must use the text variable, and print its line. Do not create a new version of the poem!
  • Expected output


                         Chocolate                          
               Chocolate is the first luxury.               
          It has so many things wrapped up in it:           
                Deliciusness in the moment,                 
                    childhood memories,                     
                   and that grin-inducing                   
        feeling of getting a reward for being good.         
                     --Mariska Hargitay




Challenge #2

QuestionMark2.jpg
  • Make your program print the first line of the poem, centered, but also in uppercase.
  • Make it display the other lines centered, without changing their case.
  • Expected output


                         CHOCOLATE                          
               Chocolate is the first luxury.               
          It has so many things wrapped up in it:           
                Deliciusness in the moment,                 
                    childhood memories,                     
                   and that grin-inducing                   
        feeling of getting a reward for being good.         
                     --Mariska Hargitay




</showafterdate>