Skip to main content

Functions for finding numbers using higher/lower

Project description

higher-lower

PyPI Changelog License

Functions for finding numbers using higher/lower

Installation

Install this library using pip:

$ pip install higher-lower

higher_lower(min_value, max_value, callback)

The higher_lower() function searches for a value between min_value and max_value, calling callback() for each candidate value to see if the target is higher or lower.

  • min_value - the lowest possible value
  • max_value - the highest possible value
  • callback(candidate) - a callback function that takes a single integer argument and returns ActualIs.MATCH, ActualIs.HIGHER or ActualIs.LOWER

For example:

from higher_lower import ActualIs

def callback(candidate):
    if candidate == 7:
        return ActualIs.MATCH
    elif candidate > 7:
        return ActualIs.LOWER
    else:
        return ActualIs.HIGHER

Given the above callback function, a search can be made for the number between 0 and 100 like so:

from higher_lower import higher_lower

number = higher_lower(0, 100, callback)
# number is now 7

Development

To contribute to this library, first checkout the code. Then create a new virtual environment:

cd higher-lower
python -mvenv venv
source venv/bin/activate

Or if you are using pipenv:

pipenv shell

Now install the dependencies and tests:

pip install -e '.[test]'

To run the tests:

pytest

Project details


Release history Release notifications | RSS feed

This version

0.1

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

higher-lower-0.1.tar.gz (2.5 kB view hashes)

Uploaded Source

Built Distribution

higher_lower-0.1-py3-none-any.whl (6.6 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page