📔
intro-to-python
  • An Introduction to Programming in Python (for Business Students)
  • exercises
    • Data Flow Diagramming Exercise
    • Developer Collaboration Exercise
    • README
    • "Web App" Exercise
      • checkpoints
        • Checkpoint 5: Bootstrap Layout
        • Checkpoint 4: Submitting Data from Web Forms
        • Checkpoint 3: Rendering HTML Pages
        • Checkpoint 1: Routing
        • Checkpoint 2: Modular Organization
      • "Web App" Exercise - Further Exploration
    • hello-world
      • "Hello World (Local)" Exercise
      • "Hello World (Local w/ Version Control)" Exercise
      • "Hello World (Colab)" Exercise
    • "Interface Capabilities" Exercise
    • "Continuous Integration 1, 2, 3" Exercise
    • "Web Service" Exercise
      • "Web Service" Exercise - Further Exploration
    • "Testing 1, 2, 3" Exercise
    • "Command-line Computing" Exercise
      • "Command-line Computing" Exercise
      • Professor Rossetti's Mac Terminal Configuration
      • Command-line Computing Exercise
    • "Codebase Cleanup" Assignment
    • "List Comprehensions" Exercise
    • "Groceries" Exercise
      • Python Datatypes (a.k.a. "Groceries") Exercise
      • Python Datatypes (a.k.a. "Groceries") Exercise
    • "Rock, Paper, Scissors" Exercise
      • "Rock, Paper, Scissors" Exercise
    • README
    • "Monthly Sales Predictions" Exercise
    • Setting up your Local Development Environment
    • "Chart Gallery" Exercise
    • "Run the App" Exercise
    • "Web Requests" Exercise
    • "API Client" Exercise
    • "Custom Functions" Exercise
    • Process Diagramming Exercise
  • notes
    • python
      • packages
        • The bigquery Package
        • The PySimpleGUI Package
        • The dotenv Package
        • The matplotlib Package
        • The requests Package
        • The altair Package
        • The gspread Package
        • The PyMySQL Package
        • The psycopg2 Package
        • The selenium Package
        • The seaborn Package
        • The pytest Package
        • The SpeechRecognition Package
        • The flask Package
        • The pandas Package
        • The spotipy Package
        • The pipenv Package
        • The nltk Package
        • The sqlalchemy Package
        • The pymongo Package
        • The plotly Package
        • The BeautifulSoup Package
        • The sendgrid Package
        • The fpdf Package
        • The autopep8 Package
        • The tweepy Package
        • The twilio Package
        • The tkinter Package
      • Python Datatypes Overview
        • Numbers
        • Classes
        • Dates and Times
        • Strings
        • None
        • Dictionaries
        • Booleans
        • Lists
        • Class Inheritance
      • Control Flow
      • Python Modules
        • The webbrowser Module
        • The time Module
        • The csv Module
        • The sqlite3 Module
        • The itertools Module
        • The json Module
        • The math Module
        • The os Module
        • The statistics Module
        • The random Module
        • The pprint Module
        • The datetime Module
        • The collections Module
      • Printing and Logging
      • Comments
      • Syntax and Style
      • Functions
      • Variables
      • Errors
      • Docstrings
      • File Management
      • User Inputs
      • Debugging
    • clis
      • The git Utility
      • Heroku, and the heroku Utility
      • Anaconda
      • The chromedriver Utility
      • The brew Utility (Mac OS)
      • The pdftotext Utility
      • The python Utility
      • The pip Utility
    • Software
      • Software Licensing
      • Software Documentation
      • Software Ethics
      • Software Testing Overview
      • Application Programming Interfaces (APIs)
      • Software Version Control
      • Software Refactoring Overview
    • devtools
      • The VS Code Text Editor
      • Code Climate
      • Travis CI
      • GitHub Desktop Software
      • Git Bash
      • Google Colab
    • Information Systems
      • Computer Networks
      • Processes
      • Datastores
      • Information Security and Privacy
      • People
    • Technology Project Management
      • Project Management Tools and Techniques
      • The Systems Development Lifecycle (SDLC)
    • hardware
      • Servers
    • Environment Variables
  • projects
    • "Executive Dashboard" Project
      • testing
      • "Exec Dash" Further Exploration Challenges
    • The Self-Directed (a.k.a "Freestyle") Project
      • "Freestyle" Project - Demonstration
      • "Freestyle" Project - Implementation (TECH 2335 Version)
      • "Freestyle" Project - Implementation
      • "Freestyle" Project Proposal
      • plan
    • "Robo Advisor" Project
      • Robo Advisor Project - Automated Testing Challenges
      • "Robo Advisor" Further Exploration Challenges
    • "Shopping Cart" Project
      • "Shopping Cart" Project - Automated Testing Challenges
      • "Shopping Cart" Further Exploration Challenges
      • "Shopping Cart" Project Checkpoints
  • License
  • Exam Prep
  • units
    • Unit 4B: User Interfaces and Experiences (Bonus Material)
    • Unit 5b: Databases and Datastores
    • Module 1 Review
    • Unit 7b: Processing Data from the Internet (Bonus Material)
    • Unit 9: Software Products and Services
    • Unit 8: Software Maintenance and Quality Control
    • Unit 7: Processing Data from the Internet
    • Unit 6: Data Visualization
    • Unit 5: Processing CSV Data
    • Unit 4: User Interfaces and Experiences
    • Unit 3: Python Datatypes
    • Unit 12: Project Presentations
    • Unit 2: Python Language Overview
    • Unit 11: Project Implementation Sprint
    • Unit 1: The Python Development Environment
    • Unit 10: Software Planning, Analysis, and Design
    • Unit 0: Onboarding
    • Unit 5B: Advanced Data Analytics
  • Contributor's Guide
Powered by GitBook
On this page
  • Prerequisites
  • Learning Objectives
  • Setup
  • Basic Challenges
  • Temperature Converter
  • Gradebook
  • Further Exploration Challenges
  • User Inputs Temperature
  • User Inputs Grade
  • Importing Functions from Other Files

Was this helpful?

  1. exercises

"Custom Functions" Exercise

Previous"API Client" ExerciseNextProcess Diagramming Exercise

Last updated 4 years ago

Was this helpful?

CUSTOM FUNCTIONS EXERCISE...
--------------------
THE CELSIUS TEMP IS: 0 DEGREES
THE FAHRENHEIT EQUIVALENT IS: 32.0 DEGREES
--------------------
THE NUMERIC SCORE IS: 87.5
THE LETTER-GRADE EQUIVALENT IS: B+

Prerequisites

Learning Objectives

  1. Find practical applications for learning new programming concepts like functions and parameters.

Setup

To setup these exercises, create a new directory on your Desktop called "custom-functions", and navigate there from the command line:

cd ~/Desktop/custom-functions

Open the directory with your text editor, and use your text editor or the command-line to create a new file in it called "my_functions.py", then place the following contents inside:

# custom-functions/my_functions.py

# TODO: define temperature conversion function here

# TODO: define gradebook function here

if __name__ == "__main__":

    print("--------------------")
    print("CUSTOM FUNCTIONS EXERCISE...")

    #print("--------------------")
    #c = 0
    #print("THE CELSIUS TEMP IS:", c, "DEGREES")
    #f = celsius_to_fahrenheit(c)
    #print("THE FAHRENHEIT EQUIVALENT IS:", f, "DEGREES")

    #print("--------------------")
    #score = 87.5
    #print("THE NUMERIC SCORE IS:", score)
    #grade = numeric_to_letter_grade(score)
    #print("THE LETTER-GRADE EQUIVALENT IS:", grade)

Activate any virtual environment where you'll have access to the python command-line utility (the "base" Anaconda environment should be fine for this exercise).

From within the virtual environment, run the exercise script:

python my_functions.py

If you see your printed message, you're ready to tackle the basic challenges below.

Basic Challenges

Temperature Converter

Near the top of the script, define a custom function called celsius_to_fahrenheit(), the responsibility of which is to convert a Celsius temperature (e.g. 0) to a Fahrenheit temperature (e.g. 32). Inside the function's definition, use a mathematical formula to convert the temperature and return the resulting value.

Near the bottom of the script, uncomment the lines of code relating to this function, and run the program. The program should invoke your custom function to perform the example conversion and print the corresponding Fahrenheit temperature.

Gradebook

Near the top of the script, define a custom function called number_to_letter_grade(), the responsibility of which is to convert a numeric grade (e.g. 87.5) to a corresponding letter grade (e.g. B+). Inside the function's definition, use your own custom algorithm to convert the grade and return the resulting value.

Near the bottom of the script, uncomment the lines of code relating to this function, and run the program. The program should invoke your custom function to perform the example conversion and print the corresponding letter grade.

Further Exploration Challenges

User Inputs Temperature

The program should ask the user to input a Celsius temperature via the command-line, and pass that value into the custom function instead of the hard-coded 0.

User Inputs Grade

The program should ask the user to input a numeric grade via the command-line, and pass that value into the custom function instead of the hard-coded 87.5

Importing Functions from Other Files

Create another file in this exercise directory called "my_script.py" and place inside the following contents:

# custom-functions/my_script.py

from my_functions import celsius_to_fahrenheit

if __name__ == "__main__":

    f = celsius_to_fahrenheit(0)
    print("F TEMP IS:", f)

Run this script:

python my_functions.py

It should work, as long as you kept the if __name__ == "__main__" conditional in the "my_functions.py" file.

Nice job! You've demonstrated how to import a function from one file to be used in another. This is basically what happens when we import functions from built-in modules and third-party packages. It's just that the code we import from those modules and packages has been defined for us, whereas in this exercise we have defined our own custom functions.

HINT: use to capture user inputs

Functions
the input() function