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列表理解(Euler项目5)_Python_List - Fatal编程技术网

Python列表理解(Euler项目5)

Python列表理解(Euler项目5),python,list,Python,List,我能得到一些关于为什么这个程序打印10的提示吗?它应该打印出来。。2520 我花了这么多时间在这个问题上,我想我真的不理解列表的理解,它是如何工作的,它返回了什么 我希望如果任何一个除法产生一个浮点数,if语句将产生false 我需要使用铸造吗 我是否在该范围内(1010000,10)给出了一个10,20,30,40,…,10000的列表?尝试将其更改为以下内容: x = False divisors = [2,3,4,5,6,7,8,9,10] for i in range (10,10000

我能得到一些关于为什么这个程序打印10的提示吗?它应该打印出来。。2520

我花了这么多时间在这个问题上,我想我真的不理解列表的理解,它是如何工作的,它返回了什么

我希望如果任何一个除法产生一个浮点数,if语句将产生false

我需要使用铸造吗


我是否在该范围内(1010000,10)给出了一个10,20,30,40,…,10000的列表?

尝试将其更改为以下内容:

x = False
divisors = [2,3,4,5,6,7,8,9,10]
for i in range (10,10000,10):
    if [x for x in divisors if i % x == 0]:
        print(i)
        break
当前版本中的列表理解始终包含最后3个值,因为10的每一个倍数都可以被2、5和10整除。非空列表在布尔上下文中计算为true,因此您将在第一次迭代时输入if块


内置函数
all()
仅当每个元素都为True(或在布尔上下文中计算为True)时才接受iterable并返回
True
。因此,它非常适合于确定
i
是否可以被
除数中的所有值均匀整除,让我们分解它。首先,

divisors = [2,3,4,5,6,7,8,9,10]
for i in range (10,10000,10):
    if all(i % x == 0 for x in divisors):
         print(i)
         break
除了把你的代码弄得乱七八糟之外什么都不做。不要用那个。下一步:

x = False
在不查看项目的情况下,请注意range()生成的所有值都小于stop值,因此将以9990结束。如果这是你想要的,好吧——只是要意识到这一点

最后:

for i in range (10,10000,10):

这句话的意思是“创建一个列表,列出所有在
除数中平均分成i的数字”,然后“如果我刚刚创建的列表不是空的,那么……”。所以当
i==10
时,该列表的计算结果为
[2,5,10]
。这不是一个空列表,因此它的计算结果为
True
,并且
if
块运行。

非常感谢,这确实有效,打印了2520和所有内容。是的,我不知道如何在if计算中应用和逻辑,我想我需要一本关于Python的最新书籍。谢谢你的指点。在编程中有一百万个这样的例子,现在它们对我来说都是空白,所以我能学到的每一个都是巨大的帮助。非常感谢。嘿,我怎样才能做一个没有最大界限的for循环呢?用最大整数值的函数替换10000。你可以使用,
for i in count(10,10)
会给你一个从
10开始的循环,步骤是
10
,它将无限期地运行(或者在中断、返回或引发异常之前)。宾果。在我看来效果更好,而且似乎对收敛时间没有影响,所以很好。
    if [x for x in divisors if i % x == 0]: