Programación en Python para ingenierı́a
Programación en Python
para ingenierı́a
J. Parı́s, F. Navarrina & GMNI
Grupo de Métodos Numéricos E.T.S. Enxeñerı́a de Camiños,
en Ingenierı́a Canais e Portos
Introducción Estructura Operadores Control Ficheros Estr. datos Funciones Módulos NumPy CMD Bibl. y Ej.
Índice
1.- Introducción 5.3.- Estándar input y output
1.1.- Conceptos generales 6.- Estructuras de datos
1.2.- Modos de interacción con Python 6.1.- Listas
2.- Estructura y estilo de programación 6.2.- Strings (Cadenas de caracteres)
2.1.- Estilo de codificación y programación 7.- Gestión y utilización de funciones
2.2.- Estructura de un programa 7.1.- Definición y utilización de funciones
2.3.- Tipos de variables 7.2.- Uso avanzado de funciones
2.4.- Clases y objetos 8.- Módulos
3.- Operadores 8.1.- Incorporación de módulos internos
3.1.- Operadores aritméticos y lógicos 8.2.- Incorporación de módulos externos
3.2.- Operadores relacionales 9.- Módulo NumPy
4.- Sentencias de control 9.1.- Funciones más habituales
4.1.- Bucles 9.2.- Lectura de datos de archivos txt
4.2.- Sentencias de control lógicas: if 9.3.- Operaciones con array
4.3.- Sentencias de control lógicas: match 10.- Command line
5.- Ficheros 10.1.- Información desde el command line
5.1.- Apertura y cierre de archivos 11.- Bibliografı́a y ejemplos
5.2.- Lectura y escritura en archivos 11.1.- Bibliografı́a y ejemplos
1/35
Universidade da Coruña - E.T.S. Enxeñerı́a de Camiños, Canais e Portos
Introducción Estructura Operadores Control Ficheros Estr. datos Funciones Módulos NumPy CMD Bibl. y Ej.
1.1- Conceptos generales
. Es un lenguaje de propósito general
. Es un lenguaje de alto nivel (cercano al usuario)
. Es un lenguaje interpretado
. El intérprete de Python está disponible para todos los sistemas operativos bajo
licencia GPL
. Es un lenguaje de programación modular (y existen numerosos módulos estándar
disponibles para su uso)
. Fue desarrollado a principios de los 90 por Guido Van Rossum
. Recibe su nombre del programa de TV “Monty Python’s Flying Circus” de la BBC
. En 2008 se lanzó la versión 3.0 de Python, que rompió la compatibilidad con
versiones anteriores
2/35
Universidade da Coruña - E.T.S. Enxeñerı́a de Camiños, Canais e Portos
Introducción Estructura Operadores Control Ficheros Estr. datos Funciones Módulos NumPy CMD Bibl. y Ej.
1.2- Modos de interacción con Python
. Modos de interacción con Python
Modo interactivo:
X Para acceder al intérprete Python basta con teclear en una terminal: “python”
X Para salir del intérprete basta con teclear: “quit()”
X Se pueden introducir instrucciones individualmente
X Se pueden recuperar instrucciones anteriores de forma similar a una terminal de
comandos
Modo script:
X Las instruccciones se pueden indicar de forma conjunta en un archivo de comandos
X La invocación del intérprete se realiza como: “python archivo de [Link]”
X Si se desea se pueden invocar módulos estándar como: “python -m module [arg] ...”
X La codificación del archivo de comandos se realiza por defecto en UTF-8, si bien es
recomendable utilizar solo la codificacion ASCII por compatibilidad
X Los comentarios y lı́neas de comentarios comienzan con el sı́mbolo #
X No se indica el “;” al final de cada instrucción
3/35
Universidade da Coruña - E.T.S. Enxeñerı́a de Camiños, Canais e Portos
Introducción Estructura Operadores Control Ficheros Estr. datos Funciones Módulos NumPy CMD Bibl. y Ej.
2.1- Estilo de codificación y programación
Estilo de codificación
. Cada lı́nea corresponde a una instrucción
. Se recomienda usar sangrı́as de 4 espacios, no tabuladores
. La indentación permite identificar los bloques de código
. Se recomienda no hacer lı́neas de más de 79 caracteres (para facilitar visibilidad)
. Si una lı́nea ocupa más de 80 caracteres se puede cortar la instrucción con el
caracter \ y continuar en la lı́nea siguiente.
. Se recomiendan los comentarios en una sóla lı́nea
. Se recomienda usar espacios alrededor de operadores y luego de las comas, pero
no directamente dentro de paréntesis
. Se recomienda utilizar solo caracteres ASCII.
4/35
Universidade da Coruña - E.T.S. Enxeñerı́a de Camiños, Canais e Portos
Introducción Estructura Operadores Control Ficheros Estr. datos Funciones Módulos NumPy CMD Bibl. y Ej.
2.2- Estructura de un programa
Estructura de un programa:
. Los programas en Python se diseñan de forma modular (con funciones)
. El programa principal se escribe al final del archivo después de todas las funciones
. Las funciones deben definirse en el archivo antes de utilizarse (lenguaje
interpretado)
. Las instrucciones en el programa principal se escriben desde el inicio de cada fila,
sin indentación
. No existen comandos de preproceso estilo #DEFINE de C
. Los módulos externos se incorporan al programa al inicio del mismo o antes de
utilizarlos
5/35
Universidade da Coruña - E.T.S. Enxeñerı́a de Camiños, Canais e Portos
Introducción Estructura Operadores Control Ficheros Estr. datos Funciones Módulos NumPy CMD Bibl. y Ej.
2.3- Tipos de variables
. Tipos de variables:
int (variables enteras)
float (variables reales, tamaño por defecto normalmente doble precisión)
bool (True o False)
strings, cadenas de caracteres (se ven posteriormente en 2)
. No es necesario declarar las variables.
. Python decide por nosotros el tipo de variable.
. En caso de duda se recomienda forzar el tipo con funciones de conversión.
. Se recomienda forzar el tipo mediante funciones de conversión de tipos.
. Funciones de conversion de tipos de variables:
int(x) Convierte a entera x (sea del tipo que sea)
float(i) Convierte a real i (sea del tipo que sea)
str(x) Convierte a string x (sea del tipo que sea)
6/35
Universidade da Coruña - E.T.S. Enxeñerı́a de Camiños, Canais e Portos
Introducción Estructura Operadores Control Ficheros Estr. datos Funciones Módulos NumPy CMD Bibl. y Ej.
2.4- Clases y objetos
. Clases:
Se definen como:
class nombre clase:
variable 1
variable 2
def f(...):
...
Pueden contener funciones definidas como: def ...
Se pueden crear objetos de una determinada clase como:
x = nombre clase() # Crea el objeto x vacı́o de clase tipo nombre clase
Dentro de cada objeto los diferentes atributos (miembros) se identifican como:
a = [Link] 1 # Toma el atributo variable 1 del objeto x.
c = x.f(...) # Aplica la función f del objeto x con los datos (...).
7/35
Universidade da Coruña - E.T.S. Enxeñerı́a de Camiños, Canais e Portos
Introducción Estructura Operadores Control Ficheros Estr. datos Funciones Módulos NumPy CMD Bibl. y Ej.
3.1- Operadores aritméticos y lógicos
. Operadores aritméticos:
Los operadores aritméticos habituales se utilizan normalmente como en cualquier
lenguaje de programación
Se incorpora la división modular al igual que en Lenguaje C mediante (%)
Los operadores incrementales de C (++, - -) no forman parte de Python
Sı́ se pueden utilizar los operadores incrementales (+=, -=, *= y /=)
. Operadores lógicos:
AND: Se utilizan y se escriben directamente con la instrucción “and” entre espacios
OR: Se utilizan y se escriben directamente con la instrucción “or” entre espacios
Negación: Se utilizan y se escriben anteponiendo “not” al valor o variable booleana
8/35
Universidade da Coruña - E.T.S. Enxeñerı́a de Camiños, Canais e Portos
Introducción Estructura Operadores Control Ficheros Estr. datos Funciones Módulos NumPy CMD Bibl. y Ej.
3.2- Operadores relacionales
. Operadores relacionales:
Se escriben al igual que en C entre espacios:
< (menor estricto) −→ Ej. j < 5
<= (menor o igual) −→ Ej. j <= 5
> (mayor estricto) −→ Ej. j > 5
>= (mayor o igual) −→ Ej. j >= 5
== (coincide con) −→ Ej. j == 5
! = (no coincide con)−→ Ej. j ! = 5
9/35
Universidade da Coruña - E.T.S. Enxeñerı́a de Camiños, Canais e Portos
Introducción Estructura Operadores Control Ficheros Estr. datos Funciones Módulos NumPy CMD Bibl. y Ej.
4.1- Bucles
. Bucles for
for i in range(10): # las lineas a repetir van indentadas 4 espacios.
# la instrucción finaliza con :
print(i)
i=5 # Obsérvese que a pesar de esto el contador seguirá igual
La forma habitual de establecer secuencias numéricas es con la función range:
range(ini,fin) {ini, ini+1 ..., fin-1}
range(ini,fin,salto) {ini, ini+salto, ...} # El valor “fin” nunca se alcanza
range(fin) = {0,1,...,fin-1}
El rango de valores también puede ser una comparación con elementos de una lista
words = [’cat’, ’dog’, ’mouse’]
for w in words:
print(w, len(w))
La sentencia break termina el bucle
La sentencia continue se salta el resto de la iteración y pasa a la siguiente.
10/35
Universidade da Coruña - E.T.S. Enxeñerı́a de Camiños, Canais e Portos
Introducción Estructura Operadores Control Ficheros Estr. datos Funciones Módulos NumPy CMD Bibl. y Ej.
4.1- Bucles
. Bucles “while”
a=1
b=1
while b < 20:
print(b)
c=a+b [1, 2, 3, 5, 8, 13]
a=b
b=c
Los dos puntos indican el final de la condición de repetición del “while”
Todas las sentencias afectadas por la instrucción “while” deben ir indentadas con 4
espacios con respecto al while
La sentencia break termina el bucle
La sentencia continue se salta el resto de la iteración y vuelve a comprobar la
condición de repetición
11/35
Universidade da Coruña - E.T.S. Enxeñerı́a de Camiños, Canais e Portos
Introducción Estructura Operadores Control Ficheros Estr. datos Funciones Módulos NumPy CMD Bibl. y Ej.
4.2- Sentencias de control lógicas: if
. Sentencia “if”
b = int(input(’Escriba b: ’))
if b < 20:
print(’b < 20’)
elif b < 30: # La comprobacion else if es opcional
print(’20 <= b < 30’)
else: # La comprobacion else es opcional
print(’b >= 30’)
La comprobación de la condición finaliza necesariamente con :
Las sentencias afectadas por la condición “if” deben ir indentadas con 4 espacios
con respecto al if
Las sentencias afectadas por las condiciones “elif” y “else” también deben ir
indentadas con 4 espacios
12/35
Universidade da Coruña - E.T.S. Enxeñerı́a de Camiños, Canais e Portos
Introducción Estructura Operadores Control Ficheros Estr. datos Funciones Módulos NumPy CMD Bibl. y Ej.
4.3- Sentencias de control lógicas: match
. Sentencia “match” (equivalente al switch de C). Sólo a partir de Python 3.10
match option:
case 1:
print(’Option 1’)
case 2:
print(’Option 2’)
case 3:
print(’Option 3’)
case :
print(’Non specified option’)
Cada “caso” coincidente excluye el resto (a diferencia del switch en C)
El caso “ ” es la opcion final por defecto
13/35
Universidade da Coruña - E.T.S. Enxeñerı́a de Camiños, Canais e Portos
Introducción Estructura Operadores Control Ficheros Estr. datos Funciones Módulos NumPy CMD Bibl. y Ej.
5.1- Apertura y cierre de archivos
. Apertura de archivos con “open”
ref archivo = open(’nombre archivo’,’cd’)
ref archivo es la variable que identifica el archivo que se va a abrir
nombre archivo es un string con el nombre (y ruta, en su caso) del archivo a abrir
cd son opciones de modo de apertura:
X c vale “r” Lectura, valor por defecto. Error si el archivo no existe
X c vale “w” Escritura. Crea el archivo si no existe
X c vale “a” Añade contenido. Crea el archivo si no existe
X c vale “x” Crea el archivo si no existe. Error si existe
X d es opcional. Si se añade con el valor “b” el archivo será binario
Ej.: finput = open(’[Link]’,’r’) Apertura de ’[Link]’ para lectura
print(’Nombre de archivo: ’,[Link])
. Cierre de archivos con “close”
Ej.: [Link]() # Cierra el archivo con nombre de referencia finput
14/35
Universidade da Coruña - E.T.S. Enxeñerı́a de Camiños, Canais e Portos
Introducción Estructura Operadores Control Ficheros Estr. datos Funciones Módulos NumPy CMD Bibl. y Ej.
5.2- Lectura y escritura en archivos
. Escritura de datos
Ej.:
foutput = open(’[Link]’,’w’)
[Link](’Escribimos un texto’) # Escribimos un texto
[Link](’Texto con valor ’,v,’ intercalado’) # Escribimos texto con un
# valor v intercalado
[Link](’Texto y {:5d},{:15.6e}’.format(n,v)) # Escribimos texto con valores
# intercalados con formato
El formato puede adoptar alguno de los siguientes tipos de formato (entre otros):
{:5d} Valor entero con 5 dı́gitos
{:15.6e} Valor real en notación cientı́fica con 15 dı́gitos y 6 decimales
{:s} Cadena de caracteres (string)
15/35
Universidade da Coruña - E.T.S. Enxeñerı́a de Camiños, Canais e Portos
Introducción Estructura Operadores Control Ficheros Estr. datos Funciones Módulos NumPy CMD Bibl. y Ej.
5.2- Lectura y escritura en archivos
. Lectura de datos (ver apartado de Estructuras de datos)
Ej.: finput = open(’[Link]’,’r’)
t = [Link]() # Lee una linea completa del archivo y
# la guarda en el string “t”.
tint = [Link]() # Divide el string palabra a palabra y
# crea una lista (vector) de strings.
n = int(tint[0]) # Convierte el primer campo de la lı́nea en
# un entero y lo guarda en “n”.
x = float(tint[1]) # Convierte el segundo campo de la lı́nea
# en un real y lo guarda en “x”.
La estructura “finput” dispone de más funciones asociadas que se pueden utilizar.
Estas funciones se pueden consultar en la documentación oficial de Python
([Link])
16/35
Universidade da Coruña - E.T.S. Enxeñerı́a de Camiños, Canais e Portos
Introducción Estructura Operadores Control Ficheros Estr. datos Funciones Módulos NumPy CMD Bibl. y Ej.
5.3- Estándar input y output
. Entrada de datos estándar
t = input(’Mensaje previo’) # El mensaje previo es opcional
almacena como cadena de caracteres (por defecto) en “t” la entrada de datos
Opcionalmente se puede cambiar el tipo de dato como:
x = float(input(’Mensaje previo’))
. Si se desea leer la información de forma binaria se puede utilizar:
t = [Link](b) # Lee “b” bytes de la entrada estándar y
# los almacena como string en “t”.
Para ello es necesario importar antes el módulo “sys” mediante import sys.
17/35
Universidade da Coruña - E.T.S. Enxeñerı́a de Camiños, Canais e Portos
Introducción Estructura Operadores Control Ficheros Estr. datos Funciones Módulos NumPy CMD Bibl. y Ej.
5.3- Estándar input y output
. Saı́da de datos estándar (introduce salto de lı́nea al final por defecto)
print(’Mensaje texto’,variables) # Se pueden combinar separados por comas
Ej.:
print(’r = ’,r) # Imprime el texto y el valor de la variable
print(’r = {:e}’.format(r)) # La variable se muestra con notación cientı́fica
print(’r = {:25.16e}’.format(r)) # La variable se muestra con notación cientı́fica,
# 25 dı́gitos y 16 decimales
print(’n = {:5d}, r = {:25.16e}’.format(n,r)) # n como entera y r como real
print(’Nombre = {:s}’.format(str name)) # muestra texto y string encadenados
print(’Nombre = ’ + str nombre) # equivalente al anterior
. Si se desea escribir la información de forma binaria se puede utilizar:
[Link](’x = {:f}’.format(x)) # Igual que print pero sin salto al final.
Para ello es necesario importar antes el módulo “sys” mediante import sys.
18/35
Universidade da Coruña - E.T.S. Enxeñerı́a de Camiños, Canais e Portos
Introducción Estructura Operadores Control Ficheros Estr. datos Funciones Módulos NumPy CMD Bibl. y Ej.
5.3- Estándar input y output
. Saı́da de datos estándar (continuación)
Otras opciones de escritura son:
print(r’\n r’) # No interpreta los caracteres especiales tipo ’\n’.
print(f’r = x’) # Intercala el valor de la variable x (indicada entre llaves).
Ejemplo de lectura de stdin lı́nea a lı́nea:
import sys
for line in [Link]:
if ’Exit’ == [Link]():
break
print(’Linea leida: ****{:s}****’.format(line))
print(’Done ’)
19/35
Universidade da Coruña - E.T.S. Enxeñerı́a de Camiños, Canais e Portos
Introducción Estructura Operadores Control Ficheros Estr. datos Funciones Módulos NumPy CMD Bibl. y Ej.
6.1- Listas
Listas (forma general de vectores)
. Se pueden definir como: lista = [1, 4, 9, 16, 25]
. Pueden contener valores de tipos diferentes, aunque no es lo habitual
. Se pueden segmentar e indexar al igual que los strings (e.g. lista[:])
. Se pueden concatenar con el sı́mbolo “+”
. Se pueden añadir términos a la lista como: [Link](valor)
. Se pueden eliminar partes de una lista como: lista[2:5] = [] (elimina componentes
2, 3 y 4)
. len(lista) indica el número de elementos de la lista
20/35
Universidade da Coruña - E.T.S. Enxeñerı́a de Camiños, Canais e Portos
Introducción Estructura Operadores Control Ficheros Estr. datos Funciones Módulos NumPy CMD Bibl. y Ej.
6.1- Listas
Comandos más habituales de modificación de listas:
. [Link](x) → Agrega un ı́tem al final de la lista list
. [Link](lista2) → Extiende la lista list agregándole todos los ı́tems de lista2
. [Link](i, x) → Inserta el ı́tem x justo antes de la posición i de la lista list
. [Link](x) → Quita el primer ı́tem de la lista list cuyo valor sea x. Si no existe
indica un error.
. [Link]() → Elimina todos los elementos de la lista list
. [Link](x) → Retorna el número de veces que x aparece en la lista list
. del list[a:b] →
21/35
Universidade da Coruña - E.T.S. Enxeñerı́a de Camiños, Canais e Portos
Introducción Estructura Operadores Control Ficheros Estr. datos Funciones Módulos NumPy CMD Bibl. y Ej.
6.1- Listas
Formas matriciales
. Se indican como listas dentro de otra lista.
. Se almacenan por filas.
. Cada fila puede tener diferente número de elementos.
Ejemplo de matriz:
matriz = [[11,12], [21,22,23], [31,32,33]]
. Luego se pueden operar como:
nfilas = len(matriz)
for i in range(nfilas):
print(matriz[i][-1]) # Muestra el último valor de cada fila.
. La gestión de matrices se simplifica con las librerı́as del módulo NumPy.
22/35
Universidade da Coruña - E.T.S. Enxeñerı́a de Camiños, Canais e Portos
Introducción Estructura Operadores Control Ficheros Estr. datos Funciones Módulos NumPy CMD Bibl. y Ej.
6.2- Strings (Cadenas de caracteres)
Strings
. Las cadenas de caracteres (strings) se encierran entre comillas simples o dobles
(indistintamente)
. Las cadenas de caracteres pueden contener varias lı́neas si se definen mediante
triple comilla
. Las cadenas de caracteres colocadas una a continuación de la otra se concatenan
automáticamente. Con variables no funciona de este modo.
. Variables tipo string y textos pueden concatenarse con “+”
. Se puede hacer referencia a posiciones dentro de un string o a porciones del
mismo como:
string[4:6] Caracteres desde el 4 (inlcuido) hasta el 6 (excluido)
string[4:] Caracteres desde el 4 hasta el final del string
string[:4] Caracteres desde el inicio hasta el 4 (excluido)
string[-2] (segundo caracter desde el final)
. Los string no se pueden modificar parcialmente.
. Para modificarlo se compone un nuevo string con los cambios incorporados
23/35
Universidade da Coruña - E.T.S. Enxeñerı́a de Camiños, Canais e Portos
Introducción Estructura Operadores Control Ficheros Estr. datos Funciones Módulos NumPy CMD Bibl. y Ej.
7.1- Definición y utilización de funciones
Definición de funciones
. Las funciones se definen como:
def nombre funcion(lista argumentos):
Todas las instrucciones de esa función deben ir con el correspondiente sangrado
El paso de argumentos se hace por valor de la referencia:
X De objetos y listas se envı́an copias de las referencias.
X De variables se envı́an copias de los valores (los cambios no permanecen)
La llamada a la función desde el programa principal se realiza como:
valores retorno = nombre funcion(lista argumentos)
. La función tiene que estar definida en el archivo de comandos antes de ser
llamada.
24/35
Universidade da Coruña - E.T.S. Enxeñerı́a de Camiños, Canais e Portos
Introducción Estructura Operadores Control Ficheros Estr. datos Funciones Módulos NumPy CMD Bibl. y Ej.
7.1- Definición y utilización de funciones
. Definición de las funciones
Las funciones se definen mediante el comando “def” como:
def nombre funcion( lista de variables):
Y a continuación se indican los comandos propios de la función.
Todas las sentencias de la función deben ir indentadas 4 espacios.
Al final de la función si existen valores de retorno se indican como:
return valor1, valor2, etc.
Ejemplo:
def cuadrado(x):
a=x*x
return a
..
.
z = cuadrado(x)
La sentencia return puede omitirse si no hay valores de retorno.
25/35
Universidade da Coruña - E.T.S. Enxeñerı́a de Camiños, Canais e Portos
Introducción Estructura Operadores Control Ficheros Estr. datos Funciones Módulos NumPy CMD Bibl. y Ej.
7.2- Uso avanzado de funciones
. Funciones con valores por omisión (por defecto):
Es opcional especificar los valores. Si no se espefican se adoptan los valores por
defecto
def ask ok(prompt, retries=4, reminder=’Por favor, intentelo de nuevo!’):
while True:
ok = input(prompt)
if ok in (’y’, ’ye’, ’yes’):
return True
if ok in (’n’, ’no’, ’nop’, ’nope’):
return False
retries = retries - 1
if retries ¡ 0:
print(’Respuesta de usuario invalida’)
print(reminder)
26/35
Universidade da Coruña - E.T.S. Enxeñerı́a de Camiños, Canais e Portos
Introducción Estructura Operadores Control Ficheros Estr. datos Funciones Módulos NumPy CMD Bibl. y Ej.
7.2- Uso avanzado de funciones
. Esta función se puede utilizar como:
ask ok(’Desea salir ahora?’) que si la respuesta no es válida repite la pregunta por
defecto 4 veces mostrando el mensaje: “Por favor, intentelo de nuevo!”
ask ok(’Desea salir ahora?’,2) que si la respuesta no es válida repite la pregunta 2
veces mostrando el mensaje: “Por favor, intentelo de nuevo!”
ask ok(’Desea salir ahora?’,2, ’Respuesta incorrecta’) que si la respuesta no es
válida repite la pregunta 2 veces mostrando el mensaje: “Respuesta incorrecta”
. Los valores por omisión (por defecto) se asignan una sola vez cuando se crea la
función.
27/35
Universidade da Coruña - E.T.S. Enxeñerı́a de Camiños, Canais e Portos
Introducción Estructura Operadores Control Ficheros Estr. datos Funciones Módulos NumPy CMD Bibl. y Ej.
8.1- Incorporación de módulos internos
Incorporación de módulos internos:
. Los programas Python pueden incorporar funcionalidades a través de módulos
internos
. Los módulos internos se añaden mediante la función import como:
import modulo interno
. La importación se suele hacer al principio del programa
. Los módulos incorporados se comportan como objetos formados tanto por
variables como por funciones:
resultado = [Link](valores)
[Link] propio
. Algunos de los módulos propios más habituales de Python son:
sys, math, random
28/35
Universidade da Coruña - E.T.S. Enxeñerı́a de Camiños, Canais e Portos
Introducción Estructura Operadores Control Ficheros Estr. datos Funciones Módulos NumPy CMD Bibl. y Ej.
8.2- Incorporación de módulos externos
Incorporación de módulos externos (librerı́as):
. Los programas Python pueden incorporar funcionalidades a través de módulos
externos.
. Los módulos externos son ficheros (*.py) y se añaden mediante import como:
import modulo ext
. La importación se suele hacer al principio del programa.
. El intérprete busca el módulo en el sistema siguiendo este orden:
Comprueba si es un módulo interno del sistema (listados en listed in
[Link] module names)
Comprueba si hay un archivo modulo [Link] en la lista de carpetas indicada en
[Link]
La lista [Link] incluye la propia carpeta de ejecución del script.
. Los módulos incorporados se comportan como objetos formados por funciones:
resultado = [Link](valores)
. Algunos de los módulos externos más habituales de Python son:
Matplotlib, SciPy, NumPy, ...
29/35
Universidade da Coruña - E.T.S. Enxeñerı́a de Camiños, Canais e Portos
Introducción Estructura Operadores Control Ficheros Estr. datos Funciones Módulos NumPy CMD Bibl. y Ej.
9.1- Funciones más habituales
Funciones más habituales del módulo NumPy
. Antes de empezar importamos el módulo NumPy:
import numpy as np # Lo renombramos por comodidad como np
. Y ya podemos utilizar funciones especı́ficas de NumPy:
ones(shape,dtype) “Array” de unos formado por “shape” elementos.
m real = [Link](shape=(2,3),dtype=’float64’)
m real = [Link]((2,3),’float64’) # Equivalente al anterior
m ent = [Link](shape=(3,4),dtype=’int32’)
zeros(shape, dtype) “Array” de ceros compuesto de “shape” elementos.
m real = [Link](shape=(2,3),dtype=’float64’)
m real = [Link]((2,3),’float64’) # Equivalente al anterior
m ent = [Link](shape=(3,4),dtype=’int32’)
m ent = [Link](range(1,20), dtype=’int64’)
m real = [Link]([x**2 for x in range(20)], dtype=’float64’)
meshgrid(x,y) Genera una malla 2D combinando dos arrays x, y.
30/35
Universidade da Coruña - E.T.S. Enxeñerı́a de Camiños, Canais e Portos
Introducción Estructura Operadores Control Ficheros Estr. datos Funciones Módulos NumPy CMD Bibl. y Ej.
9.2- Lectura de datos de archivos txt
Carga de datos de un archivo:
matriz = [Link](’[Link]’, delimiter = ’ ’)
. De un array existente podemos obtener información con:
[Link] Proporciona el número de dimensiones de nuestro array.
[Link] Es un objeto que describe el tipo de elementos del array.
[Link] Devuelve la dimensión del array (para matrices en una tupla)
31/35
Universidade da Coruña - E.T.S. Enxeñerı́a de Camiños, Canais e Portos
Introducción Estructura Operadores Control Ficheros Estr. datos Funciones Módulos NumPy CMD Bibl. y Ej.
9.3- Operaciones con array
Operaciones con “array”:
. Si los arrays se generan con funciones de NumPy las operaciones son muy
sencillas:
Suma: c = a + b # Suma de “arrays” (matrices o vectores)
Producto escalar: c = [Link](a,b) # Producto algebraico de “arrays”
Producto vectorial: c = [Link](a,b) # Producto vectorial de “array”
Producto componente a componente: c = a*b # Producto elemento a elemento
Transpuesta: c = [Link](a) # Transpuesta del “array”
Copia: mc = [Link](ma) # Copia ma en mb
32/35
Universidade da Coruña - E.T.S. Enxeñerı́a de Camiños, Canais e Portos
Introducción Estructura Operadores Control Ficheros Estr. datos Funciones Módulos NumPy CMD Bibl. y Ej.
9.3- Operaciones con array
Operaciones con “array”:
. Componente a componente con bucles:
for f in M: # f es una fila de M (lista)
for x in f: # x es la componente de la fila f
print(x, end=’ ’)
print()
for i, f in enumerate(M): # i = indice fila, f = fila de M (lista)
for j, x in enumerate(f):
M[i, j] *= x # Eleva al cuadrado cada componente
print(M)
for j in range([Link][1]): # Gestion de datos por columnas (ineficiente)
for i in range([Link][0]): # [Link][0] indica el numero de filas de m2
print(m2[i,j])
print()
33/35
Universidade da Coruña - E.T.S. Enxeñerı́a de Camiños, Canais e Portos
Introducción Estructura Operadores Control Ficheros Estr. datos Funciones Módulos NumPy CMD Bibl. y Ej.
10.1- Información desde el command line
Incorporación de información del command line:
. La incorporación de información desde el command line es muy similar a la de C.
. Se utiliza de forma incluso más sencilla, pero opaca.
. En la terminal se ejecuta como: python [Link] campo 1 campo 2
. Para ello es necesario incorporar el módulo “sys” como: import sys
. [Link][i] devuelve un string con el campo i del command line:
[Link][0] nombre del programa Python en ejecución (e.g. [Link])
[Link][1] primer campo del command line (e.g. campo 1)
. El número de campos introducidos se puede obtener mediante:
argc = len([Link])
34/35
Universidade da Coruña - E.T.S. Enxeñerı́a de Camiños, Canais e Portos
Introducción Estructura Operadores Control Ficheros Estr. datos Funciones Módulos NumPy CMD Bibl. y Ej.
11.1- Bibliografı́a y ejemplos
La información de este breve manual se ha extraı́do de:
. La web oficial del Python: [Link]
. La web oficial del módulo NumPy: [Link]
Los ejemplos de aplicación se han obtenido de diversos ejemplos de aplicación
en múltiples páginas web y de desarrollo propio
Se pueden encontrar ejemplos en el apartado de Software de la página web:
[Link] itop/503/[Link]
That’s All Folks !!!
35/35
Universidade da Coruña - E.T.S. Enxeñerı́a de Camiños, Canais e Portos