{"record":{"id":"164873a922e21636","repo":"TheAlgorithms/Python","slug":"input-series-is-not-valid-valid-series-1-2-3","errorCode":null,"errorMessage":"Input series is not valid, valid series - [1, 2/3, 2]","messagePattern":"Input series is not valid, valid series - \\[1, 2/3, 2\\]","errorType":"exception","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"maths/series/harmonic.py","lineNumber":41,"sourceCode":"    >>> is_harmonic_series(4)\n    Traceback (most recent call last):\n        ...\n    ValueError: Input series is not valid, valid series - [1, 2/3, 2]\n    >>> is_harmonic_series([])\n    Traceback (most recent call last):\n        ...\n    ValueError: Input list must be a non empty list\n    >>> is_harmonic_series([0])\n    Traceback (most recent call last):\n        ...\n    ValueError: Input series cannot have 0 as an element\n    >>> is_harmonic_series([1,2,0,6])\n    Traceback (most recent call last):\n        ...\n    ValueError: Input series cannot have 0 as an element\n    \"\"\"\n    if not isinstance(series, list):\n        raise ValueError(\"Input series is not valid, valid series - [1, 2/3, 2]\")\n    if len(series) == 0:\n        raise ValueError(\"Input list must be a non empty list\")\n    if len(series) == 1 and series[0] != 0:\n        return True\n    rec_series = []\n    series_len = len(series)\n    for i in range(series_len):\n        if series[i] == 0:\n            raise ValueError(\"Input series cannot have 0 as an element\")\n        rec_series.append(1 / series[i])\n    common_diff = rec_series[1] - rec_series[0]\n    for index in range(2, series_len):\n        if rec_series[index] - rec_series[index - 1] != common_diff:\n            return False\n    return True\n\n\ndef harmonic_mean(series: list) -> float:","sourceCodeStart":23,"sourceCodeEnd":59,"githubUrl":"https://github.com/TheAlgorithms/Python/blob/f5988cc09713315817df6a7e327e258013a94440/maths/series/harmonic.py#L23-L59","documentation":"Raised by is_harmonic_series() in maths/series/harmonic.py when the argument is not a list instance. The function needs to index elements and build a reciprocal series, so it requires a genuine Python list. The message's example '[1, 2/3, 2]' merely illustrates a valid harmonic series, not the expected literal input.","triggerScenarios":"Calling is_harmonic_series(4), is_harmonic_series('series'), or passing a tuple/other sequence type. The isinstance(series, list) check is the first guard, so any non-list fails here regardless of contents.","commonSituations":"Dynamic typing mistakes where a scalar or string flows into a function expecting a list; passing tuples from other APIs; unpacking mistakes like passing a variable that was never converted to list.","solutions":["Convert to a list before calling: is_harmonic_series(list(series))","Verify the variable is a list at the call site with isinstance debugging","Trace where the value originates and fix the producer to build a list"],"exampleFix":"# before\nis_harmonic_series((1, 2, 3))  # tuple -> ValueError\n\n# after\nis_harmonic_series([1, 2, 3])  # -> True","handlingStrategy":"type-guard","validationCode":"if not isinstance(series, list):\n    raise TypeError(f'expected list, got {type(series).__name__}')\nis_harmonic_series(series)","typeGuard":"def is_series_list(value: object) -> bool:\n    return isinstance(value, list)","tryCatchPattern":null,"preventionTips":["Enforce list types in function signatures and validate at ingestion","Convert tuples with list() before passing","The message's '[1, 2/3, 2]' is an example, not required content"],"tags":["python","math","type-check","value-error"],"backgroundTag":null,"analyzedSha":"f5988cc09713315817df6a7e327e258013a94440","analyzedAt":"2026-08-14T17:30:07.041Z","schemaVersion":2},"datasetVersion":"2026-08-15T17:31:12.345Z"}