Difference between revisions of "CSC111 Lab 5 2018"
(10 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 377: | Line 377: | ||
[[Image:QuestionMark9.jpg|right|120px]] | [[Image:QuestionMark9.jpg|right|120px]] | ||
<br /> | <br /> | ||
− | * Modify your solution program for | + | * Modify your solution program for the previous challenge so that the user can enter several names on one line when prompted by your program. Your program then "sings" happy birthday to all the friends, one after the other... |
<br /> | <br /> | ||
* Example: | * Example: | ||
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 13: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>