#!/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.
La pizzería italiana Migliori Amici ofrece pizzas vegetarianas y no vegetarianas a sus clientes. Los ingredientes para cada tipo de pizza aparecen a continuación.
Ingredientes vegetarianos: Pimiento, yerbas y tofu.
Ingredientes no vegetarianos: Peperoni, Jamón y Salmón.
Codificar un programa que solicite al usuario si quiere una pizza vegetariana o no, y en función de su respuesta le muestre un menú con los ingredientes disponibles para que elija. Solo se puede elegir un ingrediente, además de la mozzarella y el tomate que están en todas las pizzas. Al final se debe mostrar por pantalla si la pizza elegida es vegetariana o no y todos los ingredientes que lleva.
Puedes ayudarme con este
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!
Buenísimo me sirvieron mucho las validaciones.
Hola Diego
Me alegra que te haya sido útil.
¡Saludos!
Hay algun método que valide que una cadena no contenga numeros, pero sin contar los acentos, ya que el isalpha() devuelve false si se le pasa un string con acentos.
Hola buenas, no entiendo el tema del alfanumerico, no se supone que deberia ser True en caso que contenga letras Y numeros? lo intenté y da true aunque solo haya letras (sin necesidad de que haya numeros)
Hola Federico
El método isalnum() devuelve True sí la cadena es alfanumerica, es decir si contiene letras o números, puede ser ambos tipos o solo uno de ellos.
Ejemplos de cadenas que devuelven true: «Hola», «Hola123», «123»
Ejemplos de cadenas que devuelven false: «Hola 123» (en este caso tiene un espacio), «Hola!» (en este caso tiene un caracter especial)
Espero esos ejemplos resuelvan tu duda.
¡Saludos!
hola hay una opcion que permita ingresar texto con espacio, el isalpha no me deja
¿Hola Miriam, puede ser que esto lo hayas escrito en Python 2.x no? Pregunto porque creo que expresiones como raw_input() o el print sin los () ya no corren en python 3.x. De todos, modos salvo esto creo que se puede extrapolar la explicación. Cordiales saludos desde Chaco Argentina.
Hola Samuel
Es correcto, todas las entradas de scripting en Python, están basadas en Python 2.x
¡Saludos!
Saludos
Bueno si sabemos que en caso de validar entradas de entero que sería este caso
Nun1 = None
Nun2 = None
While True:
Try:
Nun1 = int(input(«ingresé un
número»)
Break
Except:
print(«ingrese un número»)
Y hací con el otro input
Como pudiéramos hacer esto con cadenas o quizás que vallan vacío el input. Bueno si usar Len.
Quiero repetir en while hasta que el input sea llenado