IIC2233 / Syllabus-2022-1

Repositorio oficial del curso IIC2233 Programación Avanzada 🚀✨
https://iic2233.ing.puc.cl/
45 stars 40 forks source link

Duda for loop a través de variables #247

Open MaxAl100 opened 2 years ago

MaxAl100 commented 2 years ago

Prerrequisitos

(Marcar colocando una X entre los corchetes los ítems que ya hiciste, así: "[X]")

Contenido

Primero que todo no estaba seguro si este tipo de issue es el correcto para este tipo de pregunta, pero decidí ir por este ya que no me parecía que calzaba muy bien con los otros.

Mi pregunta en sí es si existe una manera de ir cambiando la variable que está siendo leída/cambiada a través de un loop en este estilo:

for i in range(3):
    var + i = i*i

Si tuviera las variables var0, var1 y var2 la idea es que estas sean cambiadas, pero yo sólo sabría como hacerlo funcionar con un string, no con una variable. Si antes de correr la función de arriba var0 = 5, var1 = -1 y var2 = 0, después de este valdrían var0 = 0, var1 = 1, var2 = 4.

¿Es esto que explico posible de hacer en programación y/o python?

jtagle2 commented 2 years ago

Es posible, pero es una práctica extremadamente mala, peligrosa e innecesaria. Para tu caso, creo que sería más correcto utilizar un diccionario que tenga los valores de las variables, y acceder a estos como key. El ejemplo que tu dices, sería

diccionario = { "var0": 5, "var1": 1, "var2": 0 }
for i in range(3):
    diccionario[f"var{i}"] = i*i
Christian-Klempau commented 2 years ago

También, si tu loop debe ir cambiando bajo una condición, tal vez un while es más adecuado, ya que puedes detener el while cuando tu variable cumpla una condición, y en cada iteración modificar dicha variable.