我正在尝试创建所有小于或等于给定数字的质数的列表。我使用for循环成功做到了这一点。我试图使用python使用列表理解来实现相同的目的。但是我的输出有一些意外的值。
这是我的代码。
pr=[2]
pr+=[i for i in xrange(3,num+1) if not [x for x in pr if i%x==0]]
Run Code Online (Sandbox Code Playgroud)
num我从用户那里输入的号码在哪里?
上面代码的输出为
num=20 is this: [2, 3, 5, 7, 9, 11, 13, 15, 17, 19]
Run Code Online (Sandbox Code Playgroud)
我对为什么输出中有9和15感到困惑。我在这里做错了什么?
python ×1