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:
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
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:
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.
:rolleyes: y como seria hacer una subcadena para cada consonante de la cadena ingresada? :rolleyes: :rolleyes: :rolleyes: :rolleyes: :rolleyes:
Ya me eh aproximado hasta el punto de casi hacerlo, pero ahora me salta otro percance. Miren el script que hice es el siguiente:
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 ;)
Te lo diré así ... te estas complicando :xD
Simplemente utiliza una variable temporal, y ve creando la palabra sin vocales
Saludos
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")
Forma "normal":
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 :
print "".join(letra for letra in raw_input("Escribe lo que quieras:") if not(letra.lower() in ("a","e","i","o","u")))
a mi se me ocurre esta:
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
@fallout20xx: No funcionara con mayusculas
La forma chachi :P
print ''.join(filter(lambda x:not x.lower() in 'aeiou',raw_input('Escribe lo que quieras:')))
Igual si reemplazamos las variables en la función de Karcrack, esta que dejo es dos caracteres más larga
Saludos
@Novlucker:(http://static.tumblr.com/1mzpegb/l5Ileo2w6/challenge-accepted.jpg)
print ''.join(l for l in raw_input() if not l in 'aeiouAEIOU')
:P No lo he reducido demasiado... pero algo es algo :rolleyes: :xD
También había pensado lo de aeiouAEIOU :xD , pero quería ponerlo igual al tuyo para que se viera la equivalencia, ahora me obligas a hacerlo más corto ::)
print''.join(l for l in raw_input()if not l in'aeiouAEIOU')
:xD
Quitar espacios no te parece deshonroso? :P :laugh:
Pero es más corto :xD
Saludos
P.D: si se te ocurre algún otro reto voy a estar listo, otra vez no me ganas >:D
@Novlucker: Cuando quieras, donde quieras >:D :P
Mod:
54 caracteres :P
print filter(lambda x:not x in'aeiouAEIOU',raw_input())
Un saludo :D
Cita de: Karcrack en 10 Enero 2011, 23:20 PM
@Novlucker: Cuando quieras, donde quieras >:D :P
Mod:
print filter(lambda x:not x in'aeiouAEIOU',raw_input())
impresionante :o
No me había dado cuenta, el filter no necesita del join :D , mi code podría haber sido el más corto :¬¬
Vamos! quiero un reto!
Saludos
http://foro.elhacker.net/scripting/retopython_a_ver_quien_la_tiene_mas_corta_v2-t316453.0.html;new#new
Me ha dado por la factorizacion :P