您好,第一次在这个论坛上提问。

我有这个问题的麻烦。

编写一个函数doubles(),该函数将一个整数列表作为输入并输出列表中的整数,该整数恰好是列表中先前整数的两倍,每行一个。

因此,我最初尝试做的是编写一个使用索引遍历整数列表的代码

如:

integers = []

def doubles(integers):
    index = 0
    while index < len(integers):
        if index == (2*(index+1)):
            print(index)

doubles([3,0,1,2,3,6,2,4,5,6,5])


我认为我编写的代码就是这样。虽然索引小于整数列表的长度,但是如果索引等于下一个索引的两倍,它将打印出该数字。但是我似乎没有得到想要的结果。谢谢。

最佳答案

您正在做一些需要修复的事情。


您想查看列表integers中的项目,而不是这些项目的索引。您可以通过查看integers[n]来实现,其中n是索引。
您想与列表中的上一个值进行比较,而不是下一个,因此您应该将integers[index]integers[index-1]进行比较,而不是使用index + 1表示法
您应该遍历索引列表。在此示例中,您的while循环将永远不会终止。您可以执行while index < len(integers),然后每次将索引递增1,但是执行for循环更容易。


尝试这个:

def doubles(integers):
    index = 0
    for index in range(1,len(integers)):
        if integers[index] == 2*integers[index-1]:
            print(integers[index])

关于python - 函数Doubles()Python请求助手,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26242732/

10-11 01:02