Python - Sustituir vocales por el simbolo +

 
Vista:

Sustituir vocales por el simbolo +

Publicado por eder.ariza (5 intervenciones) el 16/09/2018 08:02:33
Hola saludos me podrias ayudar con este ejercicio:

Escriba un programa que solicite un string como entrada y que imprima como salida el mismo string pero sustituyendo cada una de las vocales por los siguientes símbolos: + para vocales abiertas (a,e,o) y - para las vocales cerrad as (i, u).

Entrada Salida
3 caballos tiene 12 patas 3 c+b+ll+s t-+n+ 12 p+t+s
esternocleidomastoideo +st+rn+cl+-d+m+st+-d++

Ayuda
● 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.

yo lo hice asi:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#Programa que cambia los strings tipo vocales de una oracion o frase por signos + o -
#Si los strings son vocales abiertas (a - e - o) se cambian por el signo +
#Si los strings son vocales cerradas (i - u) se cambian por el signo -
 
#Variable de entrada - Se ingresa y almacena la frase
frase=str(input("Ingrese la frase en la que desea reemplazar las vocales por signos: "))
 
#Variable auxiliar 1 - Define la variable frase1 - Reemplaza en frase la vocal a por el signo +
frase1=frase.replace("a","+")
 
#Variable auxiliar 2 - Define la variable frase2 - Reemplaza en frase la vocal e por el signo +
frase2=frase1.replace("e","+")
 
#Variable auxiliar 3 - Define la variable frase3 - Reemplaza en frase la vocal i por el signo -
frase3=frase2.replace("i","-")
 
#Variable auxiliar 4 - Define la variable frase4 - Reemplaza en frase la vocal o por el signo +
frase4=frase3.replace("o","+")
 
#Variable auxiliar 5 - Define la variable frase5 - Reemplaza en frase la vocal u por el signo -
frase5=frase4.replace("u","-")
 
#Variable de salida - Imprime frase5
print(frase5)


pero me lo estan solicitando de otra forma gracias por tu ayuda.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 2.808
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Sustituir vocales por el simbolo +

Publicado por tincopasan (1082 intervenciones) el 16/09/2018 13:33:22
se ve que este ejercicio lo piden mucho, el foro está plagado de esta consulta que muchos hacen y esperan todo servido, ahora bien, como fuiste el único que intento y planteo una posible solución, te voy a ayudar,cumpliendo los objetivos pedidos, no siendo ésta por supuesto, la única forma de hacerlo:
1
"Para acceder a un elemento de un string utilice los corchetes []"
como deberías saber eso se conoce como slice, teniendo una cadena="tincopasan" se accede a cada uno de los iterantes(caracteres) por medio de un entero que representa el lugar que ocupa en la cadena, sin olvidar que el primer elemento es 0, ej;
cadena[0]= "t"
cadena[3]="c" etc.
una parte del problema es que no conocemos el total de carateres que tendrá la cadena y si ponemos cadena[11[ dará un error porque no existe ningún valor en esa posición. Para solventar esto averiguaremos el largo de la cadena por medio de la función len()
largo=len(cadena) en mi caso por usar mi nick devolverá 10, por lo tanto ya se que no debo usar cadena[] con menos ni más de 10 ya que o quedará incompleta o dará un error.
1
2
El operador in le puede servir en este problema para indagar si un carácter está en un
string
como bien dice in me indicará si un caracter se encuentra en una cadena que en este caso será "aeo" y "iu", ya que debemos saber si cada caracter puede ser una de esas vocales.
1
2
● Recuerde que el operador + usado con strings le permite concatenar (unir) caracteres o
strings para formar nuevos strings
bien se sabe que si a una cadena le quiero sumar(agregar) otro caracter puedo usar por ejemplo:
cadena+=valor
y por último:
1
2
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.

para ello es simple:
cadenafinal=""
resumiendo, ya sabemos que necesitamos, vamos por ello.Otra cosa, si bien se puede usar replace(), no lo haré(será a la vieja escuela) quizá no quieren que lo usemos.
código final:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#-*- coding: utf -8 -*-
cadena=input("ingese una cadena: ")       #que solicite un string como entrada 
largo=len(cadena)                                    #para obtener el largo asi no cometemos errores
inicio=0                                                     #es una variable necesaria para comparar en un bucle   
cadena_final=""                                                      # Le será de utilidad crear en este problema un string vacío ‘’  
caracter=""                                               #valor que tomará dependiendo de que letra sea 
while inicio < largo:                                  #inicia el bucle en 0 y lo compara con el largo, se repetirá mientras sea menor   
    if cadena[inicio] in "aeo":                     #Para acceder a un elemento de un string utilice los corchetes [] donde inicio se irá incrementando
                                                               #además uso in para ver si es a, e ,o  
        caracter="+"                                   # si es caracter vale "+"  
    elif cadena[inicio] in "iu":                    #otra comparación, pero ahora con los valores pedidos i u
        caracter="-"                                   #por supuesto si es igual ahora caracter vale "-"    
    else:                                                  #sino 
        caracter=cadena[inicio]                 #sigue cada letra igual  
    cadena_final+= caracter                                 # Recuerde que el operador + etc, bien a la cadena vacia le agrego el valor que tiene caracter
    inicio+=1                                            #debo incrementar el valor inicial de inicio para que llegue a ser igual que el largo de la caden
 
print(cadena)                                        #optativo, la cadena original
print(cadena_final)                                             #resultado que finalmente se va a imprimir.(lo pedido, así que es obligatorio)
input()

Espero que te sirva y sobre todo que lo entiendas, así avanzas en el estudio de python.
Aclaro por las dudas que es para python 3 hace años no uso 2.x pero es funcional casi igual, salvo por el input que lee la cadena.
Saludos.
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

Sustituir vocales por el simbolo +

Publicado por eder.ariza (5 intervenciones) el 16/09/2018 16:38:36
Gracias por tu ayuda

Muy claro todo

Dios te Bendiga
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

Sustituir vocales por el simbolo +

Publicado por luis (1 intervención) el 20/08/2022 22:06:32
nombre = input ('Ingresa tu nombre: ')
for letra in nombre:
if letra in 'aeo':
print('+', end='')
elif letra in 'iu' :
print ('-', end='')
else:
print (letra, end='')
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