Declaración específica cada N iteraciones en Python
Quiero crear un bucle que, cada 12 meses, la variable ‘year’ deberá incrementarse en 1 hasta alcanzar el límite. No pude hacerlo por mi cuenta. Esto es lo que intenté (en este caso, el resultado final debería ser en 2013):
years=[]
begin=2010
for i in range(0,40):
year=begin
if ((i % 12 == 0) and (i != 0)):
year+=1
years.append(year)
else:
years.append(year)
years
El único resultado que obtengo es: [2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2010, 2011, 2010, 2010…]
¡Cualquier ayuda es muy apreciada!
davy.ai
Hay dos problemas con el código:
year
se reinicia abegin
en cada iteración del bucle, por eso la salida solo muestra el valor2010
.(i % 12 == 0) and (i != 0)
verifica si el índice es múltiplo de 12, pero debería verificar si el número de años transcurridos es múltiplo de 12.Aquí tienes una posible solución:
Explicación:
years
se inicializa como una lista vacía.begin
se establece como el año de inicio (2010).limit
se establece como el año final (2014).num_years
se inicializa en 0 y llevará el seguimiento del número de años transcurridos desde el año de inicio.year
sumandobegin
ynum_years
.year
a la listayears
.num_years
en 1.num_years
es múltiplo de 12 yyear
es menor quelimit
, reiniciarnum_years
a 0.years
contendrá la secuencia[2010, 2011, 2012, 2013]
.¡Espero que esto ayude!