[Python] - Texto sin vocales

Iniciado por ChicoMaravilla, 8 Diciembre 2010, 16:17 PM

0 Miembros y 2 Visitantes están viendo este tema.

ChicoMaravilla

Estoy en el ejercicio numero 194 de la pagina 159 del libro marmota ( lo tengo en la firma) , la cosa es que me tranque. Me pide que en una cadena de texto ingresada por el usuario, le saque las vocales, y muestre el texto sin las vocales, yo lo que hice fue:

Código (python) [Seleccionar]
cadena=str(raw_input("ESCRIBE UNA FRASE: "))
while cadena != "":
    cadena.lower()
    for vocal in cadena:
        if vocal=="a" or vocal=="e" or vocal=="i" or vocal=='o' or vocal=='u':
            vocal="."
            print cadena
            respuesta=raw_input("ESCRIBA LA FRASE RESUELTA: ")
            if respuesta==cadena:
                print "CORRECTO"
            if respuesta!=cadena:
                print "INCORRECTO"
    cadena=str(raw_input("ESCRIBE UNA FRASE: "))


aun así me da resultados erróneos, o cea no se como representar la cadena sin las vocales, yo allí las saque, pero luego no se como mostrarlas

Novlucker

Piensa que tu estas mostrando la cadena, por lo que para mostrarla sin vocales tienes que hacer algo con ella, y ahí no veo que estes haciendo nada :silbar:
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

.:WindHack:.

Tienes que leer carácter por carácter la cadena y comprobar si existe una vocal en ella. Si es así, la eliminas... Es muy fácil...


Advertencia - mientras estabas escribiendo, una nueva respuesta fue publicada. Probablemente desees revisar tu mensaje.

Follow me on Twitter: @windhack | Visit my website: www.daw-labs.com

"The only thing they can't take from us are our minds."

ChicoMaravilla

  :rolleyes: y como seria hacer una subcadena para cada consonante de la cadena ingresada?  :rolleyes: :rolleyes: :rolleyes: :rolleyes: :rolleyes:

ChicoMaravilla

Ya me eh aproximado hasta el punto de casi hacerlo, pero ahora me salta otro percance. Miren el script que hice es el siguiente:

Código (python) [Seleccionar]
def vocales():
    texto=raw_input("ESCRIBE UNA FRASE: ")
    while texto!="":
        for vocales in texto:
            if vocales=='a' or vocales=='e' or vocales=='i' or vocales=='o' or vocales=='u':
                vocales='.'
            vocal=[vocales][:]
            print vocal
        texto=raw_input("ESCRIBE UNA FRASE: ")
vocales()


muestra todo los consonantes y tapa a las vocales como yo quise desde un principio, pero me aparece una u a la izquierda de cada consonante, que no la puedo entender de donde surge ni que es. Y lo hice desde una lista ya que las cadenas no se le pueden agregar cosas, en cambio las listas si.
Desde ya muchas gracias  ;)

Novlucker

Te lo diré así ... te estas complicando :xD

Simplemente utiliza una variable temporal, y ve creando la palabra sin vocales

Saludos
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

daryo

algo asi ? while True:
   cadena=raw_input("ESCRIBE UNA FRASE: ")
   caden=""
   cadena = cadena.lower()
   for vocal in cadena:
       if vocal=="a" or vocal=="e" or vocal=="i" or vocal=='o' or vocal=='u':
           vocal=""
       caden += vocal
   print caden
   respuesta=raw_input("ESCRIBA LA FRASE RESUELTA: ")
   if respuesta==caden:
         print "CORRECTO"
   if respuesta!=caden:
         print "INCORRECTO"
   cadena=raw_input("presione enter")
buenas

Karcrack

#7
Forma "normal":
Código (python) [Seleccionar]
cadena = raw_input("Escribe lo que quieras:")
vocales = "a","e","i","o","u"
new_cadena = ""

for letra in cadena:
   if not(letra.lower() in vocales):
       new_cadena += letra
       
print new_cadena


Forma chachi ::) :xD :
Código (python) [Seleccionar]
print "".join(letra for letra in raw_input("Escribe lo que quieras:") if not(letra.lower() in ("a","e","i","o","u")))

fallout20xx

#8
a mi se me ocurre esta:

Código (python) [Seleccionar]

vocales = ('a', 'e', 'i', 'o', 'u')
texto = raw_input("introduzca el texto:")
for letra in vocales:
   texto = texto.replace(letra, "")
print texto


bastante simple no xD
si disfrutas siempre que programas... significa que aun no has programado suficiente xD

Karcrack

@fallout20xx: No funcionara con mayusculas