this is pure python implementation of linear search algorithm for doctests run following command python3 m doctest v linearsearch py for manual testing run python3 linearsearch py a pure python implementation of a linear search algorithm param sequence a collection with comparable items as sorted items not required in linear search param target item value to search return index of found item or 1 if item is not found examples linearsearch0 5 7 10 15 0 0 linearsearch0 5 7 10 15 15 4 linearsearch0 5 7 10 15 5 1 linearsearch0 5 7 10 15 6 1 a pure python implementation of a recursive linear search algorithm param sequence a collection with comparable items as sorted items not required in linear search param low lower bound of the array param high higher bound of the array param target the element to be found return index of the key or 1 if key not found examples reclinearsearch0 30 500 100 700 0 4 0 0 reclinearsearch0 30 500 100 700 0 4 700 4 reclinearsearch0 30 500 100 700 0 4 30 1 reclinearsearch0 30 500 100 700 0 4 6 1 a pure python implementation of a linear search algorithm param sequence a collection with comparable items as sorted items not required in linear search param target item value to search return index of found item or 1 if item is not found examples linear_search 0 5 7 10 15 0 0 linear_search 0 5 7 10 15 15 4 linear_search 0 5 7 10 15 5 1 linear_search 0 5 7 10 15 6 1 a pure python implementation of a recursive linear search algorithm param sequence a collection with comparable items as sorted items not required in linear search param low lower bound of the array param high higher bound of the array param target the element to be found return index of the key or 1 if key not found examples rec_linear_search 0 30 500 100 700 0 4 0 0 rec_linear_search 0 30 500 100 700 0 4 700 4 rec_linear_search 0 30 500 100 700 0 4 30 1 rec_linear_search 0 30 500 100 700 0 4 6 1
def linear_search(sequence: list, target: int) -> int:
    
    for index, item in enumerate(sequence):
        if item == target:
            return index
    return -1


def rec_linear_search(sequence: list, low: int, high: int, target: int) -> int:
    
    if not (0 <= high < len(sequence) and 0 <= low < len(sequence)):
        raise Exception("Invalid upper or lower bound!")
    if high < low:
        return -1
    if sequence[low] == target:
        return low
    if sequence[high] == target:
        return high
    return rec_linear_search(sequence, low + 1, high - 1, target)


if __name__ == "__main__":
    user_input = input("Enter numbers separated by comma:\n").strip()
    sequence = [int(item.strip()) for item in user_input.split(",")]

    target = int(input("Enter a single number to be found in the list:\n").strip())
    result = linear_search(sequence, target)
    if result != -1:
        print(f"linear_search({sequence}, {target}) = {result}")
    else:
        print(f"{target} was not found in {sequence}")