Hola a todos,
El problema debe ser simple pero no soy capaz de avanzar.
Tengo una serie de variables que van tomando valores a lo largo del código. Al final, esas variables van a una sentencia SQL y necesito que los variables vacías devuelvan un 0 o un nulo.
La idea es colocar todas las variables en una lista y modificar su valor con un bucle for
Cuando ejecuto la sentencia SQL el resultado es
y esto da error. La sentencia correcta sería
Por algún motivo, aunque el cambio de valor se ve dentro del ciclo for, el nuevo valor no se transmite a la variable.
¿Qué puede ser?
Saludos
El problema debe ser simple pero no soy capaz de avanzar.
Tengo una serie de variables que van tomando valores a lo largo del código. Al final, esas variables van a una sentencia SQL y necesito que los variables vacías devuelvan un 0 o un nulo.
La idea es colocar todas las variables en una lista y modificar su valor con un bucle for
Código:
#declaro las variables
peso = ''
altura=''
edad=''
def validarNumero(variable): #convierte los valores vacíos en 0
if variable=='':
variable = float(0)
return variable
# peso = validarNumero(peso)
print (f' el peso es {peso}') # De manera individual, la variable peso
variablesAgrupadas = [peso, altura, edad]
for variable in variablesAgrupadas:
variable = validarNumero(variable)
print (f'La variable es {variable}') # aquí se ve que se realiza el cambio
print (f' la altura es {altura}')# altura no recibe el nuevo valor
# al final el código va a una sentencia SQL que podría ser....
sql = f' Insert into personas (peso, altura, edad) values ({peso}, {altura}, {edad})'
Cuando ejecuto la sentencia SQL el resultado es
Cita:INSERT INTO personas (peso, altura, edad) VALUES (,,)
y esto da error. La sentencia correcta sería
Cita:INSERT INTO personas (peso,altura, edad) VALUES (0.0,0.0,0.0)
o creo que tambien me valdría....
INSERT INTO personas (peso,altura, edad) VALUES (null, null, null)
Por algún motivo, aunque el cambio de valor se ve dentro del ciclo for, el nuevo valor no se transmite a la variable.
¿Qué puede ser?
Saludos