Estoy tratando de validar una entrada en Python que necesita tener diez dígitos y un número no negativo. Pensé que usaría un par de declaraciones try-catch para hacerlo, pero incluso cuando el resultado se ajusta a una excepción, la excepción no se activa
i = input("Please input a value: ")
try:
(len(str(i)) == 10) == True
except:
print("False")
try:
(float(i) > 0) == True
except:
print("False")
Espero que simplemente devuelva "Falso" cuando inserto algo como "123" o "-1029347365", pero no hay salida
4 respuestas
i = input()
if len(str(i)) == 10:
print("true")
else:
print("False")
if float(i) > 0:
print("true")
else:
print("False")
Lo suficientemente simple ... espero que ayude
Si desea aumentar las excepciones, puede optar por las respuestas anteriores 🙂
Intente ... excepto que solo funciona, cuando su código produce una excepción. En su caso, solo compara dos afirmaciones y el resultado puede ser Verdadero o Falso. Para que funcione, puede ponerlo en:
if (len(str(i)) == 10) == False :
raise
(para generar manualmente una excepción si su declaración es Falsa), o mejor use afirmar:
# assert <condition>,<error message>
assert (float(i) > 0) == True, "False"
Si está configurado para usar un try catch, que puede ser útil. Siempre puedes crear tus propias clases de excepción.
Lo que está buscando hacer se puede lograr con una simple declaración if como
if not (( len(str(i)) == 10) and (float(i) > 0)):
#do something
Pero supongo que podría tener una razón para usar Try catch. Aquí hay un enlace que puede ser útil para usted. https://www.programiz.com/python-programming/user-defined- excepción
Estoy de acuerdo con la respuesta anterior, esto hará el truco:
assert (((len(str(i)) == 10) == True) and ((float(i) > 0) == True)), "False"
Preguntas relacionadas
Preguntas vinculadas
Nuevas preguntas
python
Python es un lenguaje de programación multipropósito, de tipificación dinámica y de múltiples paradigmas. Está diseñado para ser rápido de aprender, comprender y usar, y hacer cumplir una sintaxis limpia y uniforme. Tenga en cuenta que Python 2 está oficialmente fuera de soporte a partir del 01-01-2020. Aún así, para preguntas de Python específicas de la versión, agregue la etiqueta [python-2.7] o [python-3.x]. Cuando utilice una variante de Python (por ejemplo, Jython, PyPy) o una biblioteca (por ejemplo, Pandas y NumPy), inclúyala en las etiquetas.