Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:将列表从起点打印到定义的范围_Python_List_Printing_Tuples_Fibonacci - Fatal编程技术网

Python:将列表从起点打印到定义的范围

Python:将列表从起点打印到定义的范围,python,list,printing,tuples,fibonacci,Python,List,Printing,Tuples,Fibonacci,这是我的密码;我知道这很糟糕,但如果是这样的话,我只是在学习基本知识。我的问题是在最后打印一份清单。你看,我试过很多方法,但它总是告诉我“list”对象不可调用,或者是意外的类型:Tuple。。。现在,tuple对我来说没有任何意义,因为我们在课堂上还没有达到这一点,但我不想要tuple。我想打印一个列表,从指定的点f开始,范围为f2。但我就是不明白。 我做错了什么 def main(): f = int(input("Starting Place in Code: ")) me

这是我的密码;我知道这很糟糕,但如果是这样的话,我只是在学习基本知识。我的问题是在最后打印一份清单。你看,我试过很多方法,但它总是告诉我“list”对象不可调用,或者是意外的类型:Tuple。。。现在,tuple对我来说没有任何意义,因为我们在课堂上还没有达到这一点,但我不想要tuple。我想打印一个列表,从指定的点f开始,范围为f2。但我就是不明白。 我做错了什么

def main():
    f = int(input("Starting Place in Code: "))
    message = input("simple message: ")
    f2 = len(message)
    messageList = []
    fibonacciNumbers = [0, 1]
    messageNumList = []
    f3 = fibonacciNumbers[f: f+f2]

    for let in message:
        messageList.append(let)

    for let in messageList:
        messageNumList.append(ord(let))

    for i in range(2, 700):
        fibonacciNumbers.append(fibonacciNumbers[i - 1] + fibonacciNumbers[i - 2])

    #print(fibonacciNumbers)
    print(f3)
    print(f2)
    print(messageList)
    print(messageNumList)
main()

Starting Place in Code: 5
simple message: fish
[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, ...]
[5, 8, 13, 21, 34, 55]
4
['f', 'i', 's', 'h']
[102, 105, 115, 104]

Process finished with exit code 0

正如我认为你们已经确定的,问题在于斐波那契数[f,f2]。因此,有两部分:

1对列表进行切片的正确语法是什么?将索引分隔为:,而不是,。因此fibonacciNumbers[f:f2]注意,切片中的最后一个索引将是f2-1,因此您可能需要fibonacciNumbers[f:f2+1]。编辑:为了清楚起见,l[i:j]意味着给我列表l的元素i,i+1,…,j-1,而不是从索引i开始给我j个元素

2错误是什么意思?元组类似于列表,但修复了不能更改或添加元素的问题:1,2,3是元组,[1,2,3]是列表。有时括号是不必要的。当您编写fibonacciNumbers[f,f2]时,Python将其解释为给我列表中的元素,其索引是元组f,f2,这没有意义,因此出现了异常。您可以通过尝试访问列表中的元素来查看变化


我猜当您编写fibonacciNumbersf,f2之类的东西时,就发生了“list”对象不可调用的情况。使用括号,您正在调用一个名为fibonacciNumbers的函数,但它是一个列表而不是函数,因此不可调用。

您是根据列表中的值范围或顺序打印的?我相信我发现了问题:f是fib中的起始位置。序列,但我插入了一个f2字符太少的单词,所以它试图打印到起始点之前的某个点。这当然不行。我希望它从它指示的点继续,由f2指示的步数。等等:我明白了!只需在F2中添加f,感谢您的更正;他们创造了奇迹!然而,现在,当我为输入赋值5或2以上的任何值时,它会将打印列表留空。