L1 = [x for x in range ( 1 , 100 ) if not [y for y in range ( 2 ,x/2+1) if x % y == 0 ]]
print L1
刚开始学,这个有点看不懂,range我知道,关键就是那个 if not...这个地方不太懂。求详细讲解,讲的好的有加分!
我只知道如果这样 [x for x in range(1,11) if x%2 == 0]
返回的是1-10中所有可以整除2的数。
上面再嵌套,再来个if not就不懂了,期待详细解答
如果你觉得新手看了你的解释能理解的话请写下,否则就不用浪费您的时间了
这种判断素数的方法我理解,只是用Python这样写有点看不太明白。
你说: 后面的语句可以理解为:y取值(2,x/2+1),在这里面遍历。如果对任一个y有x % y == 0那么返回值为1,就被if not 否掉了。
可以理解成,内层的迭代返回的结果元组是全0的,前面的x就被输出,如果有一个元素是非0,就不输出?
yes。