Skip to content

IPP-DEV-03-001: Declaring Functions #63

@labbenchstudios

Description

@labbenchstudios

Description

  • Using instructions from the in-class lecture, create a module that will contain one (and eventually more) function(s) to handle simple temperature conversions.

Review the README

  • Please see README.md for further information on, and use of, this content.
  • License for embedded documentation and source codes: IPP-DOC-LIC

Estimated effort may vary greatly

  • The estimated level of effort for this exercise shown in the 'Estimate' section below is a very rough approximation. The actual level of effort may vary greatly depending on your development and test environment, experience with the requisite technologies, and many other factors.

Actions

Step 1: Make Sure Your System is Setup for Python and This Course

Step 2: REMINDER: Make Sure PYTHONPATH is Set Correctly

Whether running Python tests within your IDE or from the command line, you must set the PYTHONPATH environment variable in every execution environment (e.g., every terminal you launch) when attempting to run any of your scripts and their tests or the IPP test app from the command line. The IPP source and test paths will be as follows:

  • {your IPP source code path}
  • {your IPP source code path}/tests

See IPP-DEV-01-001 for details.

Step 3: Create your own module to contain temperature conversion functions.

  • Using your IDE, or from within a terminal, create a new Python file - a module - named SimpleTempConversion.py within the labmodule03 path (or package)
  • Open the module, and implement the following test cases:

Step 4: Document your functions using the Docstring spec PEP-0257

  • You can comment your functions at any time, although I recommend you do so while you're developing the function - it's generally easier this way, as you'll remember what you did and why.
  • Use the Docstring conventions listed in PEP-257

Test 1 (create the function framework)

  • Create a multi-line comment at the beginning of the file:
"""
This module contains temperature conversion functions.

"""
  • Declare two variables - representing min indoor temp and max indoor temp.
    • Declare the min_indoor_temp_F variable as a float. Set the initial value to 65.0
    • Declare the max_indoor_temp_F variable as a float. Set the initial value to 85.0
  • Declare a function named isDesiredIndoorTempRange().
    • It will accept a float called temp and a bool called is_celsius.
    • It will return a bool.
  • The isDesiredIndoorTempRange() function will do the following:
    • It will compare the input float with min_indoor_temp_F and max_indoor_temp_F - if it's the same as either, or in between the two values, it will return True.
    • NOTE: We'll use the is_celsius bool in a later exercise.
  • Here's a partial example:
min_indoor_temp_F = 65.0
# implement the max setting yourself!

# partial implementation!
def isDesiredIndoorTempRange(temp, is_celsius):
    if temp >= min_indoor_temp_F and temp <= max_indoor_temp_F:
        print(f"Input temperature (F) is within desired indoor range: {temp}")
        return True

    print(f"Input temperature (F) is outside of desired indoor range: {temp}")
    return False

Test 2 (create a simple test case)

  • Test the isDesiredIndoorTempRange() function
isDesiredIndoorTempRange(70.0)
isDesiredIndoorTempRange(50.0)

Estimate

  • Medium

Tests

  • From within your IDE

    • Right click on your newly created module SimpleTempConversion.py and click your IDE's run icon
    • You should see output similar to that discussed in class
  • From the command line

    • Open a terminal and cd to your IPP_HOME path
    • Start your virtual environment (if not already running)
    • Be sure your PYTHONPATH is set correctly
    • Run the module
      • python ./labmodule03/SimpleTempConversion.py
    • You should see output similar to that discussed in class

Sample output (yours may differ slightly)


Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status

    Lab Module 03 - Functions & Flow

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions