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

ajustes de estilo y ortografia

parent a7c66f2b
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