Difference between revisions of "CSC111 Lab 5 2018"
(9 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 /> | ||
− | + | ||
<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 | + | 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 406: | Line 406: | ||
<br /> | <br /> | ||
<br /> | <br /> | ||
− | </ | + | <br /> |
+ | ==Challenging Problems of the Day == | ||
+ | {| style="width:100%; background:silver" | ||
+ | |- | ||
+ | | | ||
+ | ===Challenge #4=== | ||
+ | |} | ||
+ | [[Image:QuestionMark3.jpg|right|120px]] | ||
+ | <br /><br /> | ||
+ | * Write a program prompt the user for a sentence of several words. | ||
+ | * 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. | ||
+ | * Example output: | ||
+ | ::<source lang="text"> | ||
+ | Sentence? the quick red fox jumped | ||
+ | average word length = 4.00 | ||
+ | </source> | ||
<br /> | <br /> | ||
+ | {| style="width:100%; background:silver" | ||
+ | |- | ||
+ | | | ||
− | == | + | ===Challenge #5=== |
− | + | |} | |
− | + | [[Image:QuestionMark5.jpg|right|120px]] | |
− | + | <br /> | |
− | |||
− | |||
− | |||
Write a program that does the following: | Write a program that does the following: | ||
− | + | 1. It contains a string with a list of student names: | |
− | + | :::<source lang="python"> | |
− | + | students = ["Brown,Sarah", "McCharles,Charlie", "Hudson,Stanley", | |
− | + | "Smith,Margaret", "Brown,Ben", "Yang,Debbie"] | |
− | ie. Sarah Brown turns | + | </source> |
+ | 2. It displays the list of names on the screen, with an index in front of each one. | ||
+ | 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. | ||
+ | 4. Try to use functions if possible! | ||
Example Input/Output | Example Input/Output | ||
>>> main() | >>> main() | ||
− | + | ||
− | + | 0 Brown,Sarah | |
− | + | 1 McCharles,Charlie | |
− | + | 2 Hudson,Stanley | |
− | + | 3 Smith,Margaret | |
− | + | 4 Brown,Ben | |
− | Which student | + | 5 Yang,Debbie |
+ | Which student? 5 | ||
− | Debbie | + | 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== | ||
+ | <br /> | ||
+ | * Submit your solution program for Challenge 5 to Moodle, in Section LAB 5 PB 5. You should call your program lab5_5.py, or copy/paste your program in the Edit window in Moodle. | ||
+ | <br /> | ||
+ | <br /> | ||
+ | |||
+ | </onlydft> | ||
<!-- =================================================================== --> | <!-- =================================================================== --> | ||
Line 449: | Line 480: | ||
::<source lang="python"> | ::<source lang="python"> | ||
+ | |||
# --------------------- stickFigure ----------------------- | # --------------------- stickFigure ----------------------- | ||
Line 538: | Line 570: | ||
# ---------------------- Snow Man ---------------------- | # ---------------------- Snow Man ---------------------- | ||
− | """ | + | _ = """ |
__ | __ | ||
_|==|_ | _|==|_ | ||
Line 546: | Line 578: | ||
`======' | `======' | ||
""" | """ | ||
− | def | + | def hat2(): |
print(" __" ) | print(" __" ) | ||
print(" _|==|_" ) | print(" _|==|_" ) | ||
− | def | + | def headRightArm2(): |
print( " ('')__/" ) | print( " ('')__/" ) | ||
− | def | + | def leftArm2(): |
print( ">--", end="" ) | print( ">--", end="" ) | ||
− | def | + | def body2(): |
print( "(`^^`)" ) | print( "(`^^`)" ) | ||
print(" (`^'^'`)" ) | print(" (`^'^'`)" ) | ||
− | def | + | def base2(): |
print( " `======'" ) | print( " `======'" ) | ||
print() | print() | ||
def snowMan(): | def snowMan(): | ||
− | + | hat2() | |
− | + | headRightArm2() | |
− | + | leftArm2() | |
− | + | body2() | |
− | + | base2() | |
− | |||
− | |||
− | |||
− | |||
Line 615: | 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 630: | 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 637: | 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>