1 / 20

More Functions

More Functions. CS303E: Elements of Computers and Programming. Any fool can write code that a computer can understand. Good programmers write code that humans can understand. - M. Fowler, "Refactoring: Improving the Design of Existing Code". Functions: Review.

baka
Télécharger la présentation

More Functions

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. More Functions CS303E: Elements of Computers and Programming

  2. Any fool can write code that a computer can understand. Good programmers write code that humans can understand. - M. Fowler, "Refactoring: Improving the Design of Existing Code"

  3. Functions:Review • Statements grouped under a special name that are executed together • Advantages • Code reuse • Type once, use again and again! • Easier to maintain (update, fix mistakes) • Code readability

  4. Functions:Syntax Definition Syntax: def functionName(): statement statement … Call Syntax: functionName()

  5. Functions: Examples Write a program that prints the happy birthday song. def main(): # give a name to statements print ‘Happy birthday to you!’ print ‘Happy birthday to you!’ print ‘Happy birthday, dear Elvis,’ print ‘Happy birthday to you!’ main() # actually execute the main function

  6. What’s Wrong with It? • Repeated code • 1st, 2nd and 4th lines are identical. • Let’s write a function that prints that repeated line

  7. Revised Happy Birthday Song def main(): singHappy() singHappy() print ‘Happy birthday, dear Elvis,’ singHappy() defsingHappy(): print ‘Happy birthday, to you!’ main() # execute main function

  8. Function Variables: Scope • A variable’s scope is that part of the program where it may be accessed: • After its definition (initialization) • Local variables are those that are created inside a function • All the variables we have created so far have been local to main() • A local variable’s scope is the function where it was created • Cannot be accessed by another function

  9. Variable Scope:Example def main(): wt=0 earth() jupiter() print wt def earth(): wt=45 print “Earth Weight:”, wt def jupiter() wt=40 wt=wt*2.364 print “Jupiter Weight:”, wt

  10. Question:Variable Scope Variable x is defined in main(). Where can it be accessed? A. In main() before its definition B. In main()after its definition C. In main() and every other function in the file D. Everywhere

  11. Functions with Parameters • Parameters are a way to pass information into a function • Allows greater re-use • range() has parameters • The value(s) that tell it what sequence to generate • Parameters are local to a function, so their scope is their function

  12. Functions with Parameters: Syntax def functionName(param1, param2): statement statement … Function parameters: how information is given to the function These may be empty

  13. Functions with Parameters: Syntax Recall: def functionName(param1, param2): To call that function: functionName(arg1, arg2) When a function is called: param1=arg1 param2=arg2 statements in the body are executed

  14. Functions with Parameters: Examples Sing happy birthday to anyone, rather than just Elvis. Solution: Write a function that uses a parameter to produce the third line of the song.

  15. Happy Birthday, take 3 def main(): defsingIt(person): singIt(“Elvis”) singHappy() print # blank line singHappy() singIt(“Nancy”) print ‘Happy birthday, dear’, \ person + ‘,’ singHappy() defsingHappy(): print ‘Happy birthday to you!’ main() # execute main

  16. Happy birthday: Output Happy birthday to you! Happy birthday to you! Happy birthday dear Elvis, Happy birthday to you! Happy birthday to you! Happy birthday to you! Happy birthday dear Nancy, Happy birthday to you!

  17. Question:Functions with Parameters Consider this snippet of code: … x=25 printNum(25) … def printNum(num): print num When printNum is executed from this snippet, what is the output? (Assume printNum() is defined correctly) A. -1 B. 0 C. 25 D. No value

  18. Aside:Available Functions • abs() • int() • range() • input() • raw_input() • round() • type() If you import math: • math.sqrt() • math.ceil() • math.floor() • math.factorial() • math.log() • math.pow() • math.sum()

  19. Exercise Write a function make10 that, given two intsa and b, prints True if one of them is 10 or if their sum is 10. Write a main() function that uses a for loop to call make10 for the values of a from 1 to 10. b has the value 5 for each call.

  20. Reminders • Exam is NEXT WEEK • Review Monday • Come prepared to ask questions (or send me email!) • Sample Exam posted today (solns Monday) • Assignment 5 released today, due THURSDAY 3/1 • But doing it before the exam will help you!

More Related