davecom/ClassicComputerScienceProblemsInPython

Rename fib5.py variable 'next' which is builtin

gidven opened this issue · 1 comments

fib5.py in Chapter 1 uses the variable name "next", which is a builtin name and is best avoided in Python. Although less readable, I suggest renaming the variables to something like this:

def fib5(n: int) -> int:
    if n == 0: return n  # special case
    lst: int = 0  # initially set to fib(0)
    next: int = 1  # initially set to fib(1)
    for _ in range(1, n):
        lst, nxt = nxt, lst + nxt
    return nxt

Thanks for bringing this to my attention. I regret the shadowing of the next() function here. Since the print edition has already been finalized, and it's not harmful for this toy example, we will be leaving it as-is, so as to keep all versions of the text in sync.