Lenguaje de Programación
PYthon
Adán Velázquez T.
Índice
AgregarComentarios
Pandas
Introducción
Operaciones Aritméticas Básicas
Matplotlib
Anaconda
Funsiones
JupyterLab
Jupyter Notebook
Caracter \n, \t, \'
Control y Desarrollo de Programas
Gerarquia de operaciones
Que es Python
Python es un lenguaje de programación potente y fácil de aprender. Tiene estructuras de datos de alto nivel eficientes y un simple pero efectivo sistema de programación orientado a objetos. La elegante sintaxis de Python y su tipado dinámico, junto a su naturaleza interpretada lo convierten en un lenguaje ideal para scripting y desarrollo rápido de aplicaciones en muchas áreas, para la mayoría de plataformas.
Anaconda Navigator
Anaconda Navigator es una interfaz gráfica de usuario (GUI) de escritorio incluida en Anaconda; Distribucíon que le permite iniciar aplicaciones y administrar paquetes, entornos y canales de conda sin utilizar los comandos de la interfaz de línea de comandos (CLI). Navigator puede buscar paquetes en Anaconda.org o en un repositorio local de Anaconda. Está disponible para Windows, macOS y Linux.
JupyterLab
JupyterLab es el último entorno de desarrollo interactivo basado en la web para cuadernos, código y datos. Su interfaz flexible permite a los usuarios configurar y organizar flujos de trabajo en ciencia de datos, computación científica, periodismo computacional y aprendizaje automático. Un diseño modular invita a las extensiones para ampliar y enriquecer la funcionalidad.
Jupyter Notebook
Es una interfaz web de código abierto que permite la inclusión de texto, vıdeo, audio, imágenes ası como la ejecución de código a través del navegador en múltiples lenguajes. Esta ejecución se realiza mediante la comunicación con un núcleo (Kernel) de cálculo. Jupyter Notebook es la aplicación web original para crear y compartir documentos computacionales. Ofrece una experiencia simple, optimizada y centrada en documentos.
Gerarquia de Operaciones
Parentesis () Exponentes ** Multiplicaciones y Divisiones *, /, // residuo, % porcentaje Suma y resta +, -
Si hay parentesis u otros signos de agrupacion, se realizan primero esas operaciones. El siguiente orden es resolver los exponentes. El proximo paso es evaluar las multiplicaciones y divisiones. Finalmente se realizan las sumas y las restas indicadas.
Ejemplos
Primero se resuelve lo que esta entre parentesis (2*5) =10 y al resultado se le suma 3 +10=13
Primero se resuelve la multiplicación 1*2 =2, despues la división 4/3= 1.33, despues la suma de 5+1.33= 6.33 y por ultimo se realiza la resta de 6.33-2 = 4.33
Agregar Comentarios
Para agregar comentarios fuera de la linea de codigo: Damos clic en Code que se encuentra en la parte superior y nuevamente clic para seleccionar Markdown Para agregar comentarios dentro de la linea de codigo: Anteponiendo # y despues ponemos el texto de nuestro comentario.
Operadores Aritméticos Básicos
Operador * Multiplicación
El operador * multiplica los números presentes a la izquierda y derecha del operador.
ctrl + enter --> ejecuta
Alt + enter --> ejecuta y linea
enter --> mismo bloque
Operador + Suma
Declaración de dos variables X y Y con valores 39 y 12 y sumar ambas
Asignamos el valor de 39 a X y asignamos el valor de 12 a Y. Declaramos una tercera variable Z la cual obtendra el resultado de la suma entre X y Y. Imprimimos el resultado.
ctrl + enter --> ejecuta
Alt + enter --> ejecuta y linea
enter --> mismo bloque
Operador / Division
Hacer un programa que divida 2 variables y devuelva W elevado a la Z y de resultado Y
ctrl + enter --> ejecuta
Alt + enter --> ejecuta y linea
enter --> mismo bloque
Operador ** Calcula Exponentes
Para calcular exponentes, lo haremos con el operador "**" doble símbolo de multiplicación. Declarar y elevar 2 a la cuarta. Base 2 exponente 4
ctrl + enter --> ejecuta
Alt + enter --> ejecuta y linea
enter --> mismo bloque
Operador // Redondeo
Este operador // divide al primer número por el segundo número y redondea hacia abajo el resultado al entero más cercano.
Operador de Modulo %
El símbolo % en Python se llama el Operador de Módulo. Retorna el remanente de la división del operando izquierdo por el operando derecho. Se usa para obtener el residuo de un problema de división.
Divides 26/8 = 3.25 El 8 cabe 3 veces en el 26 Sobrando .25 Multiplicas 8*.25= 2 Residuo = 2
Si el valor de la derecha es mayor que el de la izquierda el residuo sera el mismo valor de la izquierda.
Funciones
Utilizando la función input() y la variable nombre, solicitar al usuario digitar su nombre y el cual se guardara en dicha variable. Imprimir el resultado con print().
ctrl + enter --> ejecuta
Alt + enter --> ejecuta y linea
enter --> mismo bloque
Input()
La función input( ) en Python funciona para posibilitar la entrada por texto por parte del usuario del programa, es decir, Python lee e imprime o ejecuta el texto que se le otorge en la función de input().
Realizar un programa que te pida tu nombre completo primero por apellidos, y despues nombre, tambien te pida la fecha actual (año) y fecha de nacimiento (año) y que te de como respuesta tu nombre ordenado nombre apedillos y tu edad.
Print ( )
La función input trabaja con la función de print, pues es está última la que dará el resultado según lo que ingrese el usuario.
Type ( )
Nos indica que tipo de dato esta dentro de los parentesis, el argumento de la funsión. Declararamos W con un valor entero 39 y X con valor decimal de 10.5
Caracter \n y \t
En Python, \n es el carácter de salto de línea y se usa para indicar el fin de una línea de texto y el inicio de una línea nueva. Se puede usar en cadenas de caracteres y cuando trabajamos con archivos.
Las tabulaciones pueden ir en conjunto con los saltos de línea o no \n\t. Cada tabulación, en Python equivale a pulsar la tecla Tab de nuestro teclado
Secuencias de Escape \'
Pero, ¿como haríamos si necesitáramos imprimir las propias comillas simples o dobles, con libertad, dentro de un string?
La solución pasa por utilizar «caracteres de escape». Referenciamos las comillas simples y dobles precediéndolas de un backslash (\), de modo que Python ignore su significado habitual delimitando strings.
Comillas Simples, Dobles y Triples
La ventaja de poder elegir entre comillas simples o dobles la encontramos cuando necesitemos anidar unas comillas dentro de otras. Observad el siguiente ejemplo:
Esto lo hemos podido conseguir utilizando el par interior de comillas de tipo diferente a la que abre y cierra el string, de modo que Python no puede confundirse a la hora de delimitar el fin de la cadena.
Comillas Triples
Las comillas triples (tanto simples como dobles) permiten declarar cadenas de varias líneas:
Las comillas triples dobles, además, sirven para escribir comentarios de varias líneas en el código.
Control y desarrollo de Programas
Sentencia if
"Si la expresión evaluada, resulta ser verdadera(True), entonces ejecuta una vez el código en la expresión. Si sucede el caso contrario y la expresión es falsa, entonces No ejecutes el código que sigue."
if condicion:
ejecutar sentencia
Ejemplo:
El usuario proporciona su año de nacimiento La cantidad debe leerse como un entero
Si la variable 1993 – año de nacimiento, es mayor o igual a 25,
el programa debe mostrar: Posible cliente
Si la edad de la persona es mayor o igual a 60
Mostrar: Adulto Mayor
Si la edad de la persona es mayor o igual a 27
Mostrar: Adulto
Si la edad de la persona es mayor o igual a 18
Mostrar: Joven
Si la edad de la persona es mayor o igual a 12
Mostrar: Adolescente
En otro caso,
Mostrar: Infante
Sentencia While
El bucle while evalúa una condición y luego ejecuta un bloque de código si la condición es verdadera. El bloque de código se ejecuta repetidamente hasta que la condición llega ser o es falsa.
La sintaxis básica es:
contador = 0
while contador < 10:
# Ejecuta el bloque de código aquí
# Siempre que el contador sea inferior a 10
Ejemplo:
Iniciar con potencia=4
Mientras que potencia sea menor o igual a 817
Potencia=potencia*4
Blucle For
Un bucle for establece la variable iteradora en cada valor de una lista, arreglo o cadena proporcionada y repite el código en el cuerpo del bucle for para cada valor de la variable iteradora.
Analiza el siguiente ejemplo: for caracter in ‘Palabra’:
print(caracter, end=’ ‘)
Arma un programa que te calcule el factorial de algún número dado
Factorial del numero 5
operador *=
Te permite guardar el resultado en si mismo
Ejemplo: factorial= factorial *num
Simplificado
factorial *=num
Se obtiene el mismo resultado en ambos casos
Range()
Podemos usar range si la suceción de elementos en for es una suscesión ordenada.
for i in range(0,16):
print(i, end=" ")
resultado: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Break
Para salir del ciclo usa Break.
Ejemplo:
Operadores Booleanos
Una expresión booleana (o expresión lógica) es evaluada como verdadera (true) o falsa (false). Python provee el tipo de dato booleano que puede contener los valores True o False. Muchas funciones y operaciones retornan objetos booleanos.
Ejemplo:
Arma un programa que revise si un cliente registró su mail Y que su salario mensual sea mayor a 20,000 pesos para poder declararlo como posible cliente
Pandas
Pandas es una librería de código abierto, que ofrece unas estructuras muy poderosas y flexibles que facilitan la manipulación y tratamiento de datos.
Pandas surgió como necesidad de aunar en una única librería todo lo necesario para que un analista de datos pudiese tener en una misma herramienta todas las funcionalidades que necesitaba en su día a día, como son: cargar datos, modelar, analizar, manipular y prepararlos.
import
La instrucción import combina dos operaciones; busca el módulo con nombre y, a continuación, enlaza los resultados de esa búsqueda a un nombre en el ámbito local. La operación de búsqueda de la instrucción import se define como una llamada a la función __import__(), con los argumentos adecuados. El valor retornado de __import__() se utiliza para realizar la operación de enlace de nombre de la instrucción import.
Estructuras de datos en Pandas
Las dos estructuras de datos principales dentro del paquete Pandas son:
Series: array unidimensional etiquetado capaz de almacenar cualquier tipo de dato.
DataFrame: estructura bidimensional con columnas que pueden ser también de cualquier tipo. Estas columnas son a su vez Series.
Analizar datos con Pandas
Funciones:
- read_csv() Te permite leer archivos CSV en memoria y ofrece herramientas poderosas para el análisis y manipulación de datos.
- head(n) Esta función devuelve las primeras "n" filas de nuestro DataFrame.
- tail(n) Devuelve las "n" últimas filas de nuestro DataFrame.
- describe() Esta función da estadísticas descriptivas incluyendo aquellas que resumen la tendencia central, dispersión y la forma de la distribución de los datos.
iloc(): Selecciona los registros de las filas y columnas, poniendo el numero de fila dentro de los parentesis. Shape: Describe el numero de columnas y filas del DataFrame. df_train['Id']: Muestra los primeros 5 y los ultimos 5 df_train[['Id','SalePrice']]: Muestra los precios de venta df_train['SalePrice'].mean() Muestra el valor promedio de la SalePrice.
matplotlib inline
Matplotlib es una librería para generar gráficas a partir de datos contenidos en listas, vectores, en el lenguaje de programación Python y en su extensión matemática NumPy. Para importarla: import matplotlib.pyplot as plt
Permite ver graficas de los precios de venta:
import matplotlib.pyplot as plt df_train['SalePrice'].describe()
sns.displot(df_train['SalePrice'])
Bibliografía
https://jupyter.org/
https://es.wikipedia.org/wiki/Proyecto_Jupyter
https://profile.es/blog/pandas-python/
https://www.programacionfacil.org/index.html
https://www.freecodecamp.org/
https://ellibrodepython.com/operadores-aritmeticos#operador--1
https://donnierock.com/2018/11/10/orden-de-operaciones-aritmeticas-pemdas-y-su-aplicacion-en-lenguajes-de-programacion/
https://www.programacionfacil.org/cursos/python_basico/capitulo_6_strings_python_4.html
Bibliografía
https://keepcoding.io/blog/como-programar-con-inputs/#:~:text=De%20acuerdo%20a%20la%20documentaci%C3%B3n,la%20funci%C3%B3n%20de%20input().
http://elclubdelautodidacta.es/wp/2011/10/python-capitulo-22-comillas-simples-dobles-y-triples/
https://techkrowd.com/programacion/python/python-cadenas-de-caracteres/
Python
adan
Created on July 15, 2023
Start designing with a free template
Discover more than 1500 professional designs like these:
View
Visual Presentation
View
Terrazzo Presentation
View
Colorful Presentation
View
Modular Structure Presentation
View
Chromatic Presentation
View
City Presentation
View
News Presentation
Explore all templates
Transcript
Lenguaje de Programación
PYthon
Adán Velázquez T.
Índice
AgregarComentarios
Pandas
Introducción
Operaciones Aritméticas Básicas
Matplotlib
Anaconda
Funsiones
JupyterLab
Jupyter Notebook
Caracter \n, \t, \'
Control y Desarrollo de Programas
Gerarquia de operaciones
Que es Python
Python es un lenguaje de programación potente y fácil de aprender. Tiene estructuras de datos de alto nivel eficientes y un simple pero efectivo sistema de programación orientado a objetos. La elegante sintaxis de Python y su tipado dinámico, junto a su naturaleza interpretada lo convierten en un lenguaje ideal para scripting y desarrollo rápido de aplicaciones en muchas áreas, para la mayoría de plataformas.
Anaconda Navigator
Anaconda Navigator es una interfaz gráfica de usuario (GUI) de escritorio incluida en Anaconda; Distribucíon que le permite iniciar aplicaciones y administrar paquetes, entornos y canales de conda sin utilizar los comandos de la interfaz de línea de comandos (CLI). Navigator puede buscar paquetes en Anaconda.org o en un repositorio local de Anaconda. Está disponible para Windows, macOS y Linux.
JupyterLab
JupyterLab es el último entorno de desarrollo interactivo basado en la web para cuadernos, código y datos. Su interfaz flexible permite a los usuarios configurar y organizar flujos de trabajo en ciencia de datos, computación científica, periodismo computacional y aprendizaje automático. Un diseño modular invita a las extensiones para ampliar y enriquecer la funcionalidad.
Jupyter Notebook
Es una interfaz web de código abierto que permite la inclusión de texto, vıdeo, audio, imágenes ası como la ejecución de código a través del navegador en múltiples lenguajes. Esta ejecución se realiza mediante la comunicación con un núcleo (Kernel) de cálculo. Jupyter Notebook es la aplicación web original para crear y compartir documentos computacionales. Ofrece una experiencia simple, optimizada y centrada en documentos.
Gerarquia de Operaciones
Parentesis () Exponentes ** Multiplicaciones y Divisiones *, /, // residuo, % porcentaje Suma y resta +, -
Si hay parentesis u otros signos de agrupacion, se realizan primero esas operaciones. El siguiente orden es resolver los exponentes. El proximo paso es evaluar las multiplicaciones y divisiones. Finalmente se realizan las sumas y las restas indicadas.
Ejemplos
Primero se resuelve lo que esta entre parentesis (2*5) =10 y al resultado se le suma 3 +10=13
Primero se resuelve la multiplicación 1*2 =2, despues la división 4/3= 1.33, despues la suma de 5+1.33= 6.33 y por ultimo se realiza la resta de 6.33-2 = 4.33
Agregar Comentarios
Para agregar comentarios fuera de la linea de codigo: Damos clic en Code que se encuentra en la parte superior y nuevamente clic para seleccionar Markdown Para agregar comentarios dentro de la linea de codigo: Anteponiendo # y despues ponemos el texto de nuestro comentario.
Operadores Aritméticos Básicos
Operador * Multiplicación
El operador * multiplica los números presentes a la izquierda y derecha del operador.
ctrl + enter --> ejecuta Alt + enter --> ejecuta y linea enter --> mismo bloque
Operador + Suma
Declaración de dos variables X y Y con valores 39 y 12 y sumar ambas
Asignamos el valor de 39 a X y asignamos el valor de 12 a Y. Declaramos una tercera variable Z la cual obtendra el resultado de la suma entre X y Y. Imprimimos el resultado.
ctrl + enter --> ejecuta Alt + enter --> ejecuta y linea enter --> mismo bloque
Operador / Division
Hacer un programa que divida 2 variables y devuelva W elevado a la Z y de resultado Y
ctrl + enter --> ejecuta Alt + enter --> ejecuta y linea enter --> mismo bloque
Operador ** Calcula Exponentes
Para calcular exponentes, lo haremos con el operador "**" doble símbolo de multiplicación. Declarar y elevar 2 a la cuarta. Base 2 exponente 4
ctrl + enter --> ejecuta Alt + enter --> ejecuta y linea enter --> mismo bloque
Operador // Redondeo
Este operador // divide al primer número por el segundo número y redondea hacia abajo el resultado al entero más cercano.
Operador de Modulo %
El símbolo % en Python se llama el Operador de Módulo. Retorna el remanente de la división del operando izquierdo por el operando derecho. Se usa para obtener el residuo de un problema de división.
Divides 26/8 = 3.25 El 8 cabe 3 veces en el 26 Sobrando .25 Multiplicas 8*.25= 2 Residuo = 2
Si el valor de la derecha es mayor que el de la izquierda el residuo sera el mismo valor de la izquierda.
Funciones
Utilizando la función input() y la variable nombre, solicitar al usuario digitar su nombre y el cual se guardara en dicha variable. Imprimir el resultado con print().
ctrl + enter --> ejecuta Alt + enter --> ejecuta y linea enter --> mismo bloque
Input()
La función input( ) en Python funciona para posibilitar la entrada por texto por parte del usuario del programa, es decir, Python lee e imprime o ejecuta el texto que se le otorge en la función de input().
Realizar un programa que te pida tu nombre completo primero por apellidos, y despues nombre, tambien te pida la fecha actual (año) y fecha de nacimiento (año) y que te de como respuesta tu nombre ordenado nombre apedillos y tu edad.
Print ( )
La función input trabaja con la función de print, pues es está última la que dará el resultado según lo que ingrese el usuario.
Type ( )
Nos indica que tipo de dato esta dentro de los parentesis, el argumento de la funsión. Declararamos W con un valor entero 39 y X con valor decimal de 10.5
Caracter \n y \t
En Python, \n es el carácter de salto de línea y se usa para indicar el fin de una línea de texto y el inicio de una línea nueva. Se puede usar en cadenas de caracteres y cuando trabajamos con archivos.
Las tabulaciones pueden ir en conjunto con los saltos de línea o no \n\t. Cada tabulación, en Python equivale a pulsar la tecla Tab de nuestro teclado
Secuencias de Escape \'
Pero, ¿como haríamos si necesitáramos imprimir las propias comillas simples o dobles, con libertad, dentro de un string? La solución pasa por utilizar «caracteres de escape». Referenciamos las comillas simples y dobles precediéndolas de un backslash (\), de modo que Python ignore su significado habitual delimitando strings.
Comillas Simples, Dobles y Triples
La ventaja de poder elegir entre comillas simples o dobles la encontramos cuando necesitemos anidar unas comillas dentro de otras. Observad el siguiente ejemplo:
Esto lo hemos podido conseguir utilizando el par interior de comillas de tipo diferente a la que abre y cierra el string, de modo que Python no puede confundirse a la hora de delimitar el fin de la cadena.
Comillas Triples
Las comillas triples (tanto simples como dobles) permiten declarar cadenas de varias líneas:
Las comillas triples dobles, además, sirven para escribir comentarios de varias líneas en el código.
Control y desarrollo de Programas
Sentencia if
"Si la expresión evaluada, resulta ser verdadera(True), entonces ejecuta una vez el código en la expresión. Si sucede el caso contrario y la expresión es falsa, entonces No ejecutes el código que sigue."
if condicion: ejecutar sentencia
Ejemplo:
El usuario proporciona su año de nacimiento La cantidad debe leerse como un entero Si la variable 1993 – año de nacimiento, es mayor o igual a 25, el programa debe mostrar: Posible cliente
Si la edad de la persona es mayor o igual a 60 Mostrar: Adulto Mayor Si la edad de la persona es mayor o igual a 27 Mostrar: Adulto Si la edad de la persona es mayor o igual a 18 Mostrar: Joven Si la edad de la persona es mayor o igual a 12 Mostrar: Adolescente En otro caso, Mostrar: Infante
Sentencia While
El bucle while evalúa una condición y luego ejecuta un bloque de código si la condición es verdadera. El bloque de código se ejecuta repetidamente hasta que la condición llega ser o es falsa.
La sintaxis básica es:
contador = 0 while contador < 10: # Ejecuta el bloque de código aquí # Siempre que el contador sea inferior a 10
Ejemplo:
Iniciar con potencia=4 Mientras que potencia sea menor o igual a 817 Potencia=potencia*4
Blucle For
Un bucle for establece la variable iteradora en cada valor de una lista, arreglo o cadena proporcionada y repite el código en el cuerpo del bucle for para cada valor de la variable iteradora.
Analiza el siguiente ejemplo: for caracter in ‘Palabra’: print(caracter, end=’ ‘)
Arma un programa que te calcule el factorial de algún número dado
Factorial del numero 5
operador *=
Te permite guardar el resultado en si mismo
Ejemplo: factorial= factorial *num Simplificado factorial *=num Se obtiene el mismo resultado en ambos casos
Range()
Podemos usar range si la suceción de elementos en for es una suscesión ordenada.
for i in range(0,16): print(i, end=" ") resultado: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Break
Para salir del ciclo usa Break.
Ejemplo:
Operadores Booleanos
Una expresión booleana (o expresión lógica) es evaluada como verdadera (true) o falsa (false). Python provee el tipo de dato booleano que puede contener los valores True o False. Muchas funciones y operaciones retornan objetos booleanos.
Ejemplo:
Arma un programa que revise si un cliente registró su mail Y que su salario mensual sea mayor a 20,000 pesos para poder declararlo como posible cliente
Pandas
Pandas es una librería de código abierto, que ofrece unas estructuras muy poderosas y flexibles que facilitan la manipulación y tratamiento de datos. Pandas surgió como necesidad de aunar en una única librería todo lo necesario para que un analista de datos pudiese tener en una misma herramienta todas las funcionalidades que necesitaba en su día a día, como son: cargar datos, modelar, analizar, manipular y prepararlos.
import
La instrucción import combina dos operaciones; busca el módulo con nombre y, a continuación, enlaza los resultados de esa búsqueda a un nombre en el ámbito local. La operación de búsqueda de la instrucción import se define como una llamada a la función __import__(), con los argumentos adecuados. El valor retornado de __import__() se utiliza para realizar la operación de enlace de nombre de la instrucción import.
Estructuras de datos en Pandas
Las dos estructuras de datos principales dentro del paquete Pandas son: Series: array unidimensional etiquetado capaz de almacenar cualquier tipo de dato. DataFrame: estructura bidimensional con columnas que pueden ser también de cualquier tipo. Estas columnas son a su vez Series.
Analizar datos con Pandas
Funciones:
iloc(): Selecciona los registros de las filas y columnas, poniendo el numero de fila dentro de los parentesis. Shape: Describe el numero de columnas y filas del DataFrame. df_train['Id']: Muestra los primeros 5 y los ultimos 5 df_train[['Id','SalePrice']]: Muestra los precios de venta df_train['SalePrice'].mean() Muestra el valor promedio de la SalePrice.
matplotlib inline
Matplotlib es una librería para generar gráficas a partir de datos contenidos en listas, vectores, en el lenguaje de programación Python y en su extensión matemática NumPy. Para importarla: import matplotlib.pyplot as plt
Permite ver graficas de los precios de venta:
import matplotlib.pyplot as plt df_train['SalePrice'].describe() sns.displot(df_train['SalePrice'])
Bibliografía
https://jupyter.org/
https://es.wikipedia.org/wiki/Proyecto_Jupyter
https://profile.es/blog/pandas-python/
https://www.programacionfacil.org/index.html
https://www.freecodecamp.org/
https://ellibrodepython.com/operadores-aritmeticos#operador--1
https://donnierock.com/2018/11/10/orden-de-operaciones-aritmeticas-pemdas-y-su-aplicacion-en-lenguajes-de-programacion/
https://www.programacionfacil.org/cursos/python_basico/capitulo_6_strings_python_4.html
Bibliografía
https://keepcoding.io/blog/como-programar-con-inputs/#:~:text=De%20acuerdo%20a%20la%20documentaci%C3%B3n,la%20funci%C3%B3n%20de%20input().
http://elclubdelautodidacta.es/wp/2011/10/python-capitulo-22-comillas-simples-dobles-y-triples/
https://techkrowd.com/programacion/python/python-cadenas-de-caracteres/