如何在每次迭代python时将循环结果附加到数组中

时间:2017-08-06 06:14:25

标签: python arrays

我一直致力于此计划,任何形式的帮助将不胜感激。
计划找到两年之间的闰年并将它们添加到阵列中......

from array import array

x=int(input("Enter the year "))
print("the year you entered is",x)

while x<=2017:
    if x%4==0:
        print(x)
        n=array('i',[x])
        n.append(x)
        x=x+1
    else:
        x=x+1
print(n)

输出

enter the year 1992
the year you entered is 1992
1992
1996
2000
2004
2008
2012
2016
array('i', [2016, 2016])

2 个答案:

答案 0 :(得分:4)

问题在于,每次每年可被4整除时,您都会重新设置数组的值。您要做的是在循环外声明数组。

from array import array

x=int(input("enter the year from which you want to know the leap year from"))
print("the year you entered is",x)

n=array('i')
while x<=2017:
    if (x % 4 == 0 and x % 100 != 0) or x % 400 == 0:
        print(x)   
        n.append(x)
    x += 1  # we need to add 1 regardless, no need for else  
print(n)
# output: array('i', [1992, 1996, 2000, 2004, 2008, 2012, 2016])

答案 1 :(得分:2)

在循环外移动n的第一个赋值,并将while替换为for。像

这样的东西
n=array('i') # or you can use smthg like n=[]
for i in range(i,2018):
    if i%4==0:
        n.append(i)

除此之外,您还有错误的闰年测试。来自wiki:

  

每年可被4整除的是闰年,除了可以被100整除的年份,但如果它们可以被400整除,那么这些年份就是闰年。例如,1700年,1800年,和1900年不是闰年,但1600年和2000年是。Leap year