python - 主要功能没有运行?使困惑
问题描述
我正在尝试为一个类编写一个模块,但我的 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 个斐波那契数的最后一位。
解决方案
代替input = sys.stdin.read()
,使用内置input()
函数:
def main():
n = int(input('Enter an integer: '))
print(get_fib_last_digit_fast(n))
推荐阅读
- node.js - Express.js 如何安全地检索请求 IP?
- php - 使用中间表定义一对一关系以避免外键循环的雄辩方式
- javascript - 使用多个 OnEdit
- python - 无法捕获 InvalidFileException
- php - OpenCart 错误未捕获错误:类“Controllerextensiontotalaffiliate”
- java - java spring中的webapplication文件夹名称是否必须是webapp?
- java - 为什么当 Consumer 只接受一个参数时,forEach 方法接受调用具有多个参数的方法的 lambda?
- flutter - 从 Flutter 中的 API 获取数据后如何导航到新屏幕?
- ios - 现在如何在 RealmSwift 4.0 更新中使用枚举?
- python - 使用 BeautifulSoup 从网页中提取文本和图像