首页 > 解决方案 > 主要功能没有运行?使困惑

问题描述

我正在尝试为一个类编写一个模块,但我的 main() 函数不起作用我认为代码是正确的,但是当我输入一个数字时,它只是转到下一行,不会停止执行,只是允许我进一步输入数字,然后转到下一行 - 无限。

我进入了python的主要功能,但我仍然感到困惑。

# Uses python3
import sys

def get_fibonacci_last_digit_naive(n):
    if n <= 1:
        return n

    previous = 0
    current  = 1

    for _ in range(n - 1):
        previous, current = current, previous + current

    return current % 10
def fast_fibL(b):
    a = []
    a.append(0)
    a.append(1)
    n = 0
    if (b == 0):
        return 0

    if (b == 1):
        return 1

    for i in range(b):
        c = a[i] + a[i + 1]
        a.append(c)
        n += 1

    return(a[n])

def get_fib_last_digit_fast(e):
    b = fast_fibL(e)
    return b % 10

def main():
    input = sys.stdin.read()
    n = int(input)
    print(get_fib_last_digit_fast(n))

if __name__ == '__main__':
    main()

我希望代码返回输入的第 n 个斐波那契数的最后一位。

标签: pythonmainfibonacci

解决方案


代替input = sys.stdin.read(),使用内置input()函数

def main():
    n = int(input('Enter an integer: '))
    print(get_fib_last_digit_fast(n))

推荐阅读