'int' 对象不可订阅
'int' object is not subscribtable
我有以下 python 代码来获取第 n 个斐波那契数。我认为它应该工作。唯一的问题是,当我尝试在我的 linux 终端中 运行 它时,我收到一条错误消息,指出 'int' 对象不可订阅。我看不出错误是什么。我让她坐了将近一个小时来调试它。
import sys
def fibo(n):
x = 0
y = 1
for i in range(n):
x = x+y
y = y+x
results = x,y
if n%2==0:
print(results[int(n//2)][1])
else:
print(results[int(n//2)][2])
def main():
var = int(sys.argv[1])
print(fibo(var))
main()
该错误是由于您在打印答案时尝试下标 int 而导致的。试试这个:
import sys
def fibo(n):
x = 0
y = 1
results = []
for i in range(n):
x = x+y
y = y+x
results.append((x,y))
if n%2==0:
print(results[int(n//2)][0])
else:
print(results[int(n//2)][1])
def main():
var = int(sys.argv[1])
print(fibo(var))
main()
我有以下 python 代码来获取第 n 个斐波那契数。我认为它应该工作。唯一的问题是,当我尝试在我的 linux 终端中 运行 它时,我收到一条错误消息,指出 'int' 对象不可订阅。我看不出错误是什么。我让她坐了将近一个小时来调试它。
import sys
def fibo(n):
x = 0
y = 1
for i in range(n):
x = x+y
y = y+x
results = x,y
if n%2==0:
print(results[int(n//2)][1])
else:
print(results[int(n//2)][2])
def main():
var = int(sys.argv[1])
print(fibo(var))
main()
该错误是由于您在打印答案时尝试下标 int 而导致的。试试这个:
import sys
def fibo(n):
x = 0
y = 1
results = []
for i in range(n):
x = x+y
y = y+x
results.append((x,y))
if n%2==0:
print(results[int(n//2)][0])
else:
print(results[int(n//2)][1])
def main():
var = int(sys.argv[1])
print(fibo(var))
main()