Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: lalalpa en 26 Septiembre 2011, 03:20 am



Título: Texto sin mayuslculas en python
Publicado por: 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
  1. def funcion():
  2.  texto = raw_input("ESCRIBE EL TEXTO EN MINUSCULAS: ")
  3.  for f in texto:
  4.  
  5.   while f.isupper():
  6.      texto = raw_input("ESCRIBE EL TEXTO EN MINUSCULAS: ")
  7.  
  8.  
  9. 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...!!!!


Título: Re: Texto sin mayuslculas en python
Publicado por: 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
  1. sEstado = 0
  2. sString = "holag"
  3. for f in sString:
  4.  if( sString.islower() ):
  5.    sEstado = 1
  6.    break
  7.  
  8. print "Es una cadena minuscula.\n" if (sEstado) else "Es una cadena mayuscula.\n"


Título: Re: Texto sin mayuslculas en python
Publicado por: lalalpa en 26 Septiembre 2011, 16:06 pm
Mucha sgracias pero sigue sin cortar...!


Título: Re: Texto sin mayuslculas en python
Publicado por: WHK en 26 Septiembre 2011, 16:19 pm
no sería mejor hacer la comparación de todo el texto en ves de carácter por carácter?

Código
  1. def funcion():
  2.  while(1):
  3.    texto = raw_input("ESCRIBE EL TEXTO EN MINUSCULAS: ")
  4.    if texto.lower() == texto :
  5.       break
  6.  return texto
  7.  
  8. funcion()

Yo hago lo mismo en php para reemplazar eregi() deprecated.


Título: Re: Texto sin mayuslculas en python
Publicado por: gloaysa en 29 Abril 2012, 17:44 pm
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:

Código:
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.


Título: Re: Texto sin mayuslculas en python
Publicado por: Runex en 29 Abril 2012, 18:10 pm
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
  1. def funcion():
  2.  texto = raw_input("ESCRIBE EL TEXTO EN MINUSCULAS: ")
  3.  for f in texto:
  4.  
  5.   while f.isupper():
  6.      texto = raw_input("ESCRIBE EL TEXTO EN MINUSCULAS: ")
  7.  
  8.  
  9. 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
  1. def funcion():
  2. palabra = raw_input("Introduce la palabra>")
  3. contador = 0
  4. for letra in palabra:
  5. if letra.isupper():
  6. contador += 1
  7. else:
  8. contador = contador
  9.  
  10. if contador != 0:
  11. funcion()
  12. else:
  13. print "No hay ninguna mayuscula, finalizado"
  14. exit(0)
  15. funcion()
  16.  
  17.  

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 :)


Título: Re: Texto sin mayuslculas en python
Publicado por: gloaysa en 29 Abril 2012, 20:22 pm
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.


Título: Re: Texto sin mayuslculas en python
Publicado por: 0x5d en 1 Mayo 2012, 08:33 am
Bueno, primer tienes que recorrer letra por letra, supongo que el que tienes es correcto,
Código
  1. sEstado = 0
  2. sString = "holag"
  3. for f in sString:
  4.  if( sString.islower() ):
  5.    sEstado = 1
  6.    break
  7.  
  8. print "Es una cadena minuscula.\n" if (sEstado) else "Es una cadena mayuscula.\n"
Para que recorrer cada letra ?:
Código
  1. print "Es cadena minuscula" if (raw_input("Texto en MINUSCULAS:").islower()) else "Es cadena mayuscula"

Saludos, Javier.


Título: Re: Texto sin mayuslculas en python
Publicado por: fedehaust en 28 Mayo 2012, 02:10 am
Porque dan tantas vueltas??? Con esto alcanza:

Código
  1. texto=str(raw_input('Introduzca un texto solamente escrito en minúsculas: '))
  2.  
  3. while texto.lower()!=texto:
  4.  texto=str(raw_input('Introduzca un texto solamente escrito en minúsculas: '))
  5. print 'El programa ha finalizado'

Elektro H@cker: Usa el botón "insertar código".