Skip to content
Snippets Groups Projects
Commit 7078bf0f authored by Erick Jhordan Reategui Rojas's avatar Erick Jhordan Reategui Rojas
Browse files

Final ex1

parent 67433af8
No related branches found
No related tags found
No related merge requests found
This diff is collapsed.
%% Cell type:markdown id: tags:
### Erick Jhordan Reategui Rojas, Callao, Perú
## 1 Ejercicio No. 1 - Lista de palabras
• Escriba un programa en python que acepte una lista de palabras separadas por guiones, e
imprima de vuelta las mismas palabras, sin repetición y nuevamente separadas por guiones,
después de ordenarlas alfabéticamente.<br/>
Ejemplo de entrada: naranja-avión-melodía-tupla-avión<br/>
Salida esperada: avión-melodía-naranja-tupla
%% Cell type:code id: tags:
``` python
def ej1(sample):
s1 = sample.split("-")
s1.sort()
s2 = set(s1)
return "-".join(s2)
```
%% Cell type:code id: tags:
``` python
sample = (input("Ingrese secuencia de palabras separadas por comas: \n"))
# print("Resultado: \n", ej1(sample))
```
%% Output
Ingrese secuencia de palabras separadas por comas:
naranja-avión-melodía-tupla-avión
%% Cell type:markdown id: tags:
Se separan las palabras (un solo "string") en una lista de "strings" tomando en cuenta los guiones
%% Cell type:code id: tags:
``` python
s1 = sample.split("-")
s1
```
%% Output
['naranja', 'avión', 'melodía', 'tupla', 'avión']
%% Cell type:markdown id: tags:
Se utiliza "Set" para ordenar alfabéticamente las palabras y que además estas no se repitan
%% Cell type:code id: tags:
``` python
s2 = set(s1)
s2
```
%% Output
{'avión', 'melodía', 'naranja', 'tupla'}
%% Cell type:markdown id: tags:
Luego, se vuelve a transformar en lista y se aplica el método "sorted", todo esto para evitar errores al momento de usar el método "join"
%% Cell type:code id: tags:
``` python
list_of_strings = [str(s) for s in s2]
sorted(list_of_strings)
list(s2)
s3 = sorted(list(s2))
s3
```
%% Output
['avión', 'melodía', 'naranja', 'tupla']
%% Cell type:markdown id: tags:
Finalmente se une la lista en un solo "string" separado por guiones
%% Cell type:code id: tags:
``` python
"-".join(s3)
```
%% Output
'avión-melodía-naranja-tupla'
%% Cell type:markdown id: tags:
### Resultado final
A continuación, se resume todo el proceso en una celda:
%% Cell type:code id: tags:
``` python
sample = (input("Ingrese secuencia de palabras separadas por comas: \n"))
rpta = "-".join(sorted(list(set(sample.split("-")))))
print("\n La lista ordenada alfabéticamente y sin repeticiones es: \n",
rpta)
```
%% Output
Ingrese secuencia de palabras separadas por comas:
horno-canción-zapato-música-armario
La lista ordenada alfabéticamente y sin repeticiones es:
armario-canción-horno-música-zapato
%% Cell type:code id: tags:
``` python
```
......
%% Cell type:markdown id: tags:
### Erick Jhordan Reategui Rojas, Callao, Perú
## 2 Ejercicio No. 2 - Triángulo de Pascal
• Escriba una rutina en python que reciba como entrada un número entero, n, e imprima los
números en la n-ésima fila del triángulo de Pascal. El programa debe verificar si el número
n es entero, o arrojar un mensaje informando que ha habido un error del usuario en caso
contrario.<br/>
• Modifique la rutina anterior para que reciba un número variable de argumentos: n1, n2, n3,…
y retorne una lista cuyo primer elemento es una lista conteniendo los números en la fila n1
del triángulo de Pascal, el segundo elemento una lista con los números en la fila n2, y así
sucesivamente.
%% Cell type:code id: tags:
``` python
import numpy as np
```
%% Cell type:code id: tags:
``` python
n = (input("Ingrese n para obtener la n-ésima fila del\n triángulo de Pascal: "))
n = int(n)
```
%% Output
Ingrese n para obtener la n-ésima fila del
triángulo de Pascal: 5
%% Cell type:markdown id: tags:
<img src="Pascal.png" width="500"/>
%% Cell type:code id: tags:
``` python
Pasc = []
if type(n)==int:
for k in np.arange(n):
if k==0:
Pasc.append([1])
elif k==1:
Pasc.append([1,1])
else:
Pasc.append([])
for j in np.arange(k+1):
if j==0:
Pasc[k].append(1)
elif j==k:
Pasc[k].append(1)
else:
Pasc[k].append(Pasc[k-1][j-1]+Pasc[k-1][j])
print(Pasc[-1])
else:
print("Ha habido un error, ingrese un número entero")
```
%% Output
[1, 4, 6, 4, 1]
%% Cell type:markdown id: tags:
## Rutina modificada
%% Cell type:code id: tags:
``` python
Rpta="Si"
while Rpta=="Si":
lista = (input("Ingrese un número variable de argumentos separados por comas: "))
lista = lista.split(", ")
lista1 = [x for x in lista if x.isdigit()]
lista1 = [int(x) for x in lista1]
if len(lista)!=len(lista1):
Rpta = (input("Ingresó uno o más números no enteros,\n desea intentar de nuevo? (Si/No): "))
else:
break
```
%% Output
Ingrese un número variable de argumentos separados por comas: 5, 7, 8
%% Cell type:code id: tags:
``` python
lista1
```
%% Output
[5, 7, 8]
%% Cell type:code id: tags:
``` python
nmax = np.argmax(lista1)
n = lista1[nmax]
Pasc = []
for k in np.arange(n):
if k==0:
Pasc.append([1])
elif k==1:
Pasc.append([1,1])
else:
Pasc.append([])
for j in np.arange(k+1):
if j==0:
Pasc[k].append(1)
elif j==k:
Pasc[k].append(1)
else:
Pasc[k].append(Pasc[k-1][j-1]+Pasc[k-1][j])
for l in lista1:
print("Para l=",l," se tiene", Pasc[l-1])
```
%% Output
Para l= 5 se tiene [1, 4, 6, 4, 1]
Para l= 7 se tiene [1, 6, 15, 20, 15, 6, 1]
Para l= 8 se tiene [1, 7, 21, 35, 35, 21, 7, 1]
......
%% Cell type:markdown id: tags:
### Erick Jhordan Reategui Rojas, Callao, Perú
## 3 Ejercicio No. 3 - Amigos congueros
• Entre en contacto con 10 estudiantes del curso de datos y 2 profesores o personal de soporte
de LaConga, uno del curso de datos y otro de afuera, y consulte su nombre completo, su
nombre de usuario en mattermost, edad, pais de origen, ciudad donde residen, su especialidad
científica, nombre del instituto en que estudian/laboran, y un hobbie o afición.<br/>
• Cree un diccionario llamado “compas”, donde la llave sea el nombre de usuario en mattermost,
y si depliego el valor almacenado, por ejemplo en compas[“juan-pineda”], lo que obtengo es
a la vez otro diccionario, con las llaves “nombre”, “apellido”, “país”, “residencia”, “edad”,
“institución”, “hobbie”.<br/>
• Cree una función que reciba como entrada el diccionario y un país de origen, y retorne las
informaciones completas de todas las personas de ese país, tabuladas en una forma fácil de
entender. -Busque una forma de calcular, a partir del diccionario, el promedio de edad de
todas las personas en él, y una forma de mostrar todas las instituciones (sin repetición)
%% Cell type:code id: tags:
``` python
compas = {
'sadeddins' : { 'nombre': 'Siria' , 'apellido': 'Sadeddin' ,
'país': 'Venezuela' , 'residencia': 'Barranquilla, Colombia' ,
'edad': 30 , 'institución': 'Universidad Simón Bolívar' ,
'hobbie': 'Data science' },
'ladinoj' : { 'nombre': 'Jose' , 'apellido': 'Ladino' ,
'país': 'Colombia' , 'residencia': 'Bogotá, Colombia' ,
'edad': 24 , 'institución': 'Universidad Nacional de Colombia' ,
'hobbie': 'Skate, ciclismo, guitarra eléctrica' },
'grisalesj' : { 'nombre': 'Jennifer' , 'apellido': 'Grisales' ,
'país': 'Colombia' , 'residencia': 'Bucaramanga, Colombia' ,
'edad': 27 , 'institución': 'Universidad Industrial de Santander' ,
'hobbie': 'Rugby'},
'andreatugores' : { 'nombre': 'Andrea' , 'apellido': 'Tugores' ,
'país': 'Venezuela' , 'residencia': 'Caracas, Venezuela' ,
'edad': 24 , 'institución': 'Universidad Central de Venezuela' ,
'hobbie': 'Tennis'},
'leonl' : { 'nombre': 'Luis' , 'apellido': 'León' ,
'país': 'Perú' , 'residencia': 'Callao, Perú' ,
'edad': 22 , 'institución': 'Universidad Nacional Mayor de San Marcos' ,
'hobbie': 'Escuchar música, tocar guitarra'},
'teofilo' : { 'nombre': 'Teófilo' , 'apellido': 'Vargas' ,
'país': 'Perú' , 'residencia': 'Lima, Perú' ,
'edad': 54 , 'institución': 'Universidad Nacional Mayor de San Marcos' ,
'hobbie': 'Wing Chun Kuen'},
'serranoj' : { 'nombre': 'José' , 'apellido': 'Serrano' ,
'país': 'Perú' , 'residencia': 'Lima, Perú' ,
'edad': 27 , 'institución': 'Universidad Nacional de Ingeniería' ,
'hobbie': 'Videojuegos'},
'vinascor' : { 'nombre': 'Rafael' , 'apellido': 'Vinasco' ,
'país': 'Colombia' , 'residencia': 'Bogotá, Colombia' ,
'edad': 26 , 'institución': 'Universidad nacional de Colombia' ,
'hobbie': 'Ajedrez, Nadar'},
'omarasto' : { 'nombre': 'Omar' , 'apellido': 'Asto' ,
'país': 'Perú' , 'residencia': 'Lima, Perú' ,
'edad': 25 , 'institución': 'Universidad Nacional de Ingeniería' ,
'hobbie': 'Leer periódico'},
'alexis.tremolada' : { 'nombre': 'Alexis' , 'apellido': 'Tremolada' ,
'país': 'Perú' , 'residencia': 'Lima, Perú' ,
'edad': 23 , 'institución': 'Universidad Nacional Mayor de San Marcos' ,
'hobbie': 'Leer, jugar videojuegos, ver series'}
}
```
%% Cell type:code id: tags:
``` python
compas.keys()
```
%% Output
dict_keys(['sadeddins', 'ladinoj', 'grisalesj', 'andreatugores', 'leonl', 'teofilo', 'serranoj', 'vinascor', 'omarasto', 'alexis.tremolada'])
%% Cell type:code id: tags:
``` python
compas.items()
```
%% Output
dict_items([('sadeddins', {'nombre': 'Siria', 'apellido': 'Sadeddin', 'país': 'Venezuela', 'residencia': 'Barranquilla, Colombia', 'edad': 30, 'institución': 'Universidad Simón Bolívar', 'hobbie': 'Data science'}), ('ladinoj', {'nombre': 'Jose', 'apellido': 'Ladino', 'país': 'Colombia', 'residencia': 'Bogotá, Colombia', 'edad': 24, 'institución': 'Universidad Nacional de Colombia', 'hobbie': 'Skate, ciclismo, guitarra eléctrica'}), ('grisalesj', {'nombre': 'Jennifer', 'apellido': 'Grisales', 'país': 'Colombia', 'residencia': 'Bucaramanga, Colombia', 'edad': 27, 'institución': 'Universidad Industrial de Santander', 'hobbie': 'Rugby'}), ('andreatugores', {'nombre': 'Andrea', 'apellido': 'Tugores', 'país': 'Venezuela', 'residencia': 'Caracas, Venezuela', 'edad': 24, 'institución': 'Universidad Central de Venezuela', 'hobbie': 'Tennis'}), ('leonl', {'nombre': 'Luis', 'apellido': 'León', 'país': 'Perú', 'residencia': 'Callao, Perú', 'edad': 22, 'institución': 'Universidad Nacional Mayor de San Marcos', 'hobbie': 'Escuchar música, tocar guitarra'}), ('teofilo', {'nombre': 'Teófilo', 'apellido': 'Vargas', 'país': 'Perú', 'residencia': 'Lima, Perú', 'edad': 54, 'institución': 'Universidad Nacional Mayor de San Marcos', 'hobbie': 'Wing Chun Kuen'}), ('serranoj', {'nombre': 'José', 'apellido': 'Serrano', 'país': 'Perú', 'residencia': 'Lima, Perú', 'edad': 27, 'institución': 'Universidad Nacional de Ingeniería', 'hobbie': 'Videojuegos'}), ('vinascor', {'nombre': 'Rafael', 'apellido': 'Vinasco', 'país': 'Colombia', 'residencia': 'Bogotá, Colombia', 'edad': 26, 'institución': 'Universidad nacional de Colombia', 'hobbie': 'Ajedrez, Nadar'}), ('omarasto', {'nombre': 'Omar', 'apellido': 'Asto', 'país': 'Perú', 'residencia': 'Lima, Perú', 'edad': 25, 'institución': 'Universidad Nacional de Ingeniería', 'hobbie': 'Leer periódico'}), ('alexis.tremolada', {'nombre': 'Alexis', 'apellido': 'Tremolada', 'país': 'Perú', 'residencia': 'Lima, Perú', 'edad': 23, 'institución': 'Universidad Nacional Mayor de San Marcos', 'hobbie': 'Leer, jugar videojuegos, ver series'})])
%% Cell type:code id: tags:
``` python
valor.keys()
```
%% Output
dict_keys(['nombre', 'apellido', 'país', 'residencia', 'edad', 'institución', 'hobbie'])
%% Cell type:code id: tags:
``` python
for clave, valor in compas.items():
# La clave sería por ejemplo "frutas", el valor sería en este caso
# otro diccionario. Con `valor.keys()` sacamos la lista
# de claves de este otro diccionario, que serían los nombres de las frutas
elementos = ", ".join(valor.keys())
print(clave, ":", elementos)
```
%% Output
sadeddins : nombre, apellido, país, residencia, edad, institución, hobbie
ladinoj : nombre, apellido, país, residencia, edad, institución, hobbie
grisalesj : nombre, apellido, país, residencia, edad, institución, hobbie
andreatugores : nombre, apellido, país, residencia, edad, institución, hobbie
leonl : nombre, apellido, país, residencia, edad, institución, hobbie
teofilo : nombre, apellido, país, residencia, edad, institución, hobbie
serranoj : nombre, apellido, país, residencia, edad, institución, hobbie
vinascor : nombre, apellido, país, residencia, edad, institución, hobbie
omarasto : nombre, apellido, país, residencia, edad, institución, hobbie
alexis.tremolada : nombre, apellido, país, residencia, edad, institución, hobbie
%% Cell type:code id: tags:
``` python
if compas["omarasto"]['país'] == "Perú":
print(compas["omarasto"])
```
%% Output
{'nombre': 'Omar', 'apellido': 'Asto', 'país': 'Perú', 'residencia': 'Lima, Perú', 'edad': 25, 'institución': 'Universidad Nacional de Ingeniería', 'hobbie': 'Leer periódico'}
%% Cell type:markdown id: tags:
Cree una función que reciba como entrada el diccionario y un país de origen,
y retorne las informaciones completas de todas las personas de ese país, tabuladas en una forma fácil de entender.
%% Cell type:code id: tags:
``` python
for clave, valor in compas.items():
# print(clave)
if compas[clave]['país'] == "Perú":
print(clave, ":", compas[clave],"\n")
```
%% Output
leonl : {'nombre': 'Luis', 'apellido': 'León', 'país': 'Perú', 'residencia': 'Callao, Perú', 'edad': 22, 'institución': 'Universidad Nacional Mayor de San Marcos', 'hobbie': 'Escuchar música, tocar guitarra'}
teofilo : {'nombre': 'Teófilo', 'apellido': 'Vargas', 'país': 'Perú', 'residencia': 'Lima, Perú', 'edad': 54, 'institución': 'Universidad Nacional Mayor de San Marcos', 'hobbie': 'Wing Chun Kuen'}
serranoj : {'nombre': 'José', 'apellido': 'Serrano', 'país': 'Perú', 'residencia': 'Lima, Perú', 'edad': 27, 'institución': 'Universidad Nacional de Ingeniería', 'hobbie': 'Videojuegos'}
omarasto : {'nombre': 'Omar', 'apellido': 'Asto', 'país': 'Perú', 'residencia': 'Lima, Perú', 'edad': 25, 'institución': 'Universidad Nacional de Ingeniería', 'hobbie': 'Leer periódico'}
alexis.tremolada : {'nombre': 'Alexis', 'apellido': 'Tremolada', 'país': 'Perú', 'residencia': 'Lima, Perú', 'edad': 23, 'institución': 'Universidad Nacional Mayor de San Marcos', 'hobbie': 'Leer, jugar videojuegos, ver series'}
%% Cell type:code id: tags:
``` python
def f1(dicc, pais):
for clave, valor in compas.items():
if compas[clave]['país'] == pais:
print(clave, ":", compas[clave],"\n")
```
%% Cell type:code id: tags:
``` python
f1(compas, "Perú")
```
%% Output
leonl : {'nombre': 'Luis', 'apellido': 'León', 'país': 'Perú', 'residencia': 'Callao, Perú', 'edad': 22, 'institución': 'Universidad Nacional Mayor de San Marcos', 'hobbie': 'Escuchar música, tocar guitarra'}
teofilo : {'nombre': 'Teófilo', 'apellido': 'Vargas', 'país': 'Perú', 'residencia': 'Lima, Perú', 'edad': 54, 'institución': 'Universidad Nacional Mayor de San Marcos', 'hobbie': 'Wing Chun Kuen'}
serranoj : {'nombre': 'José', 'apellido': 'Serrano', 'país': 'Perú', 'residencia': 'Lima, Perú', 'edad': 27, 'institución': 'Universidad Nacional de Ingeniería', 'hobbie': 'Videojuegos'}
omarasto : {'nombre': 'Omar', 'apellido': 'Asto', 'país': 'Perú', 'residencia': 'Lima, Perú', 'edad': 25, 'institución': 'Universidad Nacional de Ingeniería', 'hobbie': 'Leer periódico'}
alexis.tremolada : {'nombre': 'Alexis', 'apellido': 'Tremolada', 'país': 'Perú', 'residencia': 'Lima, Perú', 'edad': 23, 'institución': 'Universidad Nacional Mayor de San Marcos', 'hobbie': 'Leer, jugar videojuegos, ver series'}
%% Cell type:code id: tags:
``` python
f1(compas, "Colombia")
```
%% Output
ladinoj : {'nombre': 'Jose', 'apellido': 'Ladino', 'país': 'Colombia', 'residencia': 'Bogotá, Colombia', 'edad': 24, 'institución': 'Universidad Nacional de Colombia', 'hobbie': 'Skate, ciclismo, guitarra eléctrica'}
grisalesj : {'nombre': 'Jennifer', 'apellido': 'Grisales', 'país': 'Colombia', 'residencia': 'Bucaramanga, Colombia', 'edad': 27, 'institución': 'Universidad Industrial de Santander', 'hobbie': 'Rugby'}
vinascor : {'nombre': 'Rafael', 'apellido': 'Vinasco', 'país': 'Colombia', 'residencia': 'Bogotá, Colombia', 'edad': 26, 'institución': 'Universidad nacional de Colombia', 'hobbie': 'Ajedrez, Nadar'}
%% Cell type:markdown id: tags:
Busque una forma de calcular, a partir del diccionario, el promedio de edad de todas las personas en él,
y una forma de mostrar todas las instituciones (sin repetición)
%% Cell type:code id: tags:
``` python
edades = []
for clave, valor in compas.items():
edades.append(compas[clave]['edad'])
print(compas[clave]['edad'])
```
%% Output
30
24
27
24
22
54
27
26
25
23
%% Cell type:code id: tags:
``` python
import numpy as np
np.mean(edades)
```
%% Output
28.2
%% Cell type:code id: tags:
``` python
instituciones = []
for clave, valor in compas.items():
instituciones.append(compas[clave]['institución'])
print(compas[clave]['institución'])
```
%% Output
Universidad Simón Bolívar
Universidad Nacional de Colombia
Universidad Industrial de Santander
Universidad Central de Venezuela
Universidad Nacional Mayor de San Marcos
Universidad Nacional Mayor de San Marcos
Universidad Nacional de Ingeniería
Universidad nacional de Colombia
Universidad Nacional de Ingeniería
Universidad Nacional Mayor de San Marcos
%% Cell type:code id: tags:
``` python
instituciones
```
%% Output
['Universidad Simón Bolívar',
'Universidad Nacional de Colombia',
'Universidad Industrial de Santander',
'Universidad Central de Venezuela',
'Universidad Nacional Mayor de San Marcos',
'Universidad Nacional Mayor de San Marcos',
'Universidad Nacional de Ingeniería',
'Universidad nacional de Colombia',
'Universidad Nacional de Ingeniería',
'Universidad Nacional Mayor de San Marcos']
%% Cell type:code id: tags:
``` python
set(instituciones)
```
%% Output
{'Universidad Central de Venezuela',
'Universidad Industrial de Santander',
'Universidad Nacional Mayor de San Marcos',
'Universidad Nacional de Colombia',
'Universidad Nacional de Ingeniería',
'Universidad Simón Bolívar',
'Universidad nacional de Colombia'}
%% Cell type:code id: tags:
``` python
```
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment