Texto sin mayuslculas en python

Iniciado por lalalpa, 26 Septiembre 2011, 03:20 AM

0 Miembros y 1 Visitante están viendo este tema.

lalalpa

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.

Código (python) [Seleccionar]
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...!!!!

Shell Root

#1
Bueno, primer tienes que recorrer letra por letra, supongo que el que tienes es correcto,
Código (python) [Seleccionar]
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"
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

lalalpa

Mucha sgracias pero sigue sin cortar...!

WHK

no sería mejor hacer la comparación de todo el texto en ves de carácter por carácter?

Código (python) [Seleccionar]
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.

gloaysa

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.

Runex

#5
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.

Código (python) [Seleccionar]
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...!!!!

Código (python) [Seleccionar]

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 :)
"No renunciaría al bambú.
Nunca renuciaría a ti.
No te compares con otros" "El me dijo:
El bambú tenía un propósito diferente al del
helecho, sin embargo eran necesarios y
hacían del bosque un lugar hermoso".

gloaysa

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.

0x5d

#7
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,
Código (python) [Seleccionar]
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 ?:
Código (python) [Seleccionar]

print "Es cadena minuscula" if (raw_input("Texto en MINUSCULAS:").islower()) else "Es cadena mayuscula"


Saludos, Javier.
¡ SIGUEME EN TWITTER -> @JavierEsteban__ !

fedehaust

#8
Porque dan tantas vueltas??? Con esto alcanza:

Código (python) [Seleccionar]
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".