Pido disculpas por las reiteradas preguntas que hago en el foro, pero no logro descifrar esto, pues miren, ahora estoy en el ejercicio 113 del libro de http://marmota.act.uji.es/mtp/pdf/python.pdf y la cuestión es que me pide que haga un programa que sea tal:
que pida un texto, y que si en ese texto aparece una letra mayúscula vuelva a repetir el input, pues miren yo hice esto:
def condicionwhile():
texto=str(raw_input("ESCRIBE UN TEXTO SIN MAYUSCULAS "))
while texto.isupper()==1:
texto=str(raw_input("ESCRIBE UN TEXTO SIN MAYUSCULAS "))
print "vuelve a intentarlo"
print "TEXTO CORRECTAMENTE ESCRITO"
condicionwhile()
El texto aclara que hay que volver a preguntar solamente si se colocó una mayúscula en alguna parte del texto, pero el problema es que no se cual es la función que tengo que citar, yo me aproximé a poner :
while texto.isupper()==1:
pero resulta que el upper solo funciona con un carácter suelto y luego pensé que podría ser el title pero tampoco, ya que solo es en el comienzo de las palabras y no me sirve tampoco.
PD: voy por la función while
Podrías hacer algo como esto,
#!/usr/bin/python
# Ingresar cadena.
sString = "HoLa"
# Recorrer cadena, caracter por caracter.
for character in sString:
if ( character.isupper() == 1 ):
print character + " upper"
else:
print character + " lower"
output:
shellroot@alex:~/Escritorio$ python PoC.py
H upper
o lower
L upper
a lower
Cita de: Shell Root en 3 Diciembre 2010, 19:48 PM
Podrías hacer algo como esto,
#!/usr/bin/python
# Ingresar cadena.
sString = "HoLa"
# Recorrer cadena, caracter por caracter.
for character in sString:
if ( character.isupper() == 1 ):
print character + " upper"
else:
print character + " lower"
output:
shellroot@alex:~/Escritorio$ python PoC.py
H upper
o lower
L upper
a lower
ok voy a hacer eso, gracias por la respuesta ;-)
Hola como estan yo tengo estoy haciendo el mismo ejercicio y mi algoritmo quedo asi
texto=str(raw_input("ESCRIBE UN TEXTO EN MINUSCULAS: "))
for character in texto:
while (character.isupper()== 1 ):
texto=str(raw_input("ESCRIBE UN TEXTO EN MINUSCULAS: "))
el problema es q a pesar de que ingrese el texto en minúsculas sigue pidiéndome el ingreso del texto. probe usando un breake pero sigue sin funcionar
@lalalpa
Puse tu código dentro de una función:
def funcion():
texto = raw_input("Escribe un texto en minusculas: ")
for character in texto:
while character.isupper():
texto = raw_input("Escribe un texto en minusculas: ")
Cuando llamás a la función y la cadena que escribís está en minúsculas no hay problema, porque la condición del while no se cumple y no vuelve a pedir datos.
El problema aparece cuando la cadena cumple la condición del while.
Supongamos por ejemplo que la cadena introducida es "Hola mundo". Con el for recorremos la variable y tomamos el primer carácter, en este caso "H". La condición del while se cumple y se vuelve a pedir un valor al usuario, pero el problema está en que el valor de la variable character NO CAMBIÓ, por lo tanto la condición se cumplirá siempre y volverá a pedir datos infinitamente.
Un saludo.
-
-
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: ")
f+= texto
funcion()
sigue sin funcionar..por favor q alguien me indique el error porq la verdad llevo un monton tratando de hacer est eejercicio y ya me canse