Foros del Web » Programando para Internet » Python »

[SOLUCIONADO] Cómo hacer esta comprobación en python

Estas en el tema de Cómo hacer esta comprobación en python en el foro de Python en Foros del Web. Hola: Decir que en python ando muy pez. El caso es que estoy pasando un programa de Qt/C++ a PyQt, y me encuentro con que ...
  #1 (permalink)  
Antiguo 06/08/2015, 03:45
 
Fecha de Ingreso: septiembre-2010
Mensajes: 494
Antigüedad: 14 años, 1 mes
Puntos: 10
Cómo hacer esta comprobación en python

Hola:

Decir que en python ando muy pez. El caso es que estoy pasando un programa de Qt/C++ a PyQt, y me encuentro con que tengo un conflicto en esta sentencia:

La pongo primero en C++:

Código C++:
Ver original
  1. if (lineEditS2->text().toFloat()<lineEditS1->text().toFloat() && !lineEditS1->text().isEmpty())

Lógicamente yo evalúo la primera parte :
Código C++:
Ver original
  1. lineEditS2->text().toFloat()<lineEditS1->text().toFloat()
y su resultado (true o false) lo concateno con el true/false de la segunda parte:
Código C++:
Ver original
  1. !lineEditS1->text().isEmpty()

Es decir, que mi sentencia es un true/false && true/false

Hago esta explicación tan innecesaria porque cuando traduzco a python, de esta forma:
Código Python:
Ver original
  1. if (float(self.ui.lineEditS1.text()) < float(self.ui.lineEditS2.text())) and self.ui.lineEditS2.text()

el intérprete se me queja de que no puede convertir string a float, por lo que deduzco que no hace lo que yo quiero (más bien al revés, yo no consigo que python evalúe la primera parte y luego la concatene con la segunda). Al menos esa es la interpretación de lo que pienso que está pasando.
He puesto entre paréntesis la primera parte por si acaso, pero nada. El error es:

ValueError: could not convert string to float:

Muchas gracias por adelantado.
__________________
Mi calculadora en Qt
  #2 (permalink)  
Antiguo 06/08/2015, 03:56
Avatar de 12trunks12  
Fecha de Ingreso: noviembre-2014
Mensajes: 41
Antigüedad: 10 años
Puntos: 1
Respuesta: Cómo hacer esta comprobación en python

Has revisado el valor que tiene la variable que quieres pasar a float? Normalmente ese error se da cuando están intentando pasar algo que no es un número a float.
  #3 (permalink)  
Antiguo 06/08/2015, 04:45
 
Fecha de Ingreso: septiembre-2010
Mensajes: 494
Antigüedad: 14 años, 1 mes
Puntos: 10
Respuesta: Cómo hacer esta comprobación en python

Hola 12trunks12:

Gracias por responder. Tu respuesta me ha dado la pista.

Al rellenar uno de los dos lineEdit y permanecer el otro todavía vacío, es cuando se queja de hacer la conversión a float. Vamos, que no hace una conversión a float de un campo vacío.

Lo he solucionado cambiando el orden de las comparaciones, de forma que primero evalúe si el campo está vacío, así, si está vacío, directamente se salta la segunda parte de la comparación

Código Python:
Ver original
  1. if self.ui.lineEditS2.text() and float(self.ui.lineEditS1.text()) > float(self.ui.lineEditS2.text()):

Saludos y gracias!
__________________
Mi calculadora en Qt

Etiquetas: sentencia
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:25.