Commit cf21edc0 authored by María Ramos's avatar María Ramos
Browse files

archivos de tarea1

parent 405d62cc
.ipynb_checkpoints/
This diff is collapsed.
%% Cell type:markdown id: tags:
### Estudiante: María José Ramos
# Análisis de Datos
## Módulo 1: Research Software Engineering in Python
### Tarea 1: Ejercicios para practicar las bases de Python.
**Ejercicio 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.
Ejemplo de entrada: naranja-avión-melodía-tupla-avión
Salida esperada: avión-melodía-naranja-tupla
%% Cell type:markdown id: tags:
*1. Creando el código*
Para resolver este problema, el código aceptará una entrada tipo string. Al convertir el string en listas, cuyos elementos son las palabras dadas, se pueden aplicar cambios para ordenar a las mismas y quitar sus repeticiones. A la lista final, con las palabras en el orden adecuado y sin repeticiones se convierte en string y se devuelve como salida.
Nota: a medida que desarrollo el código, usaré el ejemplo de entrada y print() luego de los comandos, para comprobar que estoy obteniendo los resultados deseados en cada línea.
%% Cell type:code id: tags:
``` python
# Defino la variable que almacenará el input
palabras = str(input('Escriba una lista de palabras separadas por guiones: '))
print(palabras)
```
%% Output
Escriba una lista de palabras separadas por guiones: naranja-avión-melodía-tupla-avión
naranja-avión-melodía-tupla-avión
%% Cell type:code id: tags:
``` python
# Se convierte la entrada en lista usando .split
listaPal = palabras.split('-')
print(listaPal)
```
%% Output
['naranja', 'avión', 'melodía', 'tupla', 'avión']
%% Cell type:code id: tags:
``` python
# Con sorted() la lista se ordena en orden alfabético:
listaPalOrd = sorted(listaPal)
print(listaPalOrd)
```
%% Output
['avión', 'avión', 'melodía', 'naranja', 'tupla']
%% Cell type:code id: tags:
``` python
# Defino una nueva lista vacía para almacenar las palabras no repetidas
listaSinRep = []
# Y se agrega cada elemento de listaPalOrd solo si el elemento no está
# ya incluido. Así, se obtienen solo los elementos sin repetición.
[listaSinRep.append(i) for i in listaPalOrd if i not in listaSinRep]
print(listaSinRep)
```
%% Output
['avión', 'melodía', 'naranja', 'tupla']
%% Cell type:code id: tags:
``` python
# Utilizando .join se convierte listaSinRep en un string, con elementos
# separados por guion.
palabrasSeparadas= '-'.join(listaSinRep)
# Así, palabrasSeparadas es el output esperado:
print(palabrasSeparadas)
```
%% Output
avión-melodía-naranja-tupla
%% Cell type:markdown id: tags:
*2. Probando el código con otros ejemplos*
A continuación, definiré una función que guardará el código creado anteriormente, omitiendo los print luego de cada comando y solo conservando el print final. Luego, probaré la función con más entradas, para confirmar su funcionalidad.
%% Cell type:code id: tags:
``` python
def ordenarSinRep(palabras):
listaPal = palabras.split('-')
listaPalOrd = sorted(listaPal)
listaSinRep = []
[listaSinRep.append(i) for i in listaPalOrd if i not in listaSinRep]
palabrasSeparadas= '-'.join(listaSinRep)
print('Las palabras ordenadas alfabéticamente, sin repetición y '
f'separadas por guion: \n{palabrasSeparadas}')
return
palabras = str(input('Escriba una lista de palabras separadas por guiones: '))
ordenarSinRep(palabras)
```
%% Output
Escriba una lista de palabras separadas por guiones: datos-ciencia-python-ciencia-ciencia-jupyter
Las palabras ordenadas alfabéticamente, sin repetición y separadas por guion:
ciencia-datos-jupyter-python
%% Cell type:code id: tags:
``` python
# Un ejemplo más:
palabras = str(input('Escriba una lista de palabras separadas por guiones: '))
ordenarSinRep(palabras)
```
%% Output
Escriba una lista de palabras separadas por guiones: conga-datos-instrumentación-módulo-teoría
Las palabras ordenadas alfabéticamente, sin repetición y separadas por guion:
conga-datos-instrumentación-módulo-teoría
%% Cell type:markdown id: tags:
Y como se ha demostrado, el código funciona.
%% Cell type:code id: tags:
``` python
! jupyter nbconvert ejercicio1.ipynb --to html --output ejercicio1.html
```
%% Output
[NbConvertApp] Converting notebook ejercicio1.ipynb to html
[NbConvertApp] Writing 581588 bytes to ejercicio1.html
%% Cell type:code id: tags:
``` python
```
This diff is collapsed.