#!/usr/bin/python def lee_entero(): while True: entrada = raw_input("Escribe un numero entero: ") try: entrada = int(entrada) return entrada except ValueError: print "La entrada es incorrecta: escribe un numero entero"
$ python lee_entero.py Escribe un numero entero: hola La entrada es incorrecta: escribe un numero entero Escribe un numero entero: La entrada es incorrecta: escribe un numero entero Escribe un numero entero: 12.30 La entrada es incorrecta: escribe un numero entero Escribe un numero entero: 1000
#!/usr/bin/python # -*- coding:utf-8 -*- import sys import os def uso(mensaje, codigo = 1): print mensaje print "%s: directorio_origen directorio_destino" % sys.argv[0] sys.exit(codigo) if len(sys.argv) != 3: uso("Se requieren 2 argumentos, usted introdujo %d" % (len(sys.argv) - 1)) elif not os.path.isdir(sys.argv[1]): uso("Directorio de origen no válido") elif not os.path.isdir(sys.argv[2]): uso("Directorio destino no válido") origen, destino = sys.argv[1:3] print "El directorio origen es: ", origen print "El directorio destino es: ", destino
$ python uso.py Se requieren 2 argumentos, usted introdujo 0 uso.py: directorio_origen directorio_destino $ python uso.py Documentos Descargas El directorio origen es: Documentos El directorio destino es: Descargas $ python uso.py Descargas Se requieren 2 argumentos, usted introdujo 1 uso.py: directorio_origen directorio_destino $ python uso.py Descargas Documentos/ El directorio origen es: Descargas El directorio destino es: Documentos/ $ python uso.py Descargas Documentos etc Se requieren 2 argumentos, usted introdujo 3 uso.py: directorio_origen directorio_destino
>>> cadena_alfanumerica = "El valor es 1000" >>> cadena_alfanumerica.isalnum() False >>> cadena_alfanumerica = "awlpftawnju8mke4r5i9cfaw" >>> cadena_alfanumerica.isalnum() True
>>> cadena_alfabetica = "Hola mundo 1000" >>> cadena_alfabetica.isalpha() False >>> cadena_alfabetica = "Hola mundo" >>> cadena_alfabetica.isalpha() False >>> cadena_alfabetica = "Hola" >>> cadena_alfabetica.isalpha() True
>> cadena_numerica = "12345" >>> cadena_numerica.isdigit() True >>> cadena_numerica = "1 2 3 4 5" >>> cadena_numerica.isdigit() False >>> cadena_numerica = "1.2" >>> cadena_numerica.isdigit() False
>>> cadena_minusculas = "Hola mundo" >>> cadena_minusculas.islower() False >>> cadena_minusculas = "hola mundo" >>> cadena_minusculas.islower() True
>>> cadena_mayusculas = "Hola mundo" >>> cadena_mayusculas.isupper() False >>> cadena_mayusculas = "HOLA MUNDO" >>> cadena_mayusculas.isupper() True
>>> cadena_espacios = "hola mundo" >>> cadena_espacios.isspace() False >>> cadena_espacios = " " >>> cadena_espacios.isspace() True >>> cadena_espacios = " " >>> cadena_espacios.isspace() True
el primer programa de validación de entrada de usuario no funciona
Hola
¿Cuál es el error que te arroja?
la primera parte de entrada con input debe ir dentro del try
Ante todo, ¡muchas gracias por el aporte de quienes hacen la página y publican en ella!. En respuesta al comentario sobre que no funcionaba el primer código para la validación (validación de número entero), dejo a continuación el código con unas pequeñas modificaciones que probé y, al menos en mi caso, funcionó. Quizás a alguien le sirva.
raw_input fue reemplazado en python a partir de la versión 3.0, creo. El código que funcionaría en el primer caso, sería (es importante respetar las tabulaciones):
def lee_entero():
while True:
entrada = input(«Escribe un numero entero: «)
try:
entrada = int(entrada)
return entrada
except ValueError:
print («La entrada es incorrecta: escribe un numero entero»)
numero = lee_entero()
¡Hola!
Muchas gracias por tomarte el tiempo de revisarlo y hacer un aporte. Saludos.
muchas gracias , me a servido de mucho para mis estudios , son de gran ayuda:)
Hola Matias, me alaegra que te haya servido ¡Saludos!
Hola! estuve revisando el código y noté que no funciona por la Identación!
el try debe ir una identación adentro del While
Hola Isa!
Es cierto, es un problema de identación en el ejemplo de lee_entero, muchas gracias, ya lo corregí.
¡Saludos!