Hola estoy hace bastante en este ejercicio y la verdad que ya no se como mas lo puedo corregir. Se me pide diseñar un programa que solicite la lectura de un texto que no contenga letras mayusculas. si el usuario teclea una letra mayuscula, el programa solicitara nuevamente la introduccion del texto cuantas veces sea preciso.
def funcion():
texto = raw_input("ESCRIBE EL TEXTO EN MINUSCULAS: ")
for f in texto:
while f.isupper():
texto = raw_input("ESCRIBE EL TEXTO EN MINUSCULAS: ")
funcion()
yo hice este codigo, pero el problema es q cuando corrigo el texto e ingreso las letras en minusculas correctamente, me vuelve a pedir ingresar el texto en minusculas...!
ya no se q mas hacer si alguien tiene la respuesta por favorr q me ayudeee...!!!!
Bueno, primer tienes que recorrer letra por letra, supongo que el que tienes es correcto,
sEstado = 0
sString = "holag"
for f in sString:
if( sString.islower() ):
sEstado = 1
break
print "Es una cadena minuscula.\n" if (sEstado) else "Es una cadena mayuscula.\n"
Mucha sgracias pero sigue sin cortar...!
no sería mejor hacer la comparación de todo el texto en ves de carácter por carácter?
def funcion():
while(1):
texto = raw_input("ESCRIBE EL TEXTO EN MINUSCULAS: ")
if texto.lower() == texto :
break
return texto
funcion()
Yo hago lo mismo en php para reemplazar eregi() deprecated.
Llego bastante tarde, pero por si otro usuario (como yo mismo) llega hasta aquí con el mismo problema contestaré:
Creo que la redacción de la pregunta es un poco confusa. Después de darle mil vueltas -y con mis escasos conocimientos en programación, pues estoy aprendiendo- creo que lo que pide el ejercicio es que, ante un texto tal, el usuario solo pueda escribirlo en minúsculas.
Lo más cercano que he conseguido es lo siguiente:
opcion="hola"
texto=""
print("Por favor, escriba el siguiente texto únicamente en minúsculas. ")
print("HOLA")
while((texto)!=(opcion)):
texto=input()
if((texto)!=(opcion)):
print("Por favor, escríbalo solo en minúsculas: ")
Sé que es una "trampa", pero realmente resuelve el problema planteado. Si alguien conoce alguna forma más elegante de solucionarlo, reavivo el tema para que nos lo cuente.
Un saludo.
Cita de: lalalpa en 26 Septiembre 2011, 03:20 AM
Hola estoy hace bastante en este ejercicio y la verdad que ya no se como mas lo puedo corregir. Se me pide diseñar un programa que solicite la lectura de un texto que no contenga letras mayusculas. si el usuario teclea una letra mayuscula, el programa solicitara nuevamente la introduccion del texto cuantas veces sea preciso.
def funcion():
texto = raw_input("ESCRIBE EL TEXTO EN MINUSCULAS: ")
for f in texto:
while f.isupper():
texto = raw_input("ESCRIBE EL TEXTO EN MINUSCULAS: ")
funcion()
yo hice este codigo, pero el problema es q cuando corrigo el texto e ingreso las letras en minusculas correctamente, me vuelve a pedir ingresar el texto en minusculas...!
ya no se q mas hacer si alguien tiene la respuesta por favorr q me ayudeee...!!!!
def funcion():
palabra = raw_input("Introduce la palabra>")
contador = 0
for letra in palabra:
if letra.isupper():
contador += 1
else:
contador = contador
if contador != 0:
funcion()
else:
print "No hay ninguna mayuscula, finalizado"
exit(0)
funcion()
Ahí tienes tu solución siguiendo la estructura de recursividad que estabas utilizando tú. Espero que te sirva :)
Un saludo :)
EDIT: La versión posteada por WHK es mucho mejor, menos condicionales siempre es bueno, pero siempre viene bien tener diversas opciones :)
Correcto. No sé por qué pero me estaba empeñando en establecer la igualdad como una negación, diciendo que que texto!=texto.upper Y no me funcionaba.
Muchas gracias Runex, seguiré estudiando.
Un saludo.
Cita de: Shell Root en 26 Septiembre 2011, 06:23 AM
Bueno, primer tienes que recorrer letra por letra, supongo que el que tienes es correcto,
sEstado = 0
sString = "holag"
for f in sString:
if( sString.islower() ):
sEstado = 1
break
print "Es una cadena minuscula.\n" if (sEstado) else "Es una cadena mayuscula.\n"
Para que recorrer cada letra ?:
print "Es cadena minuscula" if (raw_input("Texto en MINUSCULAS:").islower()) else "Es cadena mayuscula"
Saludos, Javier.
Porque dan tantas vueltas??? Con esto alcanza:
texto=str(raw_input('Introduzca un texto solamente escrito en minúsculas: '))
while texto.lower()!=texto:
texto=str(raw_input('Introduzca un texto solamente escrito en minúsculas: '))
print 'El programa ha finalizado'
Elektro H@cker: Usa el botón "insertar código".