4 Python GMNI
4 Python GMNI
4 Python GMNI
Programación en Python
para ingenierı́a
J. Parı́s, F. Navarrina & GMNI
Índice
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.
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.
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.
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.
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.
. 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)
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.
. Clases:
Se definen como:
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.
. 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.
. Operadores relacionales:
Se escriben al igual que en C entre espacios:
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
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
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.
. 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’)
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.
match option:
case 1:
print(’Option 1’)
case 2:
print(’Option 2’)
case 3:
print(’Option 3’)
case :
print(’Non specified option’)
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.
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.
. Escritura de datos
Ej.:
foutput = open(’resultados.txt’,’w’)
foutput.write(’Escribimos un texto’) # Escribimos un texto
foutput.write(’Texto con valor ’,v,’ intercalado’) # Escribimos texto con un
# valor v intercalado
foutput.write(’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.
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.
x = float(input(’Mensaje previo’))
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.
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
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.
import sys
for line in sys.stdin:
if ’Exit’ == line.rstrip():
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
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
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.
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:
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.
Ejemplo:
def cuadrado(x):
a=x*x
return a
..
.
z = cuadrado(x)
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.
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!”
. 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.
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.
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.
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.
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.
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.
35/35
Universidade da Coruña - E.T.S. Enxeñerı́a de Camiños, Canais e Portos