elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Problema con sentencias if (python)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema con sentencias if (python)  (Leído 310 veces)
SlayerBur

Desconectado Desconectado

Mensajes: 56



Ver Perfil
Problema con sentencias if (python)
« en: 24 Abril 2021, 19:57 pm »

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

[D]aniel


Conectado Conectado

Mensajes: 520



Ver Perfil
Re: Problema con sentencias if (python)
« Respuesta #1 en: 24 Abril 2021, 23:34 pm »

Hola, en Python el tipo de valor nulo/null es None sin comillas:

Código
  1.    if (result == None):
  2.        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 Desconectado

Mensajes: 111


"Un programador no muere,solo sube a la nube"


Ver Perfil
Re: Problema con sentencias if (python)
« Respuesta #2 en: 24 Abril 2021, 23:51 pm »

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:
Código:
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
Código:
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

SlayerBur

Desconectado Desconectado

Mensajes: 56



Ver Perfil
Re: Problema con sentencias if (python)
« Respuesta #3 en: 25 Abril 2021, 00:03 am »

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  ;D
En línea

tincopasan


Desconectado Desconectado

Mensajes: 1.273

No es lo mismo conocer el camino que recorrerlo.


Ver Perfil
Re: Problema con sentencias if (python)
« Respuesta #4 en: 25 Abril 2021, 02:53 am »

Me gustaría saber de donde sacan que los paréntesis en los if son recomendables o necesarios
En línea

WHK
CoAdmin
***
Desconectado Desconectado

Mensajes: 6.442


The Hacktivism is not a crime


Ver Perfil WWW
Re: Problema con sentencias if (python)
« Respuesta #5 en: 25 Abril 2021, 03:02 am »

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:

Código:
if not a is defined and a in b or c == d:

A decir:

Código:
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

Telegram: @WHK102 - Semáforo Epidemiologico Chile
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Python + QT4] Problema con barra de navegador hecho con python y QT4
Scripting
darkweb64 3 1,828 Último mensaje 18 Mayo 2015, 17:23 pm
por darkweb64
[Python 3]Problema con excepciones en Python
Scripting
n1sen 2 2,261 Último mensaje 18 Diciembre 2017, 17:51 pm
por JoseluCross
Sentencias SQL
Bases de Datos
alvaro1975 1 419 Último mensaje 14 Diciembre 2018, 17:10 pm
por Carloswaldo
Sentencias condicionales
Programación C/C++
Twister 3 531 Último mensaje 23 Abril 2020, 09:17 am
por engel lex
Unir dos sentencias SQL
Bases de Datos
rubcr 2 467 Último mensaje 29 Abril 2020, 14:11 pm
por rubcr
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines