偶数数字生成器在python中

时间:2018-04-16 09:40:49

标签: python python-3.x python-2.7

编写一个小代码来生成偶数。

Source source = new Source() { Minimum = 0, Maximum = 100, Value = 50 };
private void Form1_Load(object sender, EventArgs e)
{
    var p = toolStripProgressBar1.ProgressBar;
    p.DataBindings.Add(nameof(p.Maximum), source, nameof(source.Maximum));
    p.DataBindings.Add(nameof(p.Minimum), source, nameof(source.Minimum));
    p.DataBindings.Add(nameof(p.Value), source, nameof(source.Value));
}

输出是 - [(),(),(),(),(),(),()]

上面的代码是否可以生成偶数,如果有,那么修复是什么?

如何在上面的行中使用代码块代替if语句,我的目标是生成素数。

[范围内的x的范围(2,15),范围内的y(1,int(x / 2))if(x%y)!= 0 ............. .....]

5 个答案:

答案 0 :(得分:3)

在您的示例中,您正在添加'甚至'每次满足列表理解中的if语句时到列表。这就是为什么你得到一个空元组列表

[x for x in range(15) if x % 2 == 0]

将是正确的实践

答案 1 :(得分:3)

如果你需要生成器,它是在Python3的range函数中构建的:

range(0, 15, 2)

是一个不可变序列,包含低于15

的所有偶数整数

在Python 2中,range返回一个真实的列表,因此它可能符合您的要求。在任何情况下,您都可以使用理解来定义真正的生成器:

( x for x in range(0, 15, 2) )

答案 2 :(得分:2)

p = [q for q in range(0, 15) if not q%2]
print(p)

说明:

如果q是偶数,则q%2变为0。因此在not

之后添加了if

答案 3 :(得分:1)

even = [ x for x in range(15) if x%2 == 0]

只是列表理解

答案 4 :(得分:0)

以下是生成偶数的方法

filter(lambda x : x % 2, range(0, 15))