Python
Python
Fundamentos de
PowerFactory y programación
de aplicaciones
Walter Vargas
Santiago Chamba
Abril 2022
Sección 1. Introducción Python
Índice
• ¿Qué es Python?
• ¿Por qué usar Python?
• Instalación de Python
• Línea de comandos en Windows (cmd)
• Repositorios PyPI
• Pip
• Comandos pip
• Instalación y uso de Spyder
• Escribiendo su primer programa
• Celdas en Spyder
¿Qué es Python?
Python es un lenguaje de programación de alto nivel, interpretado y orientado a objetos, creado por
el holandés Guido Van Rossum en 1991. Desarrollado y administrado por la Python Software
Foundation (se dedica a promover, proteger y desarrollar el lenguaje Python).
Algunas de las características que hacen a Python un lenguaje tan popular y poderoso son:
¿Python 2 o Python 3?
¿Por qué usar Python?
De acuerdo con StackOverflow insights en la
siguiente gráfica podemos ver el número de
preguntas vistas en la plataforma acerca de
Pyhton.
• Visualización de Datos:
Existen varias librerías
muy usadas para mostrar
datos en gráficas, como
matplotlib, seaborn o plotly.
¿Por qué usar Python?
De hecho a día de hoy prácticamente cualquier API, librería o servicio que existe en el mundo tiene una versión para
Python, bien sea de manera nativa o a través de un wrapper
Python es un lenguaje muy transversal, usado en diferentes industrias y para diferentes fines. Veamos algunos de las
empresas que usan Python:
¿Por qué usar Python?
Instalación de Python
Para instalar Python en Windows debes ir a la sección de descargas de la web oficial y seleccionar la última versión.
Se recomendamos utilizar la versión 3.x ya que aunque también existen versiones anteriores como las 2.x, Python
ya ha dejado de dar soporte a ellas.
https://www.python.org/downloads/
Instalación de Python
Instalación de Python
Pruebas unitarias de
Python
Los desarrolladores de Python pretenden que sea un catálogo exhaustivo de todos los paquetes de Python escritos
en código abierto.
Existen diversas herramientas para administrar los módulos instalados en Python que utilizan PyPI como su
repositorio principal, entre ellas pip y EasyInstall.
Pip
• Pip es un acrónimo recursivo que se puede interpretar como Pip Instalador de Paquetes o Pip Instalador de
Python.
• Pip es un sistema de gestión de paquetes utilizado para instalar y administrar paquetes de software escritos
en Python. Además de la funcionalidad básica de instalación de paquetes, pip permite actualizaciones y
desinstalaciones.
• Automáticamente pip se encargará de acceder a PyPi, buscar el fichero de distribución dado por los
desarrolladores, compilar el código en caso de que sea necesario y proceder a la copia de los
correspondientes ficheros al directorio site-packages de nuestro intérprete de Python.
Comandos Pip
• La instalación de un paquete a través de Pip es tan sencilla como invocar al comando install, seguido del
nombre del paquete que deseamos instalar.
pip install nombre-paquete
• La actualización de paquetes a la versión más reciente liberada también se realiza empleando el comando
install, pasándole como parámetro –U.
pip install –U nombre-paquete
• Pip nos permite realizar búsquedas de paquetes, consultando para ello PyPi y buscando todos los paquetes
que coinciden con el criterio de búsqueda.
pip search nombre-paquete
• Consultar todos los paquetes instalados en nuestro sistema es posible gracias al comando freeze.
pip freeze
Instalación y uso de Spyder
Spyder es un potente entorno de desarrollo interactivo (IDE) para el lenguaje Python orientado a
científicos y desarrollo ingenieril con una interfaz muy similar a Matlab, por lo que es la opción más
adecuada cuando se quiere migrar de programación Matlab a Python.
Explorador de Variables
Explorador de archivos
Ayuda
Editor
Terminal IPython
Instalación y uso de Spyder
Editor
• Funciona junto con la terminal y el editor,
muestra automáticamente la documentación
disponible cuando el usuario crea una
instancia o llama a una función Ctrl + I.
Índice
• Tipos de datos
• Variables y asignación
• Tipos de Números
• Tipos de Booleanos
• Tipos de Cadenas
• Operadores
• Entrada y salida estándar
• Tipos de Tuplas
• Tipos de Listas
• Tipos de Diccionarios
Tipos de datos
Python cuenta con varios tipos de datos, ya que no es lo mismo un número, que una letra, que un
valor que solo puede ser Falso o Verdadero.
Una característica de Python es que el tipo de variable no se declara (tipado dinámico y fuertemente
tipado).
• Primitivos • Secuenciales
• Números (int, float) • Listas
• Valores lógicos (booleanos) • Tuplas
• Cadenas de texto • Diccionarios
En otro lenguajes es necesario especificar que se almacenará, por ejemplo un valor entero; pero no
es el caso. Python es muy listo y al ver la variable X, sabrá de que tipo tiene que ser la X.
Variables y asignación
• Una variable es un espacio para almacenar datos modificables, en la memoria de un ordenador. En
Python, una variable se define con la sintaxis:
• Cada variable, tiene un nombre y un valor, el cual define a la vez, el tipo de datos de la variable.
• Las variables en Python pueden almacenar cualquier tipo (tipos de datos “dinámicos”: el tipo de una
variable cambiará según el valor que almacene)
o Contener al menos un carácter. El primero debe ser una letra o un guion bajo (_). El
resto puede ser letras, números o guion bajo.
«nombres» o «etiquetas»
Al hacer
a = 5 estamos etiquetando al objeto entero “5” con “a”
Y el objeto 5 queda libre, puede seguir existiendo en la memoria, pero como nadie hace
referencia a él, es borrado.
Variables y asignación
Si creamos una nueva etiqueta “b” y le asignamos el valor de “a”, es decir:
b=a
estamos agregando otra etiqueta al mismo objeto al que “a” hace referencia.
Esto significa eficiencia en el uso de memoria, pero si cambiamos el valor de “a”, por ejemplo
hacemos una operación aritmética, como restarle 1
a=a–1
al hacer esto se está creando un nuevo objeto y se etiqueta con “a”, entonces tendremos dos
objetos diferentes con etiquetas independientes.
Variables y asignación
Palabras reservadas: Python tiene un conjunto de palabras reservadas que no podemos utilizar para
nombrar variables ni funciones, ya que son reservas internamente para su funcionamiento.
Si queremos sumar los valores de dos cadenas o un número con una cadena, ejemplo “5” + “9” o 5 + “9”
debemos de convertir la cadena al tipo del número, ya sea entero o real o cualquier otro tipo numérico.
Para eso se utilizan las funciones de conversión que trae Python.
Ejemplo:
Tipos de Números
Python soporta 3 distintos tipos numéricos:
o Int (Entero con signo).- son números enteros positivos o negativos sin punto decimal.
o Float (valor real de punto flotante) o flotantes. Representan números reales y se escriben con un punto
decimal.
o Complex (números complejos). Son de la forma a+bj, donde a y b son flotantes y j representa la raíz
cuadrada de -1 (que es un número imaginario). a es la parte real del número y b es la parte imaginaria.
Tipos de Números
Tipos de conversión de números
o Tipo complex(x) para convertir x a un número complejo con una parte real x y una
parte imaginaria cero.
• Los dos valores posibles de este tipo de dato se prestan a diversas interpretaciones: Sí/No,
Encendido/Apagado, Verdadero/Falso, entre otras; todo aquello que represente dos estados
contrarios.
• En Python y los demás lenguajes de programación, se ha optado por las constantes True (1, verdadero)
y False (0, falso).
Tipos de Cadenas (string)
• Una cadena es una secuencia inmutable de caracteres delimitada por comillas simples o dobles:
‘Hola’
“Hola”
• Dado que las cadenas son secuencias ordenadas podemos hacer uso de indexación y slicing
(rebanado) para obtener una parte de los elementos de la cadena.
• La indexación permite obtener un solo carácter de la cadena. Para esto se usa [ ] y un índice para
indicar la posición que tu deseas obtener.
Tipos de Cadenas
• Slicing o rebanado nos permite obtener una sección de múltiples caracteres de una cadena. Este tiene
la siguiente sintaxis:
Operadores aritméticos: se utilizan para realizar operaciones matemáticas como: Sumar, Restar,
Dividir, Multiplicar, etc
Operadores
Operadores de asignación: Los operadores de asignación se utilizan para básicamente asignar un
valor a una variable.
Operadores
Operadores de comparación:
Función print( )
Nos permite escribir en la salida estándar. Podemos indicar varios datos a imprimir, que por defecto
serán separado por un espacio (se puede indicar el separador) y por defecto se termina con un
carácter salto de línea \n (también podemos indicar el carácter final). Podemos también imprimir
varias cadenas de texto utilizando la concatenación.
Tipos de Listas
• Las listas son secuencias ordenadas que pueden contener cualquier tipo de dato: números, cadenas,
booleanos, … y también listas.
• Estas se definen entre corchetes, y separados por comas, los valores que queremos incluir en la lista:
• Cuenta con algunos métodos como append, insert entre otros. Cabe hacer notar que estos métodos
no crean un nuevo objeto, sino que afectan directamente al objeto al que pertenecen.
Tipos de Tuplas
• Todo lo que hemos explicado sobre las listas se aplica también a las tuplas, a excepción de la forma de
definirla, para lo que se utilizan paréntesis en lugar de corchetes.
• La diferencia principal con las listas estriba es que son inmutables, es decir, sus valores no se pueden
modificar una vez creada; y tienen un tamaño fijo.
• Por ese motivo poseen pocos métodos, a cambio de estas limitaciones las tuplas son más “ligeras” que las
listas. El uso que le vamos a dar a una colección es muy básico, puedes utilizar tuplas en lugar de listas y
ahorrar memoria.
Tipos de Diccionarios
• Los diccionarios, también llamados matrices asociativas, deben su nombre a que son colecciones que
relacionan una clave y un valor. Por ejemplo, veamos un diccionario de ciudades y capitales:
capital = { 'España': 'Madrid', 'Perú': 'Lima', 'Argentina': 'Buenos Aires', 'Colombia': 'Bogotá', 'Venezuela':
'Caracas’ }
• El primer valor se trata de la clave y el segundo es el valor asociado a la clave. Como clave podemos utilizar
cualquier valor inmutable: podríamos usar números, cadenas, booleanos, tuplas, … pero no listas, dado que
son mutables.
• La diferencia principal entre los diccionarios y las listas o las tuplas es que a los valores almacenados en un
diccionario se les accede no por su índice, porque de hecho no tienen orden, sino por su clave, utilizando de
nuevo el operador [].
• Ejemplo: capital['Perú']
Sección 3. Estructuras de Control de Flujo
Índice
• Identación
• Estructuras de Control de Flujo
• Sentencia else
• Sentencia elif
• Sentencia bucle while
• Función range()
• Sentencia bucle for
• Sentencia break
• Continue
• Sentencia pass
• Listas y Diccionarios por Comprensión
Identación
• Para hablar de estructuras de control de flujo en
Python, es imprescindible primero, hablar de
identación.
• Una cláusula if (es decir, el bloque que sigue a la sentencia if) se ejecutará si la condición de la
sentencia es True. La cláusula se omite si la condición es False.
Sentencia else
• Una cláusula if puede ser seguida opcionalmente por una sentencia else. La cláusula else se ejecuta sólo
cuando la condición de la instrucción if es False.
• La sentencia else es una declaración opcional y podría haber como máximo una sentencia else después
de if.
Sentencia elif
• La instrucción elif le permite verificar múltiples expresiones para VERDADERO y ejecutar un bloque de
código tan pronto como una de las condiciones se evalúe como VERDADERO.
• Similar a lo demás, la sentencia elif es opcional. Puede haber un número arbitrario de enunciados elif
después de un if.
Sentencia bucle while
• Una sentencia while ejecuta repetidamente una declaración objetivo siempre que una condición dada sea
VERDADERA.
Función range()
• La función range crea una lista inmutable de números enteros en sucesión aritmética. Una sucesión
aritmética es una sucesión en la que la diferencia entre dos términos consecutivos es siempre la misma.
• Un range se crea llamando al tipo de datos con uno, dos o tres argumentos numéricos (m, n, p).
Donde:
m: el valor inicial
n: el valor final (que no se alcanza nunca)
p: el paso (la cantidad que se avanza cada vez)
• Si se escriben sólo dos argumentos, Python le asigna a p el valor 1. Es decir range(m, n) es lo mismo
que range(m, n, 1).
• Si quieres ejecutar un bloque de código sólo un cierto número de veces, se puede hacer uso de una
instrucción for y la secuencia range().
Sentencia break
• Hay un atajo para que la ejecución del programa salga de la cláusula de un bucle antes de finalizar toda
la sentencia.
• Si en la ejecución del programa encuentra una instrucción break, sale inmediatamente de la cláusula
bucle.
Sentencia continue
• Devuelve el control al principio del ciclo while. La instrucción continue rechaza todas las instrucciones
restantes en la iteración actual del ciclo y mueve el control nuevamente al principio del ciclo.
• Se utiliza cuando se requiere por sintaxis una declaración pero no se quiere ejecutar ningún
comando o código.
• También se utiliza en lugares donde el código irá finalmente, pero no ha sido escrita todavía
(utilizándolo como un relleno temporal, hasta que se escriba el código final).
Listas y Diccionarios por Comprensión
• Las listas por comprensión son análogas a los conjuntos por comprensión en teoría de conjuntos.
• Por ejemplo, A es el conjunto de las vocales (por comprensión) o A = {a,e,i,o,u} (por extensión).
• En Python las listas por comprensión se expresan por medio de sentencias for o if, por ejemplo, la
lista A = [0,1,2,3,4,5,6,7,,9] se expresa por comprensión como:
A = [i for i in range(10)]