Autor
|
Tema: Problema con sentencias if (python) (Leído 1,745 veces)
|
SlayerBur
Desconectado
Mensajes: 90
|
Buenas tardes.
Pasa que tengo un error siempre en las sentencias if, y no se que hago mal en la escritura.. (En el 90% de los if me pasa lo mismo).
El problema es que cuando hago la sentencia, no importa el resultado, siempre me salta al else, ignorando la primera parte.
Un ejemplo de lo que estoy haciendo ahora mismo:
cursorObj2.execute('select material from locker where material = "' + resultado[0] + '"') result = cursorObj2.fetchone()
if result == 'Nonetype': print('El dato no existe') else: print('El dato existe')
(Estoy haciendo un pequeño programa que me permita saber que tengo guardados en mi trabajo) Lo que quiero hacer, es que si no existe el material, muestre X texto, y si existe, muestre otro (Dentro de cada uno luego pondré que haga otras cosas como agregarlo si no existe), pero sin importar si coloco un material que existe, o que no existe, siempre me da: El dato existe. (Cambie el Nonetype por None, incluso intente poner una palabra en especifica, pero de la misma manera siempre me regresa El dato existe. También intente usar el !=, dejando el else como El dato no existe, y de todas formas siempre salta al else
espero que se entienda mi problema/duda
|
|
|
En línea
|
|
|
|
Danielㅤ
Conectado
Mensajes: 1.422
🔵🔵🔵🔵🔵🔵🔵🔵🔵
|
Hola, en Python el tipo de valor nulo/null es None sin comillas: if (result == None): print("El valor es nulo")
Un consejo, cuando uses el condicional if utiliza siempre paréntesis. Saludos
|
|
« Última modificación: 24 Abril 2021, 23:36 pm por [D]aniel »
|
En línea
|
|
|
|
Panic0
Desconectado
Mensajes: 218
|
Buenas tardes.
Pasa que tengo un error siempre en las sentencias if, y no se que hago mal en la escritura.. (En el 90% de los if me pasa lo mismo).
El problema es que cuando hago la sentencia, no importa el resultado, siempre me salta al else, ignorando la primera parte.
Un ejemplo de lo que estoy haciendo ahora mismo:
cursorObj2.execute('select material from locker where material = "' + resultado[0] + '"') result = cursorObj2.fetchone()
if result == 'Nonetype': print('El dato no existe') else: print('El dato existe')
(Estoy haciendo un pequeño programa que me permita saber que tengo guardados en mi trabajo) Lo que quiero hacer, es que si no existe el material, muestre X texto, y si existe, muestre otro (Dentro de cada uno luego pondré que haga otras cosas como agregarlo si no existe), pero sin importar si coloco un material que existe, o que no existe, siempre me da: El dato existe. (Cambie el Nonetype por None, incluso intente poner una palabra en especifica, pero de la misma manera siempre me regresa El dato existe. También intente usar el !=, dejando el else como El dato no existe, y de todas formas siempre salta al else
espero que se entienda mi problema/duda
Buenas, el problema esta en el "NoneType", el tipo de valor es None ej: cursorObj2.execute('select material from locker where material = "' + resultado[0] + '"') result = cursorObj2.fetchone() if (result == None): print("Sin resultado") else: print("Resultado")
O también podes hacer cursorObj2.execute('select material from locker where material = "' + resultado[0] + '"') result = cursorObj2.fetchone()
if (result): print("El resultado es....") else: print("Sin resultado")
|
|
|
En línea
|
Los ataques de pánico suelen comenzar de forma súbita, sin advertencia.
|
|
|
SlayerBur
Desconectado
Mensajes: 90
|
Muchas gracias a ambos, probé ambos métodos y los dos funcionaron. comenzaré a utilizar los paréntesis en los if, a lo mejor algunos if no funcionan por eso. Gracias de nuevo 
|
|
|
En línea
|
|
|
|
tincopasan
Desconectado
Mensajes: 1.287
No es lo mismo conocer el camino que recorrerlo.
|
Me gustaría saber de donde sacan que los paréntesis en los if son recomendables o necesarios
|
|
|
En línea
|
|
|
|
WHK
|
Me gustaría saber de donde sacan que los paréntesis en los if son recomendables o necesarios
Los if sin parentesis son legacy de python2, con parentesis son recomendaciones de python3, a demás es cuestión de orden, por ejemplo, no es lo mismo decir: if not a is defined and a in b or c == d: A decir: if ((a is defined) and ((a in b) or (c == d))): Cuando utilizas una sola condicional no hay problema pero cuando necesitas escalar e integrar mas condicionales se hace ilegible y hasta propenso a errores.
|
|
|
En línea
|
|
|
|
|
|