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

modificamos el archivo ejercicio1.iypnb

parent 43365f42
No related branches found
No related tags found
No related merge requests found
%% Cell type:markdown id: tags: %% 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á* # *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: %% Cell type:markdown id: tags:
## El problema a resolver es el siguiente ## El problema a resolver es el siguiente
## Lista de palabras ## Lista de palabras
Escriba un programa en python que acepte una lista de palabras separadas por guiones, e imprima de vuelta las 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. 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 Ejemplo de entrada: naranja-avión-melodía-tupla-avión
Salida esperada: avión-melodía-naranja-tupla Salida esperada: avión-melodía-naranja-tupla
--- ---
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
Iniciamos pidiendo al usuario una lista de palabras conectadas con guiones. (Esperamos que el usuario **NO** introduzca espacios en blanco). Iniciamos pidiendo al usuario una lista de palabras conectadas con guiones. (Esperamos que el usuario **NO** introduzca espacios en blanco).
Por ejemplo, puede ingresar: ``naranja-avión-melodía-tupla-avión`` Por ejemplo, puede ingresar: ``naranja-avión-melodía-tupla-avión``
Para ello usamos el comando `input()`, el cual permite pedir al usuario información a traves de la pantalla; esta informacion se guarda en una variable de tipo "string". Para ello usamos el comando `input()`, el cual permite pedir al usuario información a traves de la pantalla; esta informacion se guarda en una variable de tipo "string".
En nuestro caso llamamos a esta variable `palabras`. A esta variable le agregamos un guion en el extremo derecho. El porque de esta accion se expondra mas adelante. En nuestro caso llamamos a esta variable `palabras`. A esta variable le agregamos un guion en el extremo derecho. El porque de esta accion se expondra mas adelante.
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` python ``` python
palabras=input("""Ingrese una lista de palabras separadas palabras=input("""Ingrese una lista de palabras separadas
por guiones sin dejar epacios; por guiones sin dejar epacios;
se retornaran las palabras ordenadas se retornaran las palabras ordenadas
alfabeticamente y sin repeticiones alfabeticamente y sin repeticiones
""") """)
# Le agrego un guion al final del string original(para que funcione el # Le agrego un guion al final del string original(para que funcione el
# proceso que me invente) # proceso que me invente)
palabras=palabras+"-" palabras=palabras+"-"
``` ```
%% Output %% Output
Ingrese una lista de palabras separadas Ingrese una lista de palabras separadas
por guiones sin dejar epacios; por guiones sin dejar epacios;
se retornaran las palabras ordenadas se retornaran las palabras ordenadas
alfabeticamente y sin repeticiones alfabeticamente y sin repeticiones
naranja-avión-melodía-tupla-avión naranja-avión-melodía-tupla-avión
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` python ``` python
# Creo la lista vacia que va a contener las palabras individuales # Creo la lista vacia que va a contener las palabras individuales
lista_de_palabras=[] lista_de_palabras=[]
``` ```
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
## Separacion de las palabras ## Separacion de las palabras
En la celda siguiente se ejecuta el proceso que permite extraer cada una de las palabras que el usuario ingresó, las cuales estan guardadas en **UN** solo string, que llamamos `palabras`. En la celda siguiente se ejecuta el proceso que permite extraer cada una de las palabras que el usuario ingresó, las cuales estan guardadas en **UN** solo string, que llamamos `palabras`.
+ Creamos una variable nueva llamada contador. Antes del ciclo `for`, esta variable es un string vacio. + Creamos una variable nueva llamada contador. Antes del ciclo `for`, esta variable es un string vacio.
+ Hacemos un ciclo ``for`` que recorre la cadena de caracteres ``palabra``, y vamos guardando cada uno de estos caracteres en la variable ``contador``. + Hacemos un ciclo ``for`` que recorre la cadena de caracteres ``palabra``, y vamos guardando cada uno de estos caracteres en la variable ``contador``.
+ Cuando uno de los caracteres en ``palabra`` coincide con un guion (``-``), quiere decir que la variable ``contador`` "tiene" la primera palabra. + Cuando uno de los caracteres en ``palabra`` coincide con un guion (``-``), quiere decir que la variable ``contador`` "tiene" la primera palabra.
+ Apendamos esta palabra a la lista ``lista_de_palabras`` y reiniciamos la variable ``contador`` a un caracter vacio; de manera que en la siguiente iteración del ``for``, esta variable empiece a guardar la segunda palabra. + Apendamos esta palabra a la lista ``lista_de_palabras`` y reiniciamos la variable ``contador`` a un caracter vacio; de manera que en la siguiente iteración del ``for``, esta variable empiece a guardar la segunda palabra.
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` python ``` python
contador="" contador=""
for x in palabras: for x in palabras:
contador=contador+x contador=contador+x
if x=="-": if x=="-":
lista_de_palabras.append(contador[:-1]) lista_de_palabras.append(contador[:-1])
#Sin el [:-1] se añade la palabra con el guion delante #Sin el [:-1] se añade la palabra con el guion delante
contador="" contador=""
# lista_de_palabras es una lista que contiene las palabras del string original. # lista_de_palabras es una lista que contiene las palabras del string original.
print("Lista que contiene las palabras ingresadas sin guiones:") print("Lista que contiene las palabras ingresadas sin guiones:")
print(lista_de_palabras) print(lista_de_palabras)
``` ```
%% Output %% Output
Lista que contiene las palabras ingresadas sin guiones: Lista que contiene las palabras ingresadas sin guiones:
['naranja', 'avión', 'melodía', 'tupla', 'avión', 'naranja', 'avión', 'melodía', 'tupla', 'avión', 'naranja', 'avión', 'melodía', 'tupla', 'avión', 'naranja', 'avión', 'melodía', 'tupla', 'avión'] ['naranja', 'avión', 'melodía', 'tupla', 'avión', 'naranja', 'avión', 'melodía', 'tupla', 'avión', 'naranja', 'avión', 'melodía', 'tupla', 'avión', 'naranja', 'avión', 'melodía', 'tupla', 'avión']
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
## Eliminacion de las palabras repetidas ## Eliminacion de las palabras repetidas
+ Para eliminar las palabras repetidas, convertimos la lista ``lista_de_palabras`` a un _conjunto_ que llamamos ``set_palabras_sin_repetir``; ya que este tipo de estructuras **NO** permiten la repeticion de elementos. + Para eliminar las palabras repetidas, convertimos la lista ``lista_de_palabras`` a un _conjunto_ que llamamos ``set_palabras_sin_repetir``; ya que este tipo de estructuras **NO** permiten la repeticion de elementos.
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` python ``` python
set_palabras_sin_repetir=set(lista_de_palabras) set_palabras_sin_repetir=set(lista_de_palabras)
print("conjunto con las palabras ingresadas sin repetir") print("conjunto con las palabras ingresadas sin repetir")
print(set_palabras_sin_repetir) print(set_palabras_sin_repetir)
``` ```
%% Output %% Output
conjunto con las palabras ingresadas sin repetir conjunto con las palabras ingresadas sin repetir
{'tupla', 'naranja', 'melodía', 'avión'} {'tupla', 'naranja', 'melodía', 'avión'}
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
## Ordenacion alafabetica ## Ordenacion alafabetica
+ La estructura de _conjunto_ no nos permite hacer un ordenamiento alfabetico; para ello debemos volver a las listas, las cuales tienen el metodo ``.sort()``. + La estructura de _conjunto_ no nos permite hacer un ordenamiento alfabetico; para ello debemos volver a las listas, las cuales tienen el metodo ``.sort()``.
+ Creamos entonces una lista llamada ``lista_palabras_sin_repetir``, la cual contiene cada una de las palabras del string original, esta vez sin repeticiones. Luego aplicamos el metodo ``.sort()`` a esta lista. + Creamos entonces una lista llamada ``lista_palabras_sin_repetir``, la cual contiene cada una de las palabras del string original, esta vez sin repeticiones. Luego aplicamos el metodo ``.sort()`` a esta lista.
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` python ``` python
list_palabras_sin_repetir=list(set_palabras_sin_repetir) list_palabras_sin_repetir=list(set_palabras_sin_repetir)
print("lista de palabras ingresadas sin repetir") print("lista de palabras ingresadas sin repetir")
print(list_palabras_sin_repetir) print(list_palabras_sin_repetir)
print("") print("")
# Ordenamos las palabras alfabeticamente # Ordenamos las palabras alfabeticamente
list_palabras_sin_repetir.sort() list_palabras_sin_repetir.sort()
print("lista de palabras ingresadas sin repetir, ordenadas alfabeticamente") print("lista de palabras ingresadas sin repetir, ordenadas alfabeticamente")
print(list_palabras_sin_repetir) print(list_palabras_sin_repetir)
``` ```
%% Output %% Output
lista de palabras ingresadas sin repetir lista de palabras ingresadas sin repetir
['tupla', 'naranja', 'melodía', 'avión'] ['tupla', 'naranja', 'melodía', 'avión']
lista de palabras ingresadas sin repetir, ordenadas alfabeticamente lista de palabras ingresadas sin repetir, ordenadas alfabeticamente
['avión', 'melodía', 'naranja', 'tupla'] ['avión', 'melodía', 'naranja', 'tupla']
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
## Retornamos las palabras con el formato que se pide en ejercicio ## Retornamos las palabras con el formato que se pide en ejercicio
+ Para retornar las palabras como se pide en el ejercico, las concatenamos usando un ciclo ``for`` que recorre los elementos de la lista ``list_palabras_sin_repetir``. + Para retornar las palabras como se pide en el ejercico, las concatenamos usando un ciclo ``for`` que recorre los elementos de la lista ``list_palabras_sin_repetir``.
+ Creamos una variable tipo _strin_ llamada ``semi_final_string``, la cual empieza siendo un caracter vacio ``""``. + Creamos una variable tipo _strin_ llamada ``semi_final_string``, la cual empieza siendo un caracter vacio ``""``.
+ En cada iteración del ciclo ``for`` concatenamos las palabras de la lista ``list_palabras_sin_repetir`` junto con un guion. + En cada iteración del ciclo ``for`` concatenamos las palabras de la lista ``list_palabras_sin_repetir`` junto con un guion.
+ Finalmente, retornamos una variable tipo _string_ que llamamos ``final_string``, la cual es contiene los elementos de la variable ``semi_final_string`` desde la posición ``[1]`` debido a que el proceso anteriormente descrito coloca un guion ``-`` antes de guardar la primera palabra. + Finalmente, retornamos una variable tipo _string_ que llamamos ``final_string``, la cual es contiene los elementos de la variable ``semi_final_string`` desde la posición ``[1]`` debido a que el proceso anteriormente descrito coloca un guion ``-`` antes de guardar la primera palabra.
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` python ``` python
# Hacemos el string final uniendo los elementos de list_palabras_sin_repetir # Hacemos el string final uniendo los elementos de list_palabras_sin_repetir
semi_final_string="" semi_final_string=""
for a in list_palabras_sin_repetir: for a in list_palabras_sin_repetir:
semi_final_string=semi_final_string+"-"+a semi_final_string=semi_final_string+"-"+a
# Me toca hacerlo asi porque el semi_final_string tiene un "-" en la posicion 0. # Me toca hacerlo asi porque el semi_final_string tiene un "-" en la posicion 0.
final_string=semi_final_string[1:] final_string=semi_final_string[1:]
print(""" print("""
A continuación se muestra un string de las palabras ingresadas, A continuación se muestra un string de las palabras ingresadas,
sin repeticion, y ordenadas alfabeticamente, separadas por guiones sin repeticion, y ordenadas alfabeticamente, separadas por guiones
""") """)
print(" ") print(" ")
print(final_string) print(final_string)
``` ```
%% Output %% Output
A continuación se muestra un string de las palabras ingresadas, A continuación se muestra un string de las palabras ingresadas,
sin repeticion, y ordenadas alfabeticamente, separadas por guiones sin repeticion, y ordenadas alfabeticamente, separadas por guiones
avión-melodía-naranja-tupla avión-melodía-naranja-tupla
%% Cell type:markdown id: tags: %% Cell type:markdown id: tags:
Bibliografia Utilizada: Bibliografia Utilizada:
https://careerkarma.com/blog/python-syntaxerror-eol-while-scanning-string-literal/https://www.geeksforgeeks.org/python-convert-set-into-a-list/ + https://careerkarma.com/blog/python-syntaxerror-eol-while-scanning-string-literal/
+ https://www.geeksforgeeks.org/python-convert-set-into-a-list/
%% Cell type:code id: tags: %% Cell type:code id: tags:
``` python ``` 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