Presentation is loading. Please wait.

Presentation is loading. Please wait.

More Functions CS303E: Elements of Computers and Programming.

Similar presentations


Presentation on theme: "More Functions CS303E: Elements of Computers and Programming."— 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 Statements grouped under a special name that are executed together Advantages Advantages –Code reuse Type once, use again and again! Type once, use again and again! Easier to maintain (update, fix mistakes) Easier to maintain (update, fix mistakes) –Code readability

4 Functions: Syntax Definition Syntax: def functionName(): statementstatement… 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, dear Elvis,’ print ‘Happy birthday to you!’ print ‘Happy birthday to you!’ main() # actually execute the main function

6 What’s Wrong with It? Repeated code Repeated code –1 st, 2 nd and 4 th 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,’ print ‘Happy birthday, dear Elvis,’ singHappy() singHappy() def singHappy(): print ‘Happy birthday, to you!’ 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: 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 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 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 wt=0earth()jupiter() print wt print wt def earth(): wt=45 print “Earth Weight:”, wt print “Earth Weight:”, wt def jupiter() wt=40 wt=40 wt=wt*2.364 wt=wt*2.364 print “Jupiter Weight:”, wt 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 Parameters are a way to pass information into a function –Allows greater re-use range() has parameters 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 Parameters are local to a function, so their scope is their function

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

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

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(): def singIt(person): singIt(“Elvis”) singHappy() singIt(“Elvis”) singHappy() print # blank line singHappy() print # blank line singHappy() singIt(“Nancy”) print ‘Happy birthday, dear’, \ singIt(“Nancy”) print ‘Happy birthday, dear’, \ person + ‘,’ person + ‘,’ singHappy() singHappy() def singHappy(): print ‘Happy birthday to you!’ print ‘Happy birthday to you!’ main() # execute main

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

17 Question: Functions with Parameters Consider this snippet of code: … x=25 x=25 printNum(25) printNum(25) … def printNum(num): print 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() abs() int() int() range() range() input() input() raw_input() raw_input() round() round() type() type() If you import math: math.sqrt() math.sqrt() math.ceil() math.ceil() math.floor() math.floor() math.factorial() math.factorial() math.log() math.log() math.pow() math.pow() math.sum() math.sum()

19 Exercise Write a function make10 that, given two ints a 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 Exam is NEXT WEEK Review Monday 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 Assignment 5 released today, due THURSDAY 3/1 –But doing it before the exam will help you!


Download ppt "More Functions CS303E: Elements of Computers and Programming."

Similar presentations


Ads by Google