如何打印此范围内的奇数,即使递增2也会得到所有数字?

时间:2018-12-27 07:11:22

标签: python

我的代码没有给出期望的结果,我想将1到10的奇数一一添加到此列表中,但它会将它们全部相加。

    l=[]
    for i in range(1,10):
        l.append(i)
        i=i+2
    print(l)

我想在列表中存储1,3,5,7,9。

3 个答案:

答案 0 :(得分:2)

不能在for循环体内动态更改python中的迭代器。修改当前值不会影响迭代中接下来显示的内容。

因此,如果要打印奇数,则应使用内置的步长参数

l=[]
for i in range(1, 10, 2):
    l.append(i)
print(l)

在这里,我们使用步长2将每次迭代后的可迭代次数增加2。

答案 1 :(得分:0)

您还可以如下使用内联for循环

l = [i for i in range(1, 10) if i%2==1]
print(l)
# [1, 3, 5, 7, 9]

或将step参数用作范围函数

l = [i for i in range(1, 10,2)]
print(l)
# [1, 3, 5, 7, 9]

答案 2 :(得分:0)

在python中,实现所需目标的最简单方法是:

l = list(range(1, 10, 2))
print(l)

对于您的代码,最简单的解决方法是仅添加step-size参数

    l=[]
for i in range(1,10,2):
    l.append(i)
    i=i+2
print(l)