Python - Sustituir vocales por el simbolo +

 
Vista:
sin imagen de perfil
Val: 19
Ha disminuido su posición en 6 puestos en Python (en relación al último mes)
Gráfica de Python

Sustituir vocales por el simbolo +

Publicado por Sebastián (6 intervenciones) el 14/09/2018 02:46:23
hola quien me puede indicar como hacer un programa que solicite un string como entrada y que imprima como salida el mismo strin gpero sustituyendo cada una de las vocales por los siguientes símbolos: + para vocales abiertas (a,e,o) y - para las vocales cerradas (i, u).
Para acceder a un elemento de un string utilice los corchetes []
●El operador in le puede servir en este problema para indagar si un carácter está en un string
●Recuerde que el operador +usado con strings le permite concatenar (unir) caracteres o strings para formar nuevos strings
●Le será de utilidad crear en este problema un string vacío ‘’ para luego irlo llenando con el resultado que finalmente se va a imprimir
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
-1
Responder
Imágen de perfil de abZer0x
Val: 425
Bronce
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Sustituir vocales por el simbolo +

Publicado por abZer0x (109 intervenciones) el 14/09/2018 23:34:28
Hola, una forma de hacerlo es la siguiente:

1
2
3
4
5
6
7
8
9
10
str_original = input('Igresa una cadena: ')
str_final = ''
for x in str_original:
    if x in 'aeo':
        str_final += '+'
    elif x in 'iu':
        str_final += '-'
    else:
        str_final += x
print(str_final)

Y otra forma seria utilizar una lista por comprensión:
1
2
3
str_original = input('Igresa una cadena: ')
str_final = ''.join([ '+' if x in 'aeo' else '-' if x in 'iu' else x for x in str_original ])
print('Cadena original: {} - Cadena modificada: {}'.format(str_original, str_final))

Por ultimo, otra variante seria utilizar un generador en lugar de una lista (esto en caso de que sea una cadena más grande seria más eficiente)
1
2
3
str_original = input('Igresa una cadena: ')
str_final = ''.join('+' if x in 'aeo' else '-' if x in 'iu' else x for x in str_original)
print('Cadena original: {} - Cadena modificada: {}'.format(str_original, str_final))
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar