Skip to content
Snippets Groups Projects
Commit 0062ec7d authored by Jesus David Bermudez Sanchez's avatar Jesus David Bermudez Sanchez
Browse files

queda listo lo que es la parte funcional del ejercicio, falta añadir explicaciones

parent 3befe6b6
No related branches found
No related tags found
No related merge requests found
%% Cell type:markdown id: tags:
# *Mi nombre es Jesus David Bermudez Sanchez, soy estudiante de la Maestria en Fisica de la Universidad Nacional de Colombia, Sede Bogotá*
---
%% Cell type:markdown id: tags:
# Amigos congueros
## El problema que se debe resolver presenta el siguiente enunciado:
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
+ ## Parte 1
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 esa la vez otro diccionario, con las llaves “nombre”, “apellido”, “país”, “residencia”, “edad”,“institución”, “hobbie”
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)
+ ## Parte 2
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.
+ ## Parte 3
Busque una forma de calcular, a partir del diccionario, el promedio de edad de todas las personas en él.
+ ## Parte 4
Busque una forma de mostrar todas las instituciones (sin repetición)
%% Cell type:code id: tags:
``` python
compas={
"juan-pineda":{"nombres":"Juan Carlos","apellidos":"Basto Pineda","edad":30,"pais":"Colombia","residencia":"Santander","especialidad cientifica":"Astronomia","institucion":"Universidad Industrial de Santander","hobbie":"divulgacion cientifica"},
"juan-pineda":
{"nombres":"Juan Carlos","apellidos":"Basto Pineda","edad":30,"pais":"Colombia","residencia":"Santander","especialidad cientifica":"Astronomia","institucion":"Universidad Industrial de Santander","hobbie":"divulgacion cientifica"},
"camacho.reina":
{"nombres":"Reina","apellidos":"Camacho Toro","edad":35,"pais":"Venezuela","residencia":"Francia","especialidad cientifica":"Fisica Experimental","institucion":"CNRS","hobbie":"avistamiento de aves"},
"britod":
{"nombres":"Daniel Arturo","apellidos":"Brito Urbina","edad":26,"pais":"Venezuela","residencia":"Caracas","especialidad cientifica":"Teorias de Campos","institucion":"Universidad Central de Venezuela","hobbie":"Patinetas, Bicicletas y Video juegos"},
"carrilloj":
{"nombres":"Juan Guillermo","apellidos":"Carrillo Reyes","edad":25,"pais":"Colombia","residencia":"Bogota","especialidad cientifica":"Astronomia","institucion":"Universidad Nacional de Colombia","hobbie":"Basket y Videojuegos"},
"escalantee":
{"nombres":"Eduardo Enrique","apellidos":"Escalante Rondon","edad":45,"pais":"Venezuela","residencia":"Barquisimeto","especialidad cientifica":"Dianmica Molecula","institucion":"Universidad Centroccidental Lisandro Alvarado","hobbie":"Leer y Escuchar Musica"},
"gomezc":
{"nombres":"Carla Elena","apellidos":"Gomez Alvarado","edad":27,"pais":"Venezuela","residencia":"Caracas","especialidad cientifica":"Fisica Molecular","institucion":"Universidad Simon Bolivar","hobbie":"Andar en bicicleta, Electronica, Gastronomia"},
"leonl":
{"nombres":"Luis Alberto","apellidos":"Leon Andonayre","edad":22,"pais":"Perú","residencia":"Provincia Constituciona del Callao","especialidad cientifica":"Gravitacion","institucion":"Universidad Nacional Mayor de San Marcos","hobbie":"Escuchar musica y tocar la guitarra"},
"mamaniy"
:{"nombres":"Yhony","apellidos":"Mamamni Arce","edad":26,"pais":"Perú","residencia":"Lima","especialidad cientifica":"Fisica del Estado Solido","institucion":"Universidad Nacional Mayor de San Marcos","hobbie":"correr, natacion, leer"},
"navasa":
{"nombres":"Alfonso","apellidos":"Navas","edad":24,"pais":"Colombia","residencia":"Bogota","especialidad cientifica":"Fisica de Sistemas Complejos, Ecologia","institucion":"Universidad Nacional de Colombia","hobbie":"crossfit"},
"pinzonc":
{"nombres":"Carlos Andres","apellidos":"Pinzon Osorio","edad":30,"pais":"Colombia","residencia":"Bogotá","especialidad cientifica":"Altas Energias","institucion":"Universidad Antonio Nariño","hobbie":"Atletismo"},
"ramosm":
{"nombres":"Maria Jose","apellidos":"Ramos Sotillo","edad":23,"pais":"Venezuela","residencia":"Merida","especialidad cientifica":"Fisica","institucion":"Universidad de los Andes","hobbie":"escribir"},
"reyesf":
{"nombres":"Felipe","apellidos":"Reyes","edad":22,"pais":"Colombia","residencia":"Cali","especialidad cientifica":"Materia Condensada","institucion":"Universidad del Valle","hobbie":"gimnasio"},
"semprumg":
{"nombres":"Gerardo Jesus","apellidos":"Semprum Suarez","edad":24,"pais":"Venezuela","residencia":"Caracas","especialidad cientifica":"Geofísica","institucion":"Universidad Central de Venezuela","hobbie":"Artes Marciales"},
}
```
%% Cell type:markdown id: tags:
### Algunos ejemplos de como de imprime la informacion de las personas
%% Cell type:code id: tags:
``` python
compas["reyesf"]
```
%% Output
{'nombres': 'Felipe',
'apellidos': 'Reyes',
'edad': 22,
'pais': 'Colombia',
'residencia': 'Cali',
'especialidad cientifica': 'Materia Condensada',
'institucion': 'Universidad del Valle',
'hobbie': 'gimnasio'}
%% Cell type:code id: tags:
``` python
def info_por_paises(x,y):
# Usando tab completa el nombre de la key. Curioso
compas["mamaniy"]
```
%% Output
{'nombres': 'Yhony',
'apellidos': 'Mamamni Arce',
'edad': 26,
'pais': 'Perú',
'residencia': 'Lima',
'especialidad cientifica': 'Fisica del Estado Solido',
'institucion': 'Universidad Nacional Mayor de San Marcos',
'hobbie': 'correr, natacion, leer'}
%% Cell type:markdown id: tags:
# Falta explicacion
%% Cell type:code id: tags:
``` python
def info_por_paises(x,y,z=False):
"""
Esta funcion recibe el diccionario compas en el primer argumento,
una variable de tipo string con el pais de origen y una
variable Booleana si el usuario desea que en la información que
se imprime, aparezca ademas de todo, el usuario de Mattermost
Retorna la informacion de las personas originarias del pais y
"""
# Hago una copia del diccionario compas
copia_compas=x.copy()
# Saco la lista de (key,values)
keys_and_values=copia_compas.items()
# Esta parte añade la key="usuario mattermost"
# a los diccionarios que contienen la informacion
# de los compas.
for r in keys_and_values:
copia_compas[r[0]]["usuario mattermost"]=r[0]
lista_paises=[]
# Hago una lista de los paises de origen de los compas
# Esta lista puede contener elementos repetidos
for f in keys_and_values:
lista_paises.append(copia_compas[f[0]]["pais"])
set_paises=set(lista_paises)
if z:
for r in keys_and_values:
copia_compas[r[0]]["usuario mattermost"]=r[0]
# Miro en cada "subdiccionario" el pais de origen,
# si este coincide con el pais que se pidio, se imprime el subdiccionario
# de manera bonita.
# La inspiracion para imprimir bonito la saque de
# https://thispointer.com/python-4-ways-to-print-items-of-a-dictionary-line-by-line/
for h in keys_and_values:
if y==h[1]["pais"]:
print("----------------------------------------------------")
for llave,valor in h[1].items():
print(llave,":",valor)
return ""
```
%% Cell type:markdown id: tags:
# Ejemplos
## Pais: *Venezuela*
%% Cell type:code id: tags:
``` python
print(info_por_paises(compas,"Venezuela"))
```
%% Output
----------------------------------------------------
nombres : Reina
apellidos : Camacho Toro
edad : 35
pais : Venezuela
residencia : Francia
edad : 36
especialidad cientifica : Fisica Experimental
institucion : CNRS
hobbie : avistamiento de aves
usuario mattermost : camacho.reina
----------------------------------------------------
nombres : Daniel Arturo
apellidos : Brito Urbina
edad : 26
pais : Venezuela
residencia : Caracas
especialidad cientifica : Teorias de Campos
institucion : Universidad Central de Venezuela
hobbie : Patinetas, Bicicletas y Video juegos
----------------------------------------------------
nombres : Eduardo Enrique
apellidos : Escalante Rondon
edad : 45
pais : Venezuela
residencia : Barquisimeto
especialidad cientifica : Dianmica Molecula
institucion : Universidad Centroccidental Lisandro Alvarado
hobbie : Leer y Escuchar Musica
----------------------------------------------------
nombres : Carla Elena
apellidos : Gomez Alvarado
edad : 27
pais : Venezuela
residencia : Caracas
especialidad cientifica : Fisica Molecular
institucion : Universidad Simon Bolivar
hobbie : Andar en bicicleta, Electronica, Gastronomia
----------------------------------------------------
nombres : Maria Jose
apellidos : Ramos Sotillo
edad : 23
pais : Venezuela
residencia : Merida
especialidad cientifica : Fisica
institucion : Universidad de los Andes
hobbie : escribir
----------------------------------------------------
nombres : Gerardo Jesus
apellidos : Semprum Suarez
edad : 24
pais : Venezuela
residencia : Caracas
especialidad cientifica : Geofísica
institucion : Universidad Central de Venezuela
hobbie : Artes Marciales
%% Cell type:markdown id: tags:
# Ejemplo
## Pais: *Peru*, retornando ademas el usuario de mattermost
%% Cell type:code id: tags:
``` python
compas["juan-pineda"]
print(info_por_paises(compas,"Perú",True))
```
%% Output
{'nombres': 'Juan Carlos',
'apellidos': 'Basto Pineda',
'pais': 'Colombia',
'residencia': 'Santander',
'edad': '30',
'institucion': 'Universidad Industrial de Santander',
'hobbie': 'divulgacion cientifica'}
----------------------------------------------------
nombres : Luis Alberto
apellidos : Leon Andonayre
edad : 22
pais : Perú
residencia : Provincia Constituciona del Callao
especialidad cientifica : Gravitacion
institucion : Universidad Nacional Mayor de San Marcos
hobbie : Escuchar musica y tocar la guitarra
usuario mattermost : leonl
----------------------------------------------------
nombres : Yhony
apellidos : Mamamni Arce
edad : 26
pais : Perú
residencia : Lima
especialidad cientifica : Fisica del Estado Solido
institucion : Universidad Nacional Mayor de San Marcos
hobbie : correr, natacion, leer
usuario mattermost : mamaniy
%% Cell type:code id: tags:
``` python
compas["camacho.reina"]
```
def promedio_edad_compas(x):
"""
Esta funcion recibe como unico argumento el diccionario compas.
%% Output
Retorna el promedio de las edades
"""
sub_diccionarios=x.values()
{'nombres': 'Reina',
'apellidos': 'Camacho Toro',
'pais': 'Venezuela',
'residencia': 'Francia',
'edad': '36',
'institucion': 'CNRS',
'hobbie': 'avistamiento de aves'}
edades=[value["edad"] for value in sub_diccionarios]
return sum(edades)/len(edades)
```
%% Cell type:code id: tags:
``` python
compas["jalil"]
print(promedio_edad_compas(compas))
```
%% Output
{'nombres': 'Jalil',
'apellidos': 'Varela Manjarres',
'pais': 'Colombia',
'residencia': 'Valle',
'edad': '25',
'institucion': 'Universidad del Valle',
'hobbie': 'viajar'}
27.615384615384617
%% Cell type:code id: tags:
``` python
compas["grisalesj"]
```
def instituciones_compas(x):
"""
Esta funcion recibe como unico argumento el diccionario compas.
%% Output
Retorna las instituciones de las personas sin repeticion
"""
{'nombres': 'Jennifer',
'apellidos': 'Grisales',
'pais': 'Colombia',
'residencia': 'Cucuta',
'edad': '27',
'institucion': 'Universidad Industrial de Santander',
'hobbie': 'caminata y deporte'}
dicc_personas=x.values()
# Hago una lista de las instituciones donde estudian y/0 trabajan los compas
# Esta lista puede contener elementos repetidos
lista_insti=[dicc["institucion"] for dicc in dicc_personas]
set_insti=set(lista_insti)
for insti in set_insti:
print(insti)
return ""
```
%% Cell type:code id: tags:
``` python
compas["ramosd"]
print(instituciones_compas(compas))
```
%% Output
{'nombres': 'David',
'apellidos': 'Ramos',
'pais': 'Colombia',
'residencia': 'Santander',
'edad': '26',
'institucion': 'Universidad Industrial de Santander',
'hobbie': 'escuchar y tocar musica'}
Universidad Nacional de Colombia
CNRS
Universidad Nacional Mayor de San Marcos
Universidad de los Andes
Universidad Simon Bolivar
Universidad del Valle
Universidad Central de Venezuela
Universidad Antonio Nariño
Universidad Industrial de Santander
Universidad Centroccidental Lisandro Alvarado
%% Cell type:code id: tags:
%% Cell type:markdown id: tags:
``` python
```
### Bibliografia
+ Imprimir bonito el contenido de un diccionario: https://thispointer.com/python-4-ways-to-print-items-of-a-dictionary-line-by-line/
......
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