#ejercicio 1
""" Hacer una función que reciba un string y que imprima solamente los caracteres que sean vocales. """
palabra="alejandro"
def imprimir_vocales(string):
vocal = ""
for i in string:
if i == "a" or i == "e" or i == "i" or i == "o" or i == "u":
vocal += i
print(vocal)
imprimir_vocales(palabra)
#ejercicio 2
""" Hacer una función que reciba un string y que lo invierta. """
palabra="alejandro"
#alternativa 1
def invertir_string(string):
string_invertido = string[::-1]
print(string_invertido)
invertir_string(palabra)
#alternativa 2
def invertir_string_1(string):
lista_invertida = list(reversed(string))
string_invertido_1 = "".join(lista_invertida)
print(string_invertido_1)
invertir_string_1(palabra)
#ejercicio 3
""" Hacer una función que reciba dos strings, un string y un substring, es decir, que el primero contiene al
segundo, se pide devolver el string habiendo eliminado el substring del mismo.
Ejemplo:
string: “Campeones del Mundo - 2022”
substring: “2022”
Una vez llamada a la función el string nos debería quedar “Campeones del Mundo - ”, notar que solo
borra el año, el espacio no. """
frase = "Pensamiento Computacional 2023" #string
palabra = "Computacional " #substring
#alternativa 1
def eliminar_substring(string,substring):
# string = string.lower()
# substring = substring.lower() #si hay problemas de comparacion de minusculas y mayusculas podriamos pasar todo a minusculas
if string.count(substring) == 0:
return string
else:
string = string.replace(substring,"")
return string
resultado_string = eliminar_substring(frase, palabra)
print(resultado_string)
#alternativa 2
def eliminar_substring_1(string, substring):
# string = string.lower()
# substring = substring.lower() #si hay problemas de comparacion de minusculas y mayusculas podriamos pasar todo a minusculas
if not substring in string:
return string
else:
string = string.replace(substring,"")
return string
resultado_string_1 = eliminar_substring_1(frase, palabra)
print(resultado_string_1)
#ejercicio 4
""" Un chef está armando una lista de supermercado con todos los ingredientes que hay que comprar. Sólo
quiere agregar un ingrediente a la lista si no lo escribió antes, así no tiene repetidos.
Hacer un programa que inserte un nuevo elemento en una lista de strings, solamente si el elemento
que se desea insertar no se encuentra en la lista. La lista de ingredientes la podemos pensar como una
lista de strings.
Ejemplo:
ingredientes: [“tomate”, “queso”, “cebolla”, “huevo”]
ingrediente a agregar: “orégano”
La lista de ingredientes debería quedar [“tomate”, “queso”, “cebolla”, “huevo”, “orégano”]
En cambio, si el ingrediente a agregar es “queso” la lista debería quedar igual. """
lista_supermercado = ["huevos","leche","harina"]
print(lista_supermercado)
def agregar_a_la_lista(producto_nuevo):
if producto_nuevo not in lista_supermercado:
lista_supermercado.append(producto_nuevo)
agregar_a_la_lista("carne")
agregar_a_la_lista("huevos")
print(lista_supermercado)
#ejercicio 5
"""Agustina está jugando a las cartas con sus amigos. A ella le gusta tener las cartas de su mano bien
ordenadas. Esto significa que cada vez que tiene que agarrar una nueva carta, la quiere agregar a su
mano en el lugar indicado para no romper el orden.
Si se tiene una lista de enteros ordenadas de menor a mayor. Hacer una función que según esta lista
inserte un nuevo entero, manteniendo el orden.
Podemos pensar la lista de cartas como números enteros.
Ejemplo:
cartas: [1, 4, 6, 8]
carta nueva: 5
La lista de cartas debería quedar: [1, 4, 5, 6, 8]
Tratar de pensar una solución sin usar el método sort. (no es obligatorio)."""
lista_cartas = [1, 4, 6, 8]
def insertar_carta(carta, lista_de_cartas):
for i in lista_de_cartas:
if i > carta:
posicion = lista_de_cartas.index(i)
lista_de_cartas.insert(posicion, carta)
break
if carta > max(lista_cartas):
lista_de_cartas.append(carta)
insertar_carta(5,lista_cartas)
print(lista_cartas)
#ejercicio 6
""" Santiago armó una lista con el pedido de empanadas de su familia pero ahora quiere saber la cantidad
de gustos diferentes que tiene que pedir.
Podemos pensar la lista de empanadas como una lista de strings, entonces deberíamos devolver la
cantidad de strings diferentes que hay en una lista. """
lista_empanadas = ["jyq", "qyc", "carne", "humita", "calabaza", "jyq", "jyq", "humita", "calabaza", "carne", "humita", "calabaza", "qyc", "qyc", "napolitana"]
def cantidad_de_gustos(pedido):
lista_de_gustos = []
for i in pedido:
if i not in lista_de_gustos:
lista_de_gustos.append(i)
cantidad_de_gustos = len(lista_de_gustos)
print("La cantidad de gustos es:" , cantidad_de_gustos)
print("Los gustos son:" , lista_de_gustos)
cantidad_de_gustos(lista_empanadas)
#ejercicio 7
""" Manuel y su pareja armaron una lista numerada con las actividades de mantenimiento de la casa.
Decidieron dividirse las tareas, a Manuel le tocó hacer todas las actividades con número par, por eso
necesitamos hacer una función que reciba una lista de enteros, y devuelva otra lista que solamente
contenga números pares, que vienen a ser las tareas de Manuel. """
#alternativa 1
lista_numeros = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,1,2,3]
lista_pares = []
def dejar_numeros_pares(lista):
for i in lista:
if i % 2 == 0 and not i in lista_pares:
lista_pares.append(i)
dejar_numeros_pares(lista_numeros)
print(lista_pares)
#alternativa 2
lista_numeros_1 = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,1,2,3]
lista_pares_1 = []
def es_par(numero):
if numero % 2 == 0:
return True
else:
return False
def dejar_numeros_pares(lista):
for i in lista:
if es_par(i) and not i in lista_pares_1:
lista_pares_1.append(i)
dejar_numeros_pares(lista_numeros_1)
print(lista_pares_1)
#alternativa 3
lista_numeros_2 = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]
def es_par(numero):
if numero % 2 == 0:
return True
else:
return False
lista_pares_2 = list(filter(es_par,lista_numeros_2))
print(lista_pares_2)
#ejercicio 8 y 9
""" Un matrimonio está organizando una fiesta y tiene que armar una lista de invitados. Cada uno tiene su propia
tupla y guarda en ella a todos los que quiere invitar.
8. Si alguien cancela tienen que sacarlo de la tupla.
Hacer una función que reciba la tupla y un nombre, y devuelva una nueva tupla sin el nombre pasado
por parámetro.
Las tuplas son inmutables, entonces ¿Cómo podemos hacer para “eliminar” un elemento de una tupla?
Recordemos que las tuplas tienen definido el operador +, pero no el operador -.
9. Cuando ya tienen a todos los invitados tienen que juntar sus tuplas, para eso se necesita una función
que a partir de dos tuplas cree una sola que sea la combinación de ambas tuplas. """
#ejercicio 8
invitados_novia = ("juan" , "pedro", "maria")
invitados_novio = ("marcelo" , "sabrina", "agostina")
def sacar_invitado(tupla, eliminado):
lista_invitados_original = list(tupla)
lista_invitados_nueva = []
for i in lista_invitados_original:
if i != eliminado:
lista_invitados_nueva.append(i)
tupla = tuple(lista_invitados_nueva)
return tupla
invitados_novia_nueva = sacar_invitado(invitados_novia,"pedro")
print(invitados_novia_nueva)
invitados_novio_nueva = sacar_invitado(invitados_novio,"sabrina")
print(invitados_novio_nueva)
#ejercicio 9
def unir_tuplas_de_invitados(tupla_1, tupla_2):
tupla = tupla_1 + tupla_2
return tupla
invitados_definitiva = unir_tuplas_de_invitados(invitados_novia_nueva, invitados_novio_nueva)
print(invitados_definitiva)