CS170: Programming for the World Around Us - Functions with Python
Activity Goals
The goals of this activity are:- To be able to call methods in various configurations (parameters, return values)
- To use functions with return values
Supplemental Reading
Feel free to visit these resources for supplemental background reading material.The Activity
Directions
Consider the activity models and answer the questions provided. First reflect on these questions on your own briefly, before discussing and comparing your thoughts with your group. Appoint one member of your group to discuss your findings with the class, and the rest of the group should help that member prepare their response. Answer each question individually from the activity, and compare with your group to prepare for our whole-class discussion. After class, think about the questions in the reflective prompt and respond to those individually in your notebook. Report out on areas of disagreement or items for which you and your group identified alternative approaches. Write down and report out questions you encountered along the way for group discussion.Model 1: Writing and Invoking Functions to Re-Use Code Logic
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | import math # Return the area of a circle, given its radius # param radius: the radius of the circle # Precondition: radius >= 0 # return: the area of the circle in square units of the radius def circleArea(radius): area = math.pi * (radius * * 2 ) return area def triangleArea(base, height): area = (base * height) / 2 return area def main(): r = 10 area = circleArea(r) print ( "The area of the circle is {0:.,2f}" . format (area)) if __name__ = = "__main__" : main() |
Questions
- Try running the sample program above.
- What does
return
mean in thecircleArea
function above? - Notice that functions have data types before their function names, just like variables do. What is the return type of
circleArea()
? - Modify the program to write an additional function circleDiameter() that computes the diameter (
) given the radius of the circle. Call that function from main() and print the value. - Modify the program to write and call
triangleArea()
frommain()
and then print the area of a triangle whose dimensions you choose. - Write an if statement to tell if room temperature is between 70 and 74 degrees (you can print out a message saying whether or not it is in this range). Then, migrate this to a function that accepts the temperature as a parameter, and call this function at least twice from
main()
. Next, add a second parameter to this function to represent the humidity, and display a separate message indicating whether it is within a range of 30 and 50 percent. Finally, modify your function to return aboolean
if both conditions are met. How might you use this logic to control a thermostat device? - Write comments for the
triangleArea()
function similar to thecircleArea
function.
Reflective Journal Prompt
- Notice the comments above the
circleArea
function. What do you think a precondition means? - Write comments for the
triangleArea
function in a similar spirit to those of thecircleArea
function.