Difference between revisions of "CSC111 Lab 5 2018"

From dftwiki3
Jump to: navigation, search
 
(7 intermediate revisions by the same user not shown)
Line 2: Line 2:
 
----
 
----
  
 
+
<onlydft>
 
<br />
 
<br />
 
<!--center><videoflash>tDhhDKjatLI</videoflash></center-->
 
<!--center><videoflash>tDhhDKjatLI</videoflash></center-->
 
<br />
 
<br />
<showafterdate after="20180228 11:00" before="20180601 00:00">
+
 
 
<bluebox>
 
<bluebox>
This lab deals with functions, passing parameters, and returning values.  It is also about for you to start the Python.org documentation on the Web.  The online documentation is a great help when writing programs.  The Moodle submissions are due on Friday 10/09 at 11:55 p.m.
+
This lab deals with functions, passing parameters, and returning values.  It is also about for you to start the Python.org documentation on the Web.  The online documentation is a great help when writing programs.  The Moodle submissions are due on Friday 3/2/18 at 11:55 p.m.
 
</bluebox>
 
</bluebox>
 
<br />
 
<br />
Line 420: Line 420:
 
* Make your program calculate the average word length of all the words in the sentence.
 
* Make your program calculate the average word length of all the words in the sentence.
 
* Make your program outpu the average word length with TWO decimal places.
 
* Make your program outpu the average word length with TWO decimal places.
 
+
* Example output:
 
+
::<source lang="text">
 +
Sentence? the quick red fox jumped
 +
average word length = 4.00
 +
</source>
 
<br />
 
<br />
 
{| style="width:100%; background:silver"
 
{| style="width:100%; background:silver"
Line 432: Line 435:
 
<br />
 
<br />
 
Write a program that does the following:
 
Write a program that does the following:
# It contains a string with a list of student names:
+
1. It contains a string with a list of student names:
 
:::<source lang="python">
 
:::<source lang="python">
     students = ["Brown,Sarah", "McCharles,Charlie", "Hudson,Stanley", "Smith,Margaret", "Brown,Ben", "Yang,Debbie"]  
+
     students = ["Brown,Sarah", "McCharles,Charlie", "Hudson,Stanley",  
 +
                "Smith,Margaret", "Brown,Ben", "Yang,Debbie"]  
 
</source>
 
</source>
# It prompts the user to type in an integer number between 0 and 5, included.
+
2. It displays the list of names on the screen, with an index in front of each one.
# Using this number, it get the appropriate student name and print out a new computer account with the new format First Initial Last Name  
+
2. It prompts the user to type in an integer number between 0 and 5, included.
 +
3. Using this number, it gets the appropriate student name and prints out a new computer account with format First Initial Last Name  
 
         ie. Sarah Brown turns into sbrown.
 
         ie. Sarah Brown turns into sbrown.
 +
4. Try to use functions if possible!
  
 
Example Input/Output
 
Example Input/Output
 
  >>> main()
 
  >>> main()
  
  1 Brown,Sarah
+
  0 Brown,Sarah
  2 McCharles,Charlie
+
  1 McCharles,Charlie
  3 Hudson,Stanley
+
  2 Hudson,Stanley
  4 Smith,Margaret
+
  3 Smith,Margaret
  5 Brown,Ben
+
  4 Brown,Ben
  6 Yang,Debbie
+
  5 Yang,Debbie
  Which student do you want to process? 6
+
  Which student? 5
 
   
 
   
  Debbie Yang: dyang
+
  Yang,Debbie dyang
 
  >>>  
 
  >>>  
  
 +
* Make sure you print a blank line before the result.  The autograder needs this blank line to fully isolate the last line of your program.
 +
<br />
 
==Moodle Submission==
 
==Moodle Submission==
 
<br />
 
<br />
Line 459: Line 467:
 
<br />
 
<br />
 
<br />
 
<br />
</showafterdate>
+
 
 +
</onlydft>
  
 
<!-- =================================================================== -->
 
<!-- =================================================================== -->
Line 471: Line 480:
 
::<source lang="python">
 
::<source lang="python">
 
   
 
   
 +
  
 
# --------------------- stickFigure -----------------------
 
# --------------------- stickFigure -----------------------
Line 560: Line 570:
  
 
# ---------------------- Snow Man ----------------------
 
# ---------------------- Snow Man ----------------------
"""
+
_ = """
 
     __
 
     __
 
   _|==|_
 
   _|==|_
Line 568: Line 578:
 
   `======'
 
   `======'
 
"""
 
"""
def hat():
+
def hat2():
 
     print("    __" )
 
     print("    __" )
 
     print("  _|==|_" )
 
     print("  _|==|_" )
  
def headRightArm():
+
def headRightArm2():
 
     print( "    ('')__/" )
 
     print( "    ('')__/" )
  
def leftArm():
+
def leftArm2():
 
     print( ">--", end="" )
 
     print( ">--", end="" )
  
def body():
+
def body2():
 
     print( "(`^^`)" )
 
     print( "(`^^`)" )
 
     print("  (`^'^'`)" )
 
     print("  (`^'^'`)" )
  
def base():
+
def base2():
 
     print( "  `======'" )
 
     print( "  `======'" )
 
     print()
 
     print()
 
      
 
      
 
def snowMan():
 
def snowMan():
     hat()
+
     hat2()
     headRightArm()
+
     headRightArm2()
     leftArm()
+
     leftArm2()
     body()
+
     body2()
     base()
+
     base2()
   
 
 
 
snowMan()
 
 
 
 
      
 
      
  
Line 637: Line 643:
 
def singHappy2( ):
 
def singHappy2( ):
 
     # get a line of names, separated by spaces
 
     # get a line of names, separated by spaces
     line = input( "? " )
+
     line = input( "Give me several names, please: " )
  
 
     # remove extra spaces at the front or back
 
     # remove extra spaces at the front or back
Line 652: Line 658:
 
     print( "\n" + ( "-"*30 ) + "oOo" + ("-"*30 ) +"\n" )
 
     print( "\n" + ( "-"*30 ) + "oOo" + ("-"*30 ) +"\n" )
  
 +
def identifyDNA( DNA ):
 +
    return DNA.replace( "AGA", "###" )
 +
 +
def trimDNA( DNA ):
 +
    marker = "AGA"
 +
    index1 = DNA.find( marker )
 +
    index2 = DNA.find( marker, index1+1 )
 +
    return DNA[index1:index2 + len( marker )]
 +
 +
def DNAProblem():
 +
    DNA = "AAGACTAAAAAAGACTT" #input( "Enter DNA: " )
 +
    print( "DNA =", DNA )
 
      
 
      
 +
    # show where the markers are
 +
    newDNA = identifyDNA( DNA )
 +
    print( newDNA )
 +
 +
    # remove symbols on each side of the markers
 +
    newDNA = trimDNA( DNA )
 +
    print( newDNA )
 +
 +
def challenge4():
 +
    sentence = "the quick red fox jumped" # input( "Sentence? " )
 +
    print( "Sentence =", sentence )
 +
    sum = 0
 +
    words = sentence.split()
 +
    for word in words:
 +
        sum = sum + len( word )
 +
    print( "average word length = {0:1.2f}".format( sum/len(words) ) )
 +
 +
def challenge5():
 +
    students = ["Brown,Sarah", "McCharles,Charlie", "Hudson,Stanley",
 +
                "Smith,Margaret", "Brown,Ben", "Yang,Debbie"]
 +
   
 +
    # display the students
 +
    for i in range( len( students ) ):
 +
        print( i, students[i] )
 +
 +
    # get index from user
 +
    index = 3 # input( "Which student? " )
 +
    name = students[index]
 +
    last, first = name.split( ',' )
 +
    account = first[0] + last
 +
    account = account.lower()
 +
    print( name, account )
 +
 
def main():
 
def main():
 
     newStickFigure()
 
     newStickFigure()
Line 659: Line 710:
 
     singHappy()
 
     singHappy()
 
     singHappy2()
 
     singHappy2()
 
+
    DNAProblem()
 +
    challenge4()
 +
    challenge5()
 +
   
 
main()
 
main()
  

Latest revision as of 12:50, 1 June 2018

D. Thiebaut (talk) 05:52, 25 February 2018 (EST)



...


<showafterdate after="20180309 08:00" before="20180601 00:00">

Solution Programs


 


# --------------------- stickFigure -----------------------

def head():
    print( "  o" )

def leftArm():
    print( " /", end="" )

def torso():
    print( "O", end="" )

def rightArm():
    print( "\\" )

def leftLeg():
    print( " /", end="" )

def rightLeg():
    print( " \\" )

def stickFigure():
    head()
    leftArm()
    torso()
    rightArm()
    leftLeg()
    rightLeg()

def body():
    leftArm()
    torso()
    rightArm()

def legs():
    leftLeg()
    rightLeg()

def newStickFigure():
    head()
    body()
    legs()

# --------------------- stickFigure1 ----------------------

def leftForearm1():
    print( " /", end="" )

def sword1():
    print( "+=====>" )

def leftArm1():
    print( " \\", end="" )

def head1():
    print( "O", end="" )

def rightArm1():
    print( "___" )

def body1():
    print( "  |" )
    print( "  |" )

def leftThigh1():
    print( " / ", end="" )

def rightThigh1():
    print( "\\" )

def leftCalf1():
    print( "/   ", end ="" )

def rightCalf1():
    print( "\\" )

def stickFigure1():
    leftForearm1()
    sword1()
    leftArm1()
    head1()
    rightArm1()
    body1()
    leftThigh1()
    rightThigh1()
    leftCalf1()
    rightCalf1()

# ---------------------- Snow Man ----------------------
_ = """
     __
   _|==|_
    ('')__/
>--(`^^`)
  (`^'^'`)
  `======'
"""
def hat2():
    print("     __" )
    print("   _|==|_" )

def headRightArm2():
    print( "    ('')__/" )

def leftArm2():
    print( ">--", end="" )

def body2():
    print( "(`^^`)" )
    print("  (`^'^'`)" )

def base2():
    print( "  `======'" )
    print()
    
def snowMan():
    hat2()
    headRightArm2()
    leftArm2()
    body2()
    base2()
    

    
# ---------------------------------------------------------


def happyBirthday():
    print( "Happy birthday to you!" )

def happyBirthdayDear( name ):
    print( "Happy birthday, dear " + name +"!"  )

def singSong( name ):
    happyBirthday()
    happyBirthday()
    happyBirthdayDear( name )
    happyBirthday()


def singHappy( ):
    # get the name from the user
    name = input( "Who's birthday should we celebrate? " )

    # sing the song for that person
    singSong( name )

# ----------------- Another Version ---------------------
def happyBirthday():
    print( "Happy birthday to you!" )

def happyBirthdayDear( name ):
    print( "Happy birthday, dear " + name +"!"  )

def singSong( name ):
    happyBirthday()
    happyBirthday()
    happyBirthdayDear( name )
    happyBirthday()

def singHappy2( ):
    # get a line of names, separated by spaces
    line = input( "Give me several names, please: " )

    # remove extra spaces at the front or back
    line = line.strip()

    # split the line into individual names, and sing song for each
    for name in line.split(  ):
        singSong( name )
        # blank line separates the different songs
        print()


def bar():
    print( "\n" + ( "-"*30 ) + "oOo" + ("-"*30 ) +"\n" )

def identifyDNA( DNA ):
    return DNA.replace( "AGA", "###" )

def trimDNA( DNA ):
    marker = "AGA"
    index1 = DNA.find( marker )
    index2 = DNA.find( marker, index1+1 )
    return DNA[index1:index2 + len( marker )]

def DNAProblem():
    DNA = "AAGACTAAAAAAGACTT" #input( "Enter DNA: " )
    print( "DNA =", DNA )
    
    # show where the markers are
    newDNA = identifyDNA( DNA )
    print( newDNA )

    # remove symbols on each side of the markers
    newDNA = trimDNA( DNA )
    print( newDNA )

def challenge4():
    sentence = "the quick red fox jumped" # input( "Sentence? " )
    print( "Sentence =", sentence )
    sum = 0
    words = sentence.split()
    for word in words:
        sum = sum + len( word )
    print( "average word length = {0:1.2f}".format( sum/len(words) ) )

def challenge5():
     students = ["Brown,Sarah", "McCharles,Charlie", "Hudson,Stanley", 
                "Smith,Margaret", "Brown,Ben", "Yang,Debbie"]
     
     # display the students
     for i in range( len( students ) ):
         print( i, students[i] )

     # get index from user
     index = 3 # input( "Which student? " )
     name = students[index]
     last, first = name.split( ',' )
     account = first[0] + last
     account = account.lower()
     print( name, account )

def main():
     newStickFigure()
     stickFigure1()
     snowMan()
     singHappy()
     singHappy2()
     DNAProblem()
     challenge4()
     challenge5()
     
main()

</showafterdate>