Programación en Java -...
Transcript of Programación en Java -...
![Page 1: Programación en Java - personales.unican.espersonales.unican.es/corcuerp/python/Slides/IntroPython.pdf · Python 2 Objetivos • Revisión de la programación en Python • Funciones](https://reader031.fdocuments.co/reader031/viewer/2022021612/5ba5cc8109d3f266618d150b/html5/thumbnails/1.jpg)
Introducción a la programación en Python
Pedro CorcueraDpto. Matemática Aplicada y Ciencias de la ComputaciónUniversidad de Cantabria
![Page 2: Programación en Java - personales.unican.espersonales.unican.es/corcuerp/python/Slides/IntroPython.pdf · Python 2 Objetivos • Revisión de la programación en Python • Funciones](https://reader031.fdocuments.co/reader031/viewer/2022021612/5ba5cc8109d3f266618d150b/html5/thumbnails/2.jpg)
Python 2
Objetivos
• Revisión de la programación en Python• Funciones y Módulos • Programación orientada a objetos• Estructuras de datos
![Page 3: Programación en Java - personales.unican.espersonales.unican.es/corcuerp/python/Slides/IntroPython.pdf · Python 2 Objetivos • Revisión de la programación en Python • Funciones](https://reader031.fdocuments.co/reader031/viewer/2022021612/5ba5cc8109d3f266618d150b/html5/thumbnails/3.jpg)
Python 3
Índice
• Introducción• Tipos de datos• Condicionales y ciclos• Arrays• Entrada y Salida• Funciones • Módulos• Programación orientada a objetos• Búsqueda y ordenación• Pilas, Colas
![Page 4: Programación en Java - personales.unican.espersonales.unican.es/corcuerp/python/Slides/IntroPython.pdf · Python 2 Objetivos • Revisión de la programación en Python • Funciones](https://reader031.fdocuments.co/reader031/viewer/2022021612/5ba5cc8109d3f266618d150b/html5/thumbnails/4.jpg)
Python 4
¿Qué es Python?
• Python es un lenguaje de programación de alto nivel multiplataforma (Windows, MacOS, Linux). Creado por Guido van Rossum (1991).
• Es sencillo de aprender y de entender.• Los archivos de python tienen la extensión .py
– Archivos de texto que son interpretados por el compilador. Para ejecutar programas en Python es necesario el intérprete de python, y el código a ejecutar.
• Python dispone de muchas librerías para todo tipo de funciones.
![Page 5: Programación en Java - personales.unican.espersonales.unican.es/corcuerp/python/Slides/IntroPython.pdf · Python 2 Objetivos • Revisión de la programación en Python • Funciones](https://reader031.fdocuments.co/reader031/viewer/2022021612/5ba5cc8109d3f266618d150b/html5/thumbnails/5.jpg)
Python 5
Instalación de Python
• La última versión de Python es la 3. • Sitio oficial de descargas.• Sitio oficial de documentación
![Page 6: Programación en Java - personales.unican.espersonales.unican.es/corcuerp/python/Slides/IntroPython.pdf · Python 2 Objetivos • Revisión de la programación en Python • Funciones](https://reader031.fdocuments.co/reader031/viewer/2022021612/5ba5cc8109d3f266618d150b/html5/thumbnails/6.jpg)
Python 6
Instalación de Python
• La última versión de Python es la 3. • Sitio oficial de descargas.
– Con ello se instala el intérprete Python, IDLE (Integrated Development and Learning Environment), and Tkinter.
– Se recomienda incluir python en la variable de entorno PATH
• Sitio oficial de documentación
![Page 7: Programación en Java - personales.unican.espersonales.unican.es/corcuerp/python/Slides/IntroPython.pdf · Python 2 Objetivos • Revisión de la programación en Python • Funciones](https://reader031.fdocuments.co/reader031/viewer/2022021612/5ba5cc8109d3f266618d150b/html5/thumbnails/7.jpg)
Python 7
Instalación de Librerías
• Para utilizar las librerías del libro de referencia es necesario instalar las siguientes librerías:– NumPy (>python -m pip install numpy)– Pygame (>python -m pip install pygame)
• Descargar la librería introcs-1.0.zip. Descomprimir en un directorio y ejecutar, desde una ventana de Símbolo de Sistema, el comando:>python setup.py install
• Comprobar en un Python prompt, escribiendo>>> import stdio (No debe generarse errores)
![Page 8: Programación en Java - personales.unican.espersonales.unican.es/corcuerp/python/Slides/IntroPython.pdf · Python 2 Objetivos • Revisión de la programación en Python • Funciones](https://reader031.fdocuments.co/reader031/viewer/2022021612/5ba5cc8109d3f266618d150b/html5/thumbnails/8.jpg)
Python 8
Configuración y verificación
• Configuración de IDLE: – Ejecutar IDLE de Python y en Options→Configure IDLE
→ General →Open Edit Window. Click en Ok y cerrar.
• Escribir con IDLE el fichero holamundo.py import stdio# Escribe 'Hola, Mundo' en salida standard stdio.writeln('Hola, Mundo')
• En una ventana de comandos ejecutar con:>python holamundo.py
![Page 9: Programación en Java - personales.unican.espersonales.unican.es/corcuerp/python/Slides/IntroPython.pdf · Python 2 Objetivos • Revisión de la programación en Python • Funciones](https://reader031.fdocuments.co/reader031/viewer/2022021612/5ba5cc8109d3f266618d150b/html5/thumbnails/9.jpg)
Python 9
Descarga de programas de ejemplo
• Descargar con un navegador los programas de ejemplo (introcs-python.zip). – Descomprimir en un directorio y en una ventana de
comando ejecutar >python bouncingball.py
• Descargar los datos de ejemplo (introcs-data.zip) de los programas. Descomprimir en el directorio de los programas.
• Opcionalmente descargar la librería (stdlib-python.zip) para ver el código de los módulos.
![Page 10: Programación en Java - personales.unican.espersonales.unican.es/corcuerp/python/Slides/IntroPython.pdf · Python 2 Objetivos • Revisión de la programación en Python • Funciones](https://reader031.fdocuments.co/reader031/viewer/2022021612/5ba5cc8109d3f266618d150b/html5/thumbnails/10.jpg)
Python 10
Implementaciones alternativas de Python
• Existe implementaciones alternativas de Python:• IronPython (Python running on .NET)• Jython (Python running on the Java Virtual Machine)• PyPy (A fast python implementation with a JIT compiler)• Stackless Python (Branch of CPython with microthreads)• MicroPython (Python running on micro controllers)
![Page 11: Programación en Java - personales.unican.espersonales.unican.es/corcuerp/python/Slides/IntroPython.pdf · Python 2 Objetivos • Revisión de la programación en Python • Funciones](https://reader031.fdocuments.co/reader031/viewer/2022021612/5ba5cc8109d3f266618d150b/html5/thumbnails/11.jpg)
Python 11
Implementaciones alternativas de Python
• Hay paquetes que incluyen librerías especializadas:• ActiveState ActivePython (scientific computing modules)• pythonxy (Scientific-oriented Python Distribution)• winpython (scientific Python distribution for Windows)• Conceptive Python SDK (business, desktop and database)• Enthought Canopy (for scientific computing)• PyIMSL Studio (for numerical analysis)• Anaconda (for data management, analysis and
visualization of large data sets)• eGenix PyRun (portable Python runtime)
• Versión cloud:• PythonAnywhere (run Python in the browser)
![Page 12: Programación en Java - personales.unican.espersonales.unican.es/corcuerp/python/Slides/IntroPython.pdf · Python 2 Objetivos • Revisión de la programación en Python • Funciones](https://reader031.fdocuments.co/reader031/viewer/2022021612/5ba5cc8109d3f266618d150b/html5/thumbnails/12.jpg)
Python 12
Instalación del gestor de paquetes Anaconda
• Descargar anaconda para el SO y versión Python deseado.
• Dispone de varias utilidades que facilitan el trabajo. Por ejemplo, con Jupyter notebook se puede trabajar con Python de forma interactiva.
![Page 13: Programación en Java - personales.unican.espersonales.unican.es/corcuerp/python/Slides/IntroPython.pdf · Python 2 Objetivos • Revisión de la programación en Python • Funciones](https://reader031.fdocuments.co/reader031/viewer/2022021612/5ba5cc8109d3f266618d150b/html5/thumbnails/13.jpg)
Python 13
Tutoriales
• La página de documentación de Python ofrece una serie de tutoriales según la versión.
• Una alternativa que ofrece una visión del lenguaje, algoritmos y estructuras de datos es la página del libro Introduction to Programming in Python de Sedgewick y Wayne.
![Page 14: Programación en Java - personales.unican.espersonales.unican.es/corcuerp/python/Slides/IntroPython.pdf · Python 2 Objetivos • Revisión de la programación en Python • Funciones](https://reader031.fdocuments.co/reader031/viewer/2022021612/5ba5cc8109d3f266618d150b/html5/thumbnails/14.jpg)
Python 14
Tipos de datos
• Un tipo de dato es el conjunto de valores y el conjunto de operaciones definidas en esos valores.
![Page 15: Programación en Java - personales.unican.espersonales.unican.es/corcuerp/python/Slides/IntroPython.pdf · Python 2 Objetivos • Revisión de la programación en Python • Funciones](https://reader031.fdocuments.co/reader031/viewer/2022021612/5ba5cc8109d3f266618d150b/html5/thumbnails/15.jpg)
Python 15
Definiciones
• Objetos. Todos los datos en un programa Python se representan por objetos. Cada objeto se caracteriza por su identidad, tipo y valor.
• Referencias a objetos.• Literales.• Operadores.• Identificadores.• Variables.• Expresiones.
![Page 16: Programación en Java - personales.unican.espersonales.unican.es/corcuerp/python/Slides/IntroPython.pdf · Python 2 Objetivos • Revisión de la programación en Python • Funciones](https://reader031.fdocuments.co/reader031/viewer/2022021612/5ba5cc8109d3f266618d150b/html5/thumbnails/16.jpg)
Python 16
Palabras reservadas
• Las palabras reservadas no se pueden usar como identificadores.
![Page 17: Programación en Java - personales.unican.espersonales.unican.es/corcuerp/python/Slides/IntroPython.pdf · Python 2 Objetivos • Revisión de la programación en Python • Funciones](https://reader031.fdocuments.co/reader031/viewer/2022021612/5ba5cc8109d3f266618d150b/html5/thumbnails/17.jpg)
Python 17
Strings
• Tipo de dato (str) para representar cadenas de caracteres, para uso en procesado de textos.
– Para convertir números en strings se aplica la función str()
– Para convertir strings a números se aplica int() o float()
![Page 18: Programación en Java - personales.unican.espersonales.unican.es/corcuerp/python/Slides/IntroPython.pdf · Python 2 Objetivos • Revisión de la programación en Python • Funciones](https://reader031.fdocuments.co/reader031/viewer/2022021612/5ba5cc8109d3f266618d150b/html5/thumbnails/18.jpg)
Python 18
Integers - Enteros
• Tipo de dato (int) para representar enteros o números naturales.
– Se puede expresar enteros en hexadecimal con el prefijo 0x (o 0X); en octal con el prefijo 0o (o 0O); y en binario con prefijo 0b (o 0B). Ejemplo: 0x1abc, 0X1ABC, 0o1776, 0b11000011.
– A diferencia de otros lenguajes, los enteros en Python son de tamaño ilimitado.
![Page 19: Programación en Java - personales.unican.espersonales.unican.es/corcuerp/python/Slides/IntroPython.pdf · Python 2 Objetivos • Revisión de la programación en Python • Funciones](https://reader031.fdocuments.co/reader031/viewer/2022021612/5ba5cc8109d3f266618d150b/html5/thumbnails/19.jpg)
Python 19
Floating-Point Numbers - Reales
• Tipo de dato (float) para representar números en punto flotantes, para uso en aplicaciones científicas o comerciales
– Para obtener el máximo valor entero usar sys.float_info.max
– Tienen una representación IEEE de 64 bits. Típicamente tienen 15-17 dígitos decimales de precisión
![Page 20: Programación en Java - personales.unican.espersonales.unican.es/corcuerp/python/Slides/IntroPython.pdf · Python 2 Objetivos • Revisión de la programación en Python • Funciones](https://reader031.fdocuments.co/reader031/viewer/2022021612/5ba5cc8109d3f266618d150b/html5/thumbnails/20.jpg)
Python 20
Números complejos
• Tipo de dato (complex) para representar números complejos de la forma a + bj
>>> x = 1 + 2j # Assign var x to a complex number>>> x # Display x (1+2j)>>> x.real # Get the real part 1.0>>> x.imag # Get the imaginary part 2.0>>> type(x) # Get type <class 'complex'>>>> x * (3 + 4j) # Multiply two complex numbers(-5+10j)>>> z = complex(2, -3) # Assign a complex number
![Page 21: Programación en Java - personales.unican.espersonales.unican.es/corcuerp/python/Slides/IntroPython.pdf · Python 2 Objetivos • Revisión de la programación en Python • Funciones](https://reader031.fdocuments.co/reader031/viewer/2022021612/5ba5cc8109d3f266618d150b/html5/thumbnails/21.jpg)
Python 21
Booleans
• Tipo de dato (bool) que tiene dos valores: True y False
![Page 22: Programación en Java - personales.unican.espersonales.unican.es/corcuerp/python/Slides/IntroPython.pdf · Python 2 Objetivos • Revisión de la programación en Python • Funciones](https://reader031.fdocuments.co/reader031/viewer/2022021612/5ba5cc8109d3f266618d150b/html5/thumbnails/22.jpg)
Python 22
Operadores aritméticos
Operador Descripción Ejemplos+ Addition- Subtraction* Multiplication/ Float Division
(returns a float)1 / 2 ⇒ 0.5-1 / 2 ⇒ -0.5
// Integer Division(returns the floor integer)
1 // 2 ⇒ 0-1 // 2 ⇒ -18.9 // 2.5 ⇒ 3.0-8.9 // 2.5 ⇒ -4.0-8.9 // -2.5 ⇒ 3.0
** Exponentiation 2 ** 5 ⇒ 321.2 ** 3.4 ⇒ 1.858729691979481
% Modulus (Remainder) 9 % 2 ⇒ 1-9 % 2 ⇒ 19 % -2 ⇒ -1-9 % -2 ⇒ -19.9 % 2.1 ⇒ 1.5-9.9 % 2.1 ⇒ 0.6000000000000001
![Page 23: Programación en Java - personales.unican.espersonales.unican.es/corcuerp/python/Slides/IntroPython.pdf · Python 2 Objetivos • Revisión de la programación en Python • Funciones](https://reader031.fdocuments.co/reader031/viewer/2022021612/5ba5cc8109d3f266618d150b/html5/thumbnails/23.jpg)
Python 23
Operadores de comparación
• Los operadores de comparación se aplican a enteros y flotantes y producen un resultado booleano
in, not in x in y comprueba si x está contenido en la secuencia yis, is not x is y es True si x y y hacen referencia al mismo objeto
![Page 24: Programación en Java - personales.unican.espersonales.unican.es/corcuerp/python/Slides/IntroPython.pdf · Python 2 Objetivos • Revisión de la programación en Python • Funciones](https://reader031.fdocuments.co/reader031/viewer/2022021612/5ba5cc8109d3f266618d150b/html5/thumbnails/24.jpg)
Python 24
Operadores lógicos
• Se aplican a booleans. No hay exclusive-or (xor)
Operador Descripciónand Logical ANDor Logical ORnot Logical NOT
![Page 25: Programación en Java - personales.unican.espersonales.unican.es/corcuerp/python/Slides/IntroPython.pdf · Python 2 Objetivos • Revisión de la programación en Python • Funciones](https://reader031.fdocuments.co/reader031/viewer/2022021612/5ba5cc8109d3f266618d150b/html5/thumbnails/25.jpg)
Python 25
Operadores de bits
• Permiten operaciones a nivel de bits
Operador Descripción Ejemplox=0b10000001y=0b10001111
& bitwise AND x & y ⇒ 0b10000001| bitwise OR x | y ⇒ 0b10001111~ bitwise NOT (or negate) ~x ⇒ -0b10000010^ bitwise XOR x ^ y ⇒ 0b00001110<< bitwise Left-Shift (padded with zeros) x << 2 ⇒ 0b1000000100>> bitwise Right-Shift (padded with zeros) x >> 2 ⇒ 0b100000
![Page 26: Programación en Java - personales.unican.espersonales.unican.es/corcuerp/python/Slides/IntroPython.pdf · Python 2 Objetivos • Revisión de la programación en Python • Funciones](https://reader031.fdocuments.co/reader031/viewer/2022021612/5ba5cc8109d3f266618d150b/html5/thumbnails/26.jpg)
Python 26
Operadores de asignación
Operador Ejemplo Equivalente a= x = 5 x = 5+= x += 5 x = x + 5-= x -= 5 x = x - 5*= x *= 5 x = x * 5/= x /= 5 x = x / 5%= x %= 5 x = x % 5//= x //= 5 x = x // 5**= x **= 5 x = x ** 5&= x &= 5 x = x & 5|= x |= 5 x = x | 5^= x ^= 5 x = x ^ 5>>= x >>= 5 x = x >> 5<<= x <<= 5 x = x << 5
b, c, d = 123, 4.5, 'Hello' # asignación multiple
![Page 27: Programación en Java - personales.unican.espersonales.unican.es/corcuerp/python/Slides/IntroPython.pdf · Python 2 Objetivos • Revisión de la programación en Python • Funciones](https://reader031.fdocuments.co/reader031/viewer/2022021612/5ba5cc8109d3f266618d150b/html5/thumbnails/27.jpg)
Python 27
Funciones embebidas
• Python contiene varias funciones embebidas para números:– Funciones matemáticas: round(), pow(), abs().– Funciones de conversion de tipos: int(), float(), str(), bool(); y type() para obtener el tipo.
– Funciones de conversión de cambio de base: hex(), bin(), oct().
![Page 28: Programación en Java - personales.unican.espersonales.unican.es/corcuerp/python/Slides/IntroPython.pdf · Python 2 Objetivos • Revisión de la programación en Python • Funciones](https://reader031.fdocuments.co/reader031/viewer/2022021612/5ba5cc8109d3f266618d150b/html5/thumbnails/28.jpg)
Python 28
Cadenas de caracteres - string
• Las cadenas de caracteres pueden estar delimitadas por un par de single quotes ('...'), double quotes ("..."), triple single quotes ('''...'''), or triple double quotes ("""...""").
• Para poner un single quote (') dentro de una cadena single-quoted, se require el uso de escape sequence \'. De forma similar, un double quote (") dentro de una cadena, usar \". No es necesario un escape sequence para poner un single quote dentro de double-quoted string; o un double quote dentro de single-quoted string.
![Page 29: Programación en Java - personales.unican.espersonales.unican.es/corcuerp/python/Slides/IntroPython.pdf · Python 2 Objetivos • Revisión de la programación en Python • Funciones](https://reader031.fdocuments.co/reader031/viewer/2022021612/5ba5cc8109d3f266618d150b/html5/thumbnails/29.jpg)
Python 29
Cadenas de caracteres - string
• Una cadena triple-single-quoted o triple-double-quoted puede ocupar varias líneas. Las cadenas triple-quoted son útiles para colocar comentarios multilínea, HTML y otros códigos.
• Python 3 usa el conjunto de caracteres Unicode.• Hay escape sequences para caracteres no
imprimibles, ejemplo: tab (\t), newline (\n), carriage return (\r).
• Los strings son immutables, es decir, su contenido no se puede modificar.
![Page 30: Programación en Java - personales.unican.espersonales.unican.es/corcuerp/python/Slides/IntroPython.pdf · Python 2 Objetivos • Revisión de la programación en Python • Funciones](https://reader031.fdocuments.co/reader031/viewer/2022021612/5ba5cc8109d3f266618d150b/html5/thumbnails/30.jpg)
Python 30
Funciones y operadores para cadenas de caracteres
Función/Operador Descripción Ejemploss = 'Hello'
len() Length len(s) ⇒ 5in Contain? 'ell' in s ⇒ True
'he' in s ⇒ False+ Concatenation s + '!' ⇒ 'Hello!'* Repetition s * 2 ⇒ 'HelloHello'[i], [-i] Indexing to get a character.
The front index begins at 0; back index begins at -1 (=len()-1).
s[1] ⇒ 'e's[-4] ⇒ 'e'
[m:n], [m:], [:n], [m:n:step] Slicing to get a substring.From index m (included) to n (excluded) with an optional step size.The default m=0, n=-1, step=1.
s[1:3] ⇒ 'el's[1:-2] ⇒ 'el's[3:] ⇒ 'lo's[:-2] ⇒ 'Hel's[:] ⇒ 'Hello's[0:5:2] ⇒ 'Hlo'
![Page 31: Programación en Java - personales.unican.espersonales.unican.es/corcuerp/python/Slides/IntroPython.pdf · Python 2 Objetivos • Revisión de la programación en Python • Funciones](https://reader031.fdocuments.co/reader031/viewer/2022021612/5ba5cc8109d3f266618d150b/html5/thumbnails/31.jpg)
Python 31
Funciones específicas para cadenas de caracteres
• La clase str proporciona varias funciones miembro. Suponiendo que s es un objeto str:– s.strip(), s.rstrip(), s.lstrip(): the strip() strips the leading
and trailing whitespaces. The rstrip() strips the right (trailing) whitespaces; while lstrip() strips the left (leading) whitespaces.
– s.upper(), s.lower(), s.isupper(), s.islower()– s.find(s), s.index(s)– s.startswith(s)– s.endswith(s)– s.split(delimiter-str), delimiter-str.join(list-of-strings)
![Page 32: Programación en Java - personales.unican.espersonales.unican.es/corcuerp/python/Slides/IntroPython.pdf · Python 2 Objetivos • Revisión de la programación en Python • Funciones](https://reader031.fdocuments.co/reader031/viewer/2022021612/5ba5cc8109d3f266618d150b/html5/thumbnails/32.jpg)
Python 32
Conversión de tipos
• Explícita: uso de funciones int(), float(), str(), y round()
• Implícita: Python convierte automáticamente enteros y flotantes convenientemente.
![Page 33: Programación en Java - personales.unican.espersonales.unican.es/corcuerp/python/Slides/IntroPython.pdf · Python 2 Objetivos • Revisión de la programación en Python • Funciones](https://reader031.fdocuments.co/reader031/viewer/2022021612/5ba5cc8109d3f266618d150b/html5/thumbnails/33.jpg)
Python 33
Listas
• Python dispone de una estructura de datos potente incorporada lista (list), que se usa para arrays dinámicos.
• Se especifica encerrada entre corchetes.• Puede contener elementos de diferentes tipos.• Puede crecer y encogerse dinámicamente.• Los elementos se acceden mediante índice,
empezando por cero.• Hay funciones intrínsecas y operadores.
![Page 34: Programación en Java - personales.unican.espersonales.unican.es/corcuerp/python/Slides/IntroPython.pdf · Python 2 Objetivos • Revisión de la programación en Python • Funciones](https://reader031.fdocuments.co/reader031/viewer/2022021612/5ba5cc8109d3f266618d150b/html5/thumbnails/34.jpg)
Python 34
Operadores para listas
• Operador Descripción Ejemploslst = [8, 9, 6, 2]
in Contain? 9 in lst ⇒ True5 in lst ⇒ False
+ Concatenation lst + [5, 2]⇒ [8, 9, 6, 2, 5, 2]
* Repetition lst * 2⇒ [8, 9, 6, 2, 8, 9, 6, 2]
[i], [-i] Indexing to get an item.Front index begins at 0; back index begins at -1 (or len-1).
lst[1] ⇒ 9lst[-2] ⇒ 6lst[1] = 99 ⇒ modify an existing item
[m:n], [m:], [:n], [m:n:step] Slicing to get a sublist.From index m (included) to n (excluded) with an optional step size.The default m is 0, n is len-1.
lst[1:3] ⇒ [9, 6]lst[1:-2] ⇒ [9]lst[3:] ⇒ [2]lst[:-2] ⇒ [8, 9]lst[:] ⇒ [8, 9, 6, 2]lst[0:4:2] ⇒ [8, 6]newlst = lst[:] ⇒ copy the listlst[4:] = [1, 2] ⇒ modify a sub-list
del Delete one or more items(for mutable sequences only)
del lst[1] ⇒ lst is [8, 6, 2]del lst[1:] ⇒ lst is [8]del lst[:] ⇒ lst is [] (clear all items)
![Page 35: Programación en Java - personales.unican.espersonales.unican.es/corcuerp/python/Slides/IntroPython.pdf · Python 2 Objetivos • Revisión de la programación en Python • Funciones](https://reader031.fdocuments.co/reader031/viewer/2022021612/5ba5cc8109d3f266618d150b/html5/thumbnails/35.jpg)
Python 35
Funciones para listas
• Suponiendo que lst es un objeto list:– lst.append(item): append the given item behind the lst and return None; same as lst[len(lst):] = [item].– lst.extend(lst2): append the given list lst2 behind the lst and return None; same as lst[len(lst):] = lst2.– lst.insert(index, item): insert the given item before the index and return None. Hence, lst.insert(0, item) inserts before the first item of the
lst; lst.insert(len(lst), item) inserts at the end of the lst which is the same as lst.append(item).– lst.index(item): return the index of the first occurrence of item; or error.– lst.remove(item): remove the first occurrence of item from the lst and return None; or error.– lst.pop(): remove and return the last item of the lst.– lst.pop(index): remove and return the indexed item of the lst.– lst.clear(): remove all the items from the lst and return None; same as del lst[:].– lst.count(item): return the occurrences of item.– lst.reverse(): reverse the lst in place and return None.– lst.sort(): sort the lst in place and return None.– lst.copy(): return a copy of lst; same as lst[:].
Función Descripción Ejemploslst = [8, 9, 6, 2]
len() Length len(lst) ⇒ 4max(), min() Maximum and minimum value (for list of
numbers only)max(lst) ⇒ 9min(lst) ⇒ 2
sum() Sum (for list of numbers only) sum(lst) ⇒ 16
![Page 36: Programación en Java - personales.unican.espersonales.unican.es/corcuerp/python/Slides/IntroPython.pdf · Python 2 Objetivos • Revisión de la programación en Python • Funciones](https://reader031.fdocuments.co/reader031/viewer/2022021612/5ba5cc8109d3f266618d150b/html5/thumbnails/36.jpg)
Python 36
Tuplas
• Es similar a las listas excepto que es inmutable (como los string).
• Consiste en una serie de elementos separados por comas, encerrados entre paréntesis.
• Se puede convertir a listas mediante list(tupla).
![Page 37: Programación en Java - personales.unican.espersonales.unican.es/corcuerp/python/Slides/IntroPython.pdf · Python 2 Objetivos • Revisión de la programación en Python • Funciones](https://reader031.fdocuments.co/reader031/viewer/2022021612/5ba5cc8109d3f266618d150b/html5/thumbnails/37.jpg)
Python 37
Diccionarios
• Soportan pares llave-valor (también llamados name-value pairs, associative array, o mappings).
• Un diccionario se especifica encerrando entre llaves. La llave y el valor se separa por : con el formato {k1:v1, k2:v2, ...}
• A diferencia de las listas y tuplas que usan un índice entero para acceder a los elementos, los diccionarios se pueden indexar la llave.
![Page 38: Programación en Java - personales.unican.espersonales.unican.es/corcuerp/python/Slides/IntroPython.pdf · Python 2 Objetivos • Revisión de la programación en Python • Funciones](https://reader031.fdocuments.co/reader031/viewer/2022021612/5ba5cc8109d3f266618d150b/html5/thumbnails/38.jpg)
Python 38
Funciones para diccionarios
• Las más comunes son, suponiendo dct es un objeto dict:– dct.has_key()– dct.items(), dct.keys(), dct.values()– dct.clear()– dct.copy()– dct.get()– dct.update(dct2): merge the given dictionary dct2 into dct.
Override the value if key exists, else, add new key-value.– dct.pop()
![Page 39: Programación en Java - personales.unican.espersonales.unican.es/corcuerp/python/Slides/IntroPython.pdf · Python 2 Objetivos • Revisión de la programación en Python • Funciones](https://reader031.fdocuments.co/reader031/viewer/2022021612/5ba5cc8109d3f266618d150b/html5/thumbnails/39.jpg)
Python 39
Conjuntos - set
• Es una colección de objetos sin ordenar no duplicados.
• Un set se especifica encerrando los elementos entre entre llaves.
• Se puede pensar que un set es un dict de llaves sin valor asociado.
• Python tiene operadores set: & (intersection), | (union), - (difference) and ^ (exclusive-or).
![Page 40: Programación en Java - personales.unican.espersonales.unican.es/corcuerp/python/Slides/IntroPython.pdf · Python 2 Objetivos • Revisión de la programación en Python • Funciones](https://reader031.fdocuments.co/reader031/viewer/2022021612/5ba5cc8109d3f266618d150b/html5/thumbnails/40.jpg)
Python 40
Funciones y APIs
• Tipos de funciones: incorporado (int(), float(), str()),standard o librería (math.sqrt()) requiere importar el módulo donde se encuentra.
• API: application programming interface
![Page 41: Programación en Java - personales.unican.espersonales.unican.es/corcuerp/python/Slides/IntroPython.pdf · Python 2 Objetivos • Revisión de la programación en Python • Funciones](https://reader031.fdocuments.co/reader031/viewer/2022021612/5ba5cc8109d3f266618d150b/html5/thumbnails/41.jpg)
Python 41
Condicionales – if - else
• Cuando se requiere diferentes acciones para diferentes entradas
![Page 42: Programación en Java - personales.unican.espersonales.unican.es/corcuerp/python/Slides/IntroPython.pdf · Python 2 Objetivos • Revisión de la programación en Python • Funciones](https://reader031.fdocuments.co/reader031/viewer/2022021612/5ba5cc8109d3f266618d150b/html5/thumbnails/42.jpg)
Python 42
Condicionales – if -elif
• Cuando se tienen if anidados if - elif
![Page 43: Programación en Java - personales.unican.espersonales.unican.es/corcuerp/python/Slides/IntroPython.pdf · Python 2 Objetivos • Revisión de la programación en Python • Funciones](https://reader031.fdocuments.co/reader031/viewer/2022021612/5ba5cc8109d3f266618d150b/html5/thumbnails/43.jpg)
Python 43
Ciclos – while
• Instrucción que permite cálculos repetitivos.
import stdioimport sys# Accept positive integer n as a command-line argument. Write to# standard output a table showing the first n powers of two.n = int(sys.argv[1])power = 1i = 0while i <= n:
# Write the ith power of 2.stdio.writeln(str(i) + ' ' + str(power)) power = 2 * poweri = i + 1
# python powersoftwo.py 1 # 0 1# 1 2
while condition:indentedBlock
![Page 44: Programación en Java - personales.unican.espersonales.unican.es/corcuerp/python/Slides/IntroPython.pdf · Python 2 Objetivos • Revisión de la programación en Python • Funciones](https://reader031.fdocuments.co/reader031/viewer/2022021612/5ba5cc8109d3f266618d150b/html5/thumbnails/44.jpg)
Python 44
Función range
• La función range representa una secuencia de enteros. Tiene 3 argumentos:– Inicio del rango. Se asume 0 si no se especifica.– Final del rango, pero no incluído. Requerido.– Paso del rango. Se asume 1 si no se especifica.
for num in range(1,5):print(num)
1 2 3 4
![Page 45: Programación en Java - personales.unican.espersonales.unican.es/corcuerp/python/Slides/IntroPython.pdf · Python 2 Objetivos • Revisión de la programación en Python • Funciones](https://reader031.fdocuments.co/reader031/viewer/2022021612/5ba5cc8109d3f266618d150b/html5/thumbnails/45.jpg)
Python 45
Ciclos - for
• Es común tener ciclos con el mismo esquema: inicializar una variable índice en un valor, usar un ciclo while para comprobar una condición de salida sobre la variable índice que se modifica dentro del ciclo. La instrucción for es una forma simplificada.
# potencias de dos entre 1 y n leido en la linea de comandosimport stdioimport sys
n = int(sys.argv[1])power = 1for i in range(n+1):
stdio.writeln(str(i) + ' ' + str(power))
power *= 2
![Page 46: Programación en Java - personales.unican.espersonales.unican.es/corcuerp/python/Slides/IntroPython.pdf · Python 2 Objetivos • Revisión de la programación en Python • Funciones](https://reader031.fdocuments.co/reader031/viewer/2022021612/5ba5cc8109d3f266618d150b/html5/thumbnails/46.jpg)
Python 46
Instrucción break
• break termina el ciclo y sigue en la instrucción que sigue al ciclo.
![Page 47: Programación en Java - personales.unican.espersonales.unican.es/corcuerp/python/Slides/IntroPython.pdf · Python 2 Objetivos • Revisión de la programación en Python • Funciones](https://reader031.fdocuments.co/reader031/viewer/2022021612/5ba5cc8109d3f266618d150b/html5/thumbnails/47.jpg)
Python 47
Instrucción continue
• continue se usa para saltar el resto del código del ciclo y continuar con la siguiente iteración.
![Page 48: Programación en Java - personales.unican.espersonales.unican.es/corcuerp/python/Slides/IntroPython.pdf · Python 2 Objetivos • Revisión de la programación en Python • Funciones](https://reader031.fdocuments.co/reader031/viewer/2022021612/5ba5cc8109d3f266618d150b/html5/thumbnails/48.jpg)
Python 48
Ciclos
![Page 49: Programación en Java - personales.unican.espersonales.unican.es/corcuerp/python/Slides/IntroPython.pdf · Python 2 Objetivos • Revisión de la programación en Python • Funciones](https://reader031.fdocuments.co/reader031/viewer/2022021612/5ba5cc8109d3f266618d150b/html5/thumbnails/49.jpg)
Python 49
Arrays
• Es una estructura de datos que almacena una secuencia de objetos, normalmente del mismo tipo.
• El acceso a los elementos del array se basa en índices. En un array bidimensional se realiza con un par de índices.
• Las formas de procesar arrays en Python son:– Tipo de dato implícito Python.– Uso del módulo Python numpy.– Uso del módulo stdarray.
![Page 50: Programación en Java - personales.unican.espersonales.unican.es/corcuerp/python/Slides/IntroPython.pdf · Python 2 Objetivos • Revisión de la programación en Python • Funciones](https://reader031.fdocuments.co/reader031/viewer/2022021612/5ba5cc8109d3f266618d150b/html5/thumbnails/50.jpg)
Python 50
Arrays - ejemplo
x = [0.30, 0.60, 0.10]y = [0.50, 0.10, 0.40]total = 0.0for i in range(len(x)):
total += x[i]*y[i]
![Page 51: Programación en Java - personales.unican.espersonales.unican.es/corcuerp/python/Slides/IntroPython.pdf · Python 2 Objetivos • Revisión de la programación en Python • Funciones](https://reader031.fdocuments.co/reader031/viewer/2022021612/5ba5cc8109d3f266618d150b/html5/thumbnails/51.jpg)
Python 51
Arrays - stdarray
# suma de matricesc = stdarray.create2D(n, n, 0.0) for i in range(n):
for j in range(n):c[i][j] = a[i][j] + b[i][j]
![Page 52: Programación en Java - personales.unican.espersonales.unican.es/corcuerp/python/Slides/IntroPython.pdf · Python 2 Objetivos • Revisión de la programación en Python • Funciones](https://reader031.fdocuments.co/reader031/viewer/2022021612/5ba5cc8109d3f266618d150b/html5/thumbnails/52.jpg)
Python 52
Entrada - Salida
• Python dispone de funciones intrínsecas para lectura y escritura. Las más usadas para la entrada estándar son: input() y print()
• Desde la línea de comando se usa sys.argv.• El módulo stdio contiene varias funciones para
lectura y escritura.• El módulo stddraw permite crear y escribir dibujos.• El módulo stdaudio permite crear y reproducir
sonidos.
![Page 53: Programación en Java - personales.unican.espersonales.unican.es/corcuerp/python/Slides/IntroPython.pdf · Python 2 Objetivos • Revisión de la programación en Python • Funciones](https://reader031.fdocuments.co/reader031/viewer/2022021612/5ba5cc8109d3f266618d150b/html5/thumbnails/53.jpg)
Python 53
Standard Output
• El API de la parte del módulo stdio.py relativa a la salida estándar:
![Page 54: Programación en Java - personales.unican.espersonales.unican.es/corcuerp/python/Slides/IntroPython.pdf · Python 2 Objetivos • Revisión de la programación en Python • Funciones](https://reader031.fdocuments.co/reader031/viewer/2022021612/5ba5cc8109d3f266618d150b/html5/thumbnails/54.jpg)
Python 54
Escritura con formato
• Con stdio.writef() se puede escribir con formato:
![Page 55: Programación en Java - personales.unican.espersonales.unican.es/corcuerp/python/Slides/IntroPython.pdf · Python 2 Objetivos • Revisión de la programación en Python • Funciones](https://reader031.fdocuments.co/reader031/viewer/2022021612/5ba5cc8109d3f266618d150b/html5/thumbnails/55.jpg)
Python 55
Standard Input
• El API de la parte del módulo stdio.py relativa a la entrada estándar:
![Page 56: Programación en Java - personales.unican.espersonales.unican.es/corcuerp/python/Slides/IntroPython.pdf · Python 2 Objetivos • Revisión de la programación en Python • Funciones](https://reader031.fdocuments.co/reader031/viewer/2022021612/5ba5cc8109d3f266618d150b/html5/thumbnails/56.jpg)
Python 56
Standard Input
• Módulo stdio.py relativa a la entrada estándar:
![Page 57: Programación en Java - personales.unican.espersonales.unican.es/corcuerp/python/Slides/IntroPython.pdf · Python 2 Objetivos • Revisión de la programación en Python • Funciones](https://reader031.fdocuments.co/reader031/viewer/2022021612/5ba5cc8109d3f266618d150b/html5/thumbnails/57.jpg)
Python 57
Redirection
• Redirecting standard output to a file
• Redirecting standard input from a file
![Page 58: Programación en Java - personales.unican.espersonales.unican.es/corcuerp/python/Slides/IntroPython.pdf · Python 2 Objetivos • Revisión de la programación en Python • Funciones](https://reader031.fdocuments.co/reader031/viewer/2022021612/5ba5cc8109d3f266618d150b/html5/thumbnails/58.jpg)
Python 58
Piping
• Connecting two programs
> python randomseq.py 1000 > data.txt> python average.py < data.txt
• Filters> python randomseq.py 9 | sort> python randomseq.py 1000 | more
![Page 59: Programación en Java - personales.unican.espersonales.unican.es/corcuerp/python/Slides/IntroPython.pdf · Python 2 Objetivos • Revisión de la programación en Python • Funciones](https://reader031.fdocuments.co/reader031/viewer/2022021612/5ba5cc8109d3f266618d150b/html5/thumbnails/59.jpg)
Python 59
Standard Drawing
• El módulo stddraw.py permite dibujar.
# triangle.pyimport stddrawimport math# Dibuja un triangulo y un punto en el medio.t = math.sqrt(3.0) / 2.0stddraw.line(0.0, 0.0, 1.0, 0.0)stddraw.line(1.0, 0.0, 0.5, t)stddraw.line(0.5, t, 0.0, 0.0)stddraw.point(0.5, t/3.0)stddraw.show()
![Page 60: Programación en Java - personales.unican.espersonales.unican.es/corcuerp/python/Slides/IntroPython.pdf · Python 2 Objetivos • Revisión de la programación en Python • Funciones](https://reader031.fdocuments.co/reader031/viewer/2022021612/5ba5cc8109d3f266618d150b/html5/thumbnails/60.jpg)
Python 60
Standard Drawing – control commands
• Permite ajustar diferentes parámetros del dibujo.
![Page 61: Programación en Java - personales.unican.espersonales.unican.es/corcuerp/python/Slides/IntroPython.pdf · Python 2 Objetivos • Revisión de la programación en Python • Funciones](https://reader031.fdocuments.co/reader031/viewer/2022021612/5ba5cc8109d3f266618d150b/html5/thumbnails/61.jpg)
Python 61
Outline and filled shapes
• Permite dibujar otras formas.
![Page 62: Programación en Java - personales.unican.espersonales.unican.es/corcuerp/python/Slides/IntroPython.pdf · Python 2 Objetivos • Revisión de la programación en Python • Funciones](https://reader031.fdocuments.co/reader031/viewer/2022021612/5ba5cc8109d3f266618d150b/html5/thumbnails/62.jpg)
Python 62
Text and color
• Permite dibujar texto y ajustar el color del lápiz.
– Los colores disponibles son BLACK, BLUE, CYAN, DARK_GRAY, GRAY, GREEN, LIGHT_GRAY, MAGENTA, ORANGE, PINK, RED, WHITE, y YELLOW, definidos como constants en stddraw
![Page 63: Programación en Java - personales.unican.espersonales.unican.es/corcuerp/python/Slides/IntroPython.pdf · Python 2 Objetivos • Revisión de la programación en Python • Funciones](https://reader031.fdocuments.co/reader031/viewer/2022021612/5ba5cc8109d3f266618d150b/html5/thumbnails/63.jpg)
Python 63
Ejemplos stddraw
![Page 64: Programación en Java - personales.unican.espersonales.unican.es/corcuerp/python/Slides/IntroPython.pdf · Python 2 Objetivos • Revisión de la programación en Python • Funciones](https://reader031.fdocuments.co/reader031/viewer/2022021612/5ba5cc8109d3f266618d150b/html5/thumbnails/64.jpg)
Python 64
Animation
• stddraw.py dispone de funciones para conseguir efectos de animación.
![Page 65: Programación en Java - personales.unican.espersonales.unican.es/corcuerp/python/Slides/IntroPython.pdf · Python 2 Objetivos • Revisión de la programación en Python • Funciones](https://reader031.fdocuments.co/reader031/viewer/2022021612/5ba5cc8109d3f266618d150b/html5/thumbnails/65.jpg)
Python 65
Standard Audio
• El módulo stdaudio.py permite reproducir, manipular y sintetizar sonido.
![Page 66: Programación en Java - personales.unican.espersonales.unican.es/corcuerp/python/Slides/IntroPython.pdf · Python 2 Objetivos • Revisión de la programación en Python • Funciones](https://reader031.fdocuments.co/reader031/viewer/2022021612/5ba5cc8109d3f266618d150b/html5/thumbnails/66.jpg)
Python 66
Funciones - terminología
![Page 67: Programación en Java - personales.unican.espersonales.unican.es/corcuerp/python/Slides/IntroPython.pdf · Python 2 Objetivos • Revisión de la programación en Python • Funciones](https://reader031.fdocuments.co/reader031/viewer/2022021612/5ba5cc8109d3f266618d150b/html5/thumbnails/67.jpg)
Python 67
Funciones – control de flujo
• import • def • return
![Page 68: Programación en Java - personales.unican.espersonales.unican.es/corcuerp/python/Slides/IntroPython.pdf · Python 2 Objetivos • Revisión de la programación en Python • Funciones](https://reader031.fdocuments.co/reader031/viewer/2022021612/5ba5cc8109d3f266618d150b/html5/thumbnails/68.jpg)
Python 68
Funciones – alcance
• Las variables son locales en el bloque donde se definen
![Page 69: Programación en Java - personales.unican.espersonales.unican.es/corcuerp/python/Slides/IntroPython.pdf · Python 2 Objetivos • Revisión de la programación en Python • Funciones](https://reader031.fdocuments.co/reader031/viewer/2022021612/5ba5cc8109d3f266618d150b/html5/thumbnails/69.jpg)
Python 69
Funciones – código típico
![Page 70: Programación en Java - personales.unican.espersonales.unican.es/corcuerp/python/Slides/IntroPython.pdf · Python 2 Objetivos • Revisión de la programación en Python • Funciones](https://reader031.fdocuments.co/reader031/viewer/2022021612/5ba5cc8109d3f266618d150b/html5/thumbnails/70.jpg)
Python 70
Funciones - Paso de argumentos
• Los argumentos de tipo integer, float, boolean, o string por valor. El resto de objetos se pasan por referencia.
![Page 71: Programación en Java - personales.unican.espersonales.unican.es/corcuerp/python/Slides/IntroPython.pdf · Python 2 Objetivos • Revisión de la programación en Python • Funciones](https://reader031.fdocuments.co/reader031/viewer/2022021612/5ba5cc8109d3f266618d150b/html5/thumbnails/71.jpg)
Python 71
Funciones – código típico con arrays
![Page 72: Programación en Java - personales.unican.espersonales.unican.es/corcuerp/python/Slides/IntroPython.pdf · Python 2 Objetivos • Revisión de la programación en Python • Funciones](https://reader031.fdocuments.co/reader031/viewer/2022021612/5ba5cc8109d3f266618d150b/html5/thumbnails/72.jpg)
Python 72
Funciones - recursión
• Técnica de programación utilizada en muchas aplicaciones. Capacidad de invocar una función desde la misma función.
import sysimport stdio# Return n!def factorial(n):
if n == 1:return 1
return n * factorial(n-1)def main():
n = int(sys.argv[1])fact = factorial(n)stdio.writeln(fact)
if __name__ == '__main__':main()
# python factorial.py 3# 6
![Page 73: Programación en Java - personales.unican.espersonales.unican.es/corcuerp/python/Slides/IntroPython.pdf · Python 2 Objetivos • Revisión de la programación en Python • Funciones](https://reader031.fdocuments.co/reader031/viewer/2022021612/5ba5cc8109d3f266618d150b/html5/thumbnails/73.jpg)
Python 73
Módulos
• Un módulo contiene funciones que están disponibles para su uso en otros programas.
• Un cliente es un programa que hace uso de una función en un módulo.
• Pasos:– En el cliente: import el módulo.– En el cliente: hacer llamada a la función.– En el módulo: colocar una prueba de cliente main().– En el módulo: eliminar código global. Usar
if __name__ == '__main__': main()– Hacer accesible el módulo para el cliente.
![Page 74: Programación en Java - personales.unican.espersonales.unican.es/corcuerp/python/Slides/IntroPython.pdf · Python 2 Objetivos • Revisión de la programación en Python • Funciones](https://reader031.fdocuments.co/reader031/viewer/2022021612/5ba5cc8109d3f266618d150b/html5/thumbnails/74.jpg)
Python 74
Módulos
![Page 75: Programación en Java - personales.unican.espersonales.unican.es/corcuerp/python/Slides/IntroPython.pdf · Python 2 Objetivos • Revisión de la programación en Python • Funciones](https://reader031.fdocuments.co/reader031/viewer/2022021612/5ba5cc8109d3f266618d150b/html5/thumbnails/75.jpg)
Python 75
Programación modular
• Implementaciones.• Clientes.• Application programming interfaces (APIs).
• Funciones privadas: – Funciones que solo se usan en los módulos y que no se
ofrecen a los clientes. Por convención se usa un guión bajo como primer caracter del nombre de la función.
![Page 76: Programación en Java - personales.unican.espersonales.unican.es/corcuerp/python/Slides/IntroPython.pdf · Python 2 Objetivos • Revisión de la programación en Python • Funciones](https://reader031.fdocuments.co/reader031/viewer/2022021612/5ba5cc8109d3f266618d150b/html5/thumbnails/76.jpg)
Python 76
Programación modular
• Librerías: – Colección de módulos relacionados. Ejemplo: NumPy,
Pygame, Matplolib, SciPy, SymPy, Ipython.• Documentación. >>> import stddraw>>> help stddraw
![Page 77: Programación en Java - personales.unican.espersonales.unican.es/corcuerp/python/Slides/IntroPython.pdf · Python 2 Objetivos • Revisión de la programación en Python • Funciones](https://reader031.fdocuments.co/reader031/viewer/2022021612/5ba5cc8109d3f266618d150b/html5/thumbnails/77.jpg)
Python 77
Números random
• Módulo stdrandom.py
![Page 78: Programación en Java - personales.unican.espersonales.unican.es/corcuerp/python/Slides/IntroPython.pdf · Python 2 Objetivos • Revisión de la programación en Python • Funciones](https://reader031.fdocuments.co/reader031/viewer/2022021612/5ba5cc8109d3f266618d150b/html5/thumbnails/78.jpg)
Python 78
Procesado de arrays
• Módulo stdarray.py
![Page 79: Programación en Java - personales.unican.espersonales.unican.es/corcuerp/python/Slides/IntroPython.pdf · Python 2 Objetivos • Revisión de la programación en Python • Funciones](https://reader031.fdocuments.co/reader031/viewer/2022021612/5ba5cc8109d3f266618d150b/html5/thumbnails/79.jpg)
Python 79
Estadística
• Módulo stdstats.py
![Page 80: Programación en Java - personales.unican.espersonales.unican.es/corcuerp/python/Slides/IntroPython.pdf · Python 2 Objetivos • Revisión de la programación en Python • Funciones](https://reader031.fdocuments.co/reader031/viewer/2022021612/5ba5cc8109d3f266618d150b/html5/thumbnails/80.jpg)
Python 80
Beneficios de la programación modular
• Programas de tamaño razonable.• Depuración.• Reusabilidad de código.• Mantenimiento.
![Page 81: Programación en Java - personales.unican.espersonales.unican.es/corcuerp/python/Slides/IntroPython.pdf · Python 2 Objetivos • Revisión de la programación en Python • Funciones](https://reader031.fdocuments.co/reader031/viewer/2022021612/5ba5cc8109d3f266618d150b/html5/thumbnails/81.jpg)
Python 81
Programación orientada a objetos -Métodos
• Un método es una función asociada a un objeto específico.
• Se invoca utilizando el nombre del objeto seguido del operador punto (.) seguido por el nombre del método y los argumentos del mismo.
![Page 82: Programación en Java - personales.unican.espersonales.unican.es/corcuerp/python/Slides/IntroPython.pdf · Python 2 Objetivos • Revisión de la programación en Python • Funciones](https://reader031.fdocuments.co/reader031/viewer/2022021612/5ba5cc8109d3f266618d150b/html5/thumbnails/82.jpg)
Python 82
Programación orientada a objetos –Métodos de la clase str
![Page 83: Programación en Java - personales.unican.espersonales.unican.es/corcuerp/python/Slides/IntroPython.pdf · Python 2 Objetivos • Revisión de la programación en Python • Funciones](https://reader031.fdocuments.co/reader031/viewer/2022021612/5ba5cc8109d3f266618d150b/html5/thumbnails/83.jpg)
Python 83
Tipo de dato definido por el usuario
• Se define un tipo Charge para partículas cargadas.• Se usa la ley de Coulomb para el cálculo del
potencial de un punto debido a una carga V=kq/r , donde q es el valor de la carga, r es la distancia del punto a la carga y k=8.99 × 109 N m2/C2.Constructor
![Page 84: Programación en Java - personales.unican.espersonales.unican.es/corcuerp/python/Slides/IntroPython.pdf · Python 2 Objetivos • Revisión de la programación en Python • Funciones](https://reader031.fdocuments.co/reader031/viewer/2022021612/5ba5cc8109d3f266618d150b/html5/thumbnails/84.jpg)
Python 84
Convenciones sobre ficheros
• El código que define el tipo de dato definido por el usuario Charge se coloca en un fichero del mismo nombre (sin mayúscula) charge.py
• Un programa cliente que usa el tipo de dato Charge se pone en el cabecero del programa:
from charge import Charge
![Page 85: Programación en Java - personales.unican.espersonales.unican.es/corcuerp/python/Slides/IntroPython.pdf · Python 2 Objetivos • Revisión de la programación en Python • Funciones](https://reader031.fdocuments.co/reader031/viewer/2022021612/5ba5cc8109d3f266618d150b/html5/thumbnails/85.jpg)
Python 85
Creación de objetos, llamada de métodos y representación de String
#-----------------# chargeclient.py#-----------------import sysimport stdiofrom charge import Charge# Acepta floats x e y como argumentso en la línea de comandos. Crea dos objetos # Charge con posición y carga. Imprime el potencial en (x, y) en la salida estandardx = float(sys.argv[1])y = float(sys.argv[2])c1 = Charge(.51, .63, 21.3)c2 = Charge(.13, .94, 81.9)v1 = c1.potentialAt(x, y)v2 = c2.potentialAt(x, y)stdio.writef('potential at (%.2f, %.2f) due to\n', x, y)stdio.writeln(' ' + str(c1) + ' and')stdio.writeln(' ' + str(c2))stdio.writef('is %.2e\n', v1+v2)#-----------------------------------------------------------------------# python chargeclient.py .2 .5# potential at (0.20, 0.50) due to# 21.3 at (0.51, 0.63) and# 81.9 at (0.13, 0.94)# is 2.22e+12from charge import Charge
![Page 86: Programación en Java - personales.unican.espersonales.unican.es/corcuerp/python/Slides/IntroPython.pdf · Python 2 Objetivos • Revisión de la programación en Python • Funciones](https://reader031.fdocuments.co/reader031/viewer/2022021612/5ba5cc8109d3f266618d150b/html5/thumbnails/86.jpg)
Python 86
Elementos básicos de un tipo de dato
• API
• Clase. Fichero charge.py. Palabra reservada class• Constructor. Método especial __init__(), self• Variable de instancia. _nombrevar• Métodos. Variable de instancia self • Funciones intrínsecas. __str()__• Privacidad
![Page 87: Programación en Java - personales.unican.espersonales.unican.es/corcuerp/python/Slides/IntroPython.pdf · Python 2 Objetivos • Revisión de la programación en Python • Funciones](https://reader031.fdocuments.co/reader031/viewer/2022021612/5ba5cc8109d3f266618d150b/html5/thumbnails/87.jpg)
Python 87
Implementación de Charge
• En charge.py
![Page 88: Programación en Java - personales.unican.espersonales.unican.es/corcuerp/python/Slides/IntroPython.pdf · Python 2 Objetivos • Revisión de la programación en Python • Funciones](https://reader031.fdocuments.co/reader031/viewer/2022021612/5ba5cc8109d3f266618d150b/html5/thumbnails/88.jpg)
Python 88
Clases Stopwatch, Histogram, Turtle
• En stopwatch.py
• En histogram.py
• En turtle.py
![Page 89: Programación en Java - personales.unican.espersonales.unican.es/corcuerp/python/Slides/IntroPython.pdf · Python 2 Objetivos • Revisión de la programación en Python • Funciones](https://reader031.fdocuments.co/reader031/viewer/2022021612/5ba5cc8109d3f266618d150b/html5/thumbnails/89.jpg)
Python 89
Clase Complex
• Métodos especiales. En Python la expresión a + b se reemplaza con la llamada del método a.__mul__(b)
![Page 90: Programación en Java - personales.unican.espersonales.unican.es/corcuerp/python/Slides/IntroPython.pdf · Python 2 Objetivos • Revisión de la programación en Python • Funciones](https://reader031.fdocuments.co/reader031/viewer/2022021612/5ba5cc8109d3f266618d150b/html5/thumbnails/90.jpg)
Python 90
Métodos especiales
![Page 91: Programación en Java - personales.unican.espersonales.unican.es/corcuerp/python/Slides/IntroPython.pdf · Python 2 Objetivos • Revisión de la programación en Python • Funciones](https://reader031.fdocuments.co/reader031/viewer/2022021612/5ba5cc8109d3f266618d150b/html5/thumbnails/91.jpg)
Python 91
Funciones como objetos
• En Python cada elemento es un objeto, incluyendo funciones.
def square(x):return x*x
# Calcula la integral de Riemann de una function fdef integrate(f, a, b, n=1000):
total = 0.0dt = 1.0 * (b - a) / nfor i in range(n):
total += dt * f(a + (i + 0.5) * dt)return total