Python. FUNCIONES RECURSIVAS Una función recursiva se llama a sí misma. Tiene dos partes: -Llamado recursivo -Finalización del proceso recursivo Ejemplo.

Slides:



Advertisements
Presentaciones similares
Métodos y parámetros.
Advertisements

Introducción a la Programación 8. Datos Numéricos.
Clases en C++.
Tablas. Descripción general Introducción a las tablas Creación de tablas Uso de tablas.
FUNCIONES EN C.
1.2 Sintaxis del lenguaje Java.
Tema 7: Polimorfismo Antonio J. Sierra. Índice Introducción. Sobrecarga de métodos. Objetos como parámetros. Paso de argumentos. Devolución de objetos.
Funciones en lenguaje C
CI TEORIA semana 8 Subprogramas o funciones Definición de funciones.
Programación Orientada a Objetos usando C++
Creación de Aplicaciones
Universidad de Tarapacá Fundamentos Lenguaje y Programación Rodrigo Cornejo Mejías Jonathan Cea Chávez Marcelo Gómez Gonzales.
Tema 3 Entrada y Salida.
Lenguaje C.
El lenguaje de programación Java
Prog. Univ. Rodríguez Rey, Pablo Funciones Programación I.
Archivos.
Temas Operaciones básicas Funciones Matemáticas
Elementos básicos del lenguaje
FUNCIONES Conceptos básicos. Retorno de una función Clases de funciones. Paso de parámetros. Funciones y arrays.
Recursividad (2 clases) 1. Nivelación Funciones Menú Vectores String
INTRODUCCIÓN AL LENGUAJE C++
U3 Subprogramación 1 Probablemente el tema mas importante del curso ¡¡¡A por el reuso!!!
U9 Estructuras: Agrupación de elementos de distinto tipo 1 Barajar complejidad.
Estructuras de control selectivas Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión Práctica 3.
Métodos en Java. Estructura de un programa en Java ► La relación con la vida misma la podemos ver en el siguiente comentario: Imaginemos que dos clases.
Análisis de los algoritmos Unidad 7. Análisis La resolución práctica de un problema – algoritmo o método de resolución – y por otra un programa o codificación.
Programación II Sesión 3. TABLA DE CONTENIDO  Tipos de Datos en C  Delimitadores  Tipo Char  Tipo Int  Tipo Float  Tipo Double  Constantes  Operadores.
PROGRAMACIÓN ORIENTADA A OBJETOS SEGUNDA UNIDAD: “CLASES, OBJETOS Y MÉTODOS” IRVING YAIR SALAS CHÁVEZ ING. EN SISTEMAS COMPUTACIONALES - ITSLP.
Funciones en lenguaje C 2 Funciones Definición: – Las funciones son los bloques de construcción básicos de C. Dentro de ellas se da toda la actividad.
Funciones y gráficas Daniel Ordoñez Aguirre Licenciatura EN DERECHO
Clases y Objetos.
Convenciones de nomenclatura y diseño
Conceptos Básicos Prof. Carlos Rodríguez Sánchez
Tarea II Matemáticas Francisco Raul Gandara Villaverde
BREVE INTRODUCCION A LA PROGRAMACION
Todo archivo se guarda en el disco duro con extensión .py
ESTADÍSTICA UNIDIMENSIONAL
Clase 3: Funciones Valeria Herskovic –
AYUDANTÍA 6 Más sobre... ¿Faiton?.
BASES DE DATOS.
Métodos en Java.
¿Cómo crear un laboratorio en casa?
¿Cómo crear mi primer proyecto en Eclipse?
Valeria Herskovic Clase 2: Funciones Valeria Herskovic
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS
Introducción a programación web Martin Esses
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS
Tema 6. Conceptos básicos de programación (Clase 2)
Herencia en C#.
Tema 7. Introducción a lenguaje de programación Visual Basic (clase 1)
Fundamentos de programación en TIG 4. Aptana y Arcpy
Desde «hola mundo» a conexiones con Bases de datos
Paul Leger Funciones Paul Leger
ARREGLOS BIDIMENSIONALES MATRICES Son un espacio de almacenamiento continuo, que contiene una serie de elementos del mismo tipo de datos. Desde el punto.
Matlab como calculadora
Tema 2 Variables y cálculos
CURSO PROGRAMACIÓN BÁSICA SEMANA 3 ¿Qué es un programa?
Funciones y Procedimientos(Pseudocódigo)
Procesamiento de señales Introducción a Matlab 2014
Fundamentos de Informática Especialidad de Electrónica –
Docente: Ing. Francisco Rodríguez
MC Beatriz Beltrán Martínez Verano 2018
CC 1002: Introducción a la Programación Clase 22
Informática Ingeniería en Electrónica y Automática Industrial
Tema 7. Introducción a lenguaje de programación Visual Basic (clase 1)
CC 1002: Introducción a la Programación Clase 19
Programación Modular Programación de Computadoras - Hugo Vega Grupo2: Reina Rodríguez Miriam Salluca.
CONTROLES Y ESTRUCTURAS BÁSICAS DE PROGRAMACIÓN  1. Algoritmos: conjunto de instrucciones programadas para resolver una tarea específica.  2. Datos:
MÈTODO DE INTEGRACIÓN “EULER”. MÉTODO DE EULER La idea del método de Euler es muy sencilla y está basada en el significado geométrico de la derivada de.
Transcripción de la presentación:

Python

FUNCIONES RECURSIVAS Una función recursiva se llama a sí misma. Tiene dos partes: -Llamado recursivo -Finalización del proceso recursivo Ejemplo. Calcular el factorial de N (N!) def fac(n): # funcion externa if n == 0: return 1 # Finalización del proceso recursivo else: return n*fac(n-1) # Llamado recursivo >>> fac(5) 120 >>> fac(100)

ESPACIO DE NOMBRES (namespace) Se aplica un nombre a una variable, función, clase/instancia, módulo/package Los nombre definidos dentro de una función son locales a ella. Los nombres definidos fuera de todas las funciones son globales al módulo y son accesibles por todas las funciones dentro del módulo. Un espacio de nombres (namespace) es una colección de nombres. El ámbito es la porción del programa a partir de la cual un nombre se puede acceder sin prefijo.

ESPACIO DE NOMBRES (namespace) Cada módulo tiene un Espacio de nombres Global Un módulo es un archivo que contiene atributos (variables, funciones y clases) y tiene su propio espacio de nombres globales. Por ello no se puede definir dos funciones o clases con el mismo nombre dentro de un módulo, pero sí en diferentes módulos Cuando se ejecuta el Shell interactivo, Python crea un módulo llamado __main__, con su namespace global asociado. Cuando se importa un módulo con ‘import nombre_modulo’: En caso de Shell interactivo, se añade nombre_modulo al namespace de __main__ Dentro de otro módulo se añade el nombre al namespace del módulo donde se ha importado. Si se importa un atributo con ‘from nombre_modulo import nombre_atributo’ el nombre_atributo se añade al namespace de __main__, y se puede acceder al nombre_atributo directamente.

ESPACIO DE NOMBRES (namespace) Funciones globals(), locals() y dir() Se puede listar los nombres del ámbito actual con las funciones: globals() devuelve un diccionario con las variables globales locals() devuelve un diccionario con las variables locales. dir() devuelve una lista de los nombres locales, es equivalente a locals().keys() Modificación de variables globales dentro de una función: Se usa la instrucción global. Ejemplo: x = “variable global” def funcion1(): global x # Declara x global para modificar la variable global x = ‘otro valor’ print(x) >>> funcion1() >>> print(x) # variable global cambiada otro valor

MÓDULOS DE LIBRERÍA STANDARD PYTHON Para usar los módulos de las librerías standard, se importa con: import nombre_modulo (importa la librería completa) from nombre_modulo import nombre_atributo (importa el atributo seleccionado) >>> import math # importa el modulo math >>> dir(math) # Lista todos los atributos de math ['__doc__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', ….. >>> help(math) >>> help(math.atan2) >>> math.sin(math.pi / 2) 1.0 >>> from math import pi # importa el atributo pi de math >>> pi

MÓDULOS DE LIBRERÍA STANDARD PYTHON Módulo math. Da acceso a funciones matemáticas para reales: Constantes: pi, e Potencia y exponente: pow(x,y), sqrt(x), exp(x), log2(x), log10(x), log(x) (logaritmo natural) Conversión float a int: ceil(z), floor(z), trunc(z) Operaciones float: hypot(z,y) (equivale a sqrt(z*z + y*y)), fabs(z), fmod(n, m) (módulo, residuo de n/m) Conversión entre grados y radianes: degrees(x), radians(x) Funciones trigonométricas: sin(x), cos(x), tan(x), acos(x), asin(x), atan(x), atan2(x,y) Funciones hiperbólicas: sinh(x), cosh(x), tanh(x), asinh(x), acosh(x), atanh(x) Etc.

MÓDULOS DE LIBRERÍA STANDARD PYTHON Módulo cmath. Da acceso a funciones matemáticas para complejos: z es un número complejo, de la forma z= 3 + 2j Constantes: pi, e, tau, inf (infinito), infj, nan (no es un número) Potencia y exponente: pow(x,y), sqrt(z), exp(z), log10(z), log(z, B) (logaritmo base B) Verificar si es infinito o nan: isfinite(z), isinff(z), isnan(z) Conversion: phase(z) (ángulo de fase), polar(z) (de polar a rectangular), rect(r, phi) (de rectangular a polar) Funciones trigonométricas: sin(z), cos(z), tan(z), acos(z), asin(z), atan(z), atan2(z,y) Funciones hiperbólicas: sinh(z), cosh(z), tanh(z), asinh(z), acosh(z), atanh(z)

MÓDULOS DE LIBRERÍA STANDARD PYTHON Módulo statistics. Calcula las propiedades estadísticas básicas. >>> import statistics >>> dir(statistics) ['mean', 'median', 'median_grouped', 'median_high', 'median_low', 'mode', 'pstdev', 'pvariance', 'stdev', 'variance',...] >>> help(statistics) >>> datos = [5, 7, 8, 3, 5, 6, 1, 3] >>> statistics.median(datos) # mediana 5.0 >>> statistics.stdev(datos) # desviación estándar >>> statistics.variance(datos) # varianza >>> statistics.mode(datos) # moda 5

MÓDULOS DE LIBRERÍA STANDARD PYTHON Módulo random. Se usa para generar números pseudo random. >>> import random >>> dir(random) >>> help(random) ….. >>> help(random.random) >>> random.random() # número real en [0,1) >>> random.random() >>> random.randint(1, 5) # número entero en [1,5] 3 >>> random.randrange(5) # en el range(5), en este caso: 0 a 4 0 >>> random.choice(['apple', 'orange', 'banana']) 'apple'

MÓDULOS DE LIBRERÍA STANDARD PYTHON Módulo sys. Proporciona parámetros y funciones del sistema: >>> import sys >>> sys.exit([exit-status=0]) # salir del programa. >>>sys.path # Lista de rutas de búsqueda. Empezando con la variable de entorno PYTHONPATH. [‘ ', 'C:\\Users\\CORE I7\\AppData\\Local\\Programs\\Python\\ Python38-32\\Lib\\idlelib', 'C:\\Users\\CORE I7\\AppData\\Local\\ Programs\\Python\\Python38-32\\python38.zip', ……. ] sys.stdin, sys.stdout, sys.stderr #entrada, salida y error estándard. >>> sys.argv # Lista de argumentos en la línea de comandos [‘ '] >>> print(sys.argv) # Muestra la lista de argumentos de la línea de comandos [‘ '] >>> print(len(sys.argv)) # Muestra la longitud de la lista 1

MÓDULOS DE LIBRERÍA STANDARD PYTHON Módulo os. Proporciona una interfaz con el sistema operativo: os.mkdir(path, mode=0777) # Crea un directorio os.mkdirs(path, mode=0777]) # Similar a mkdir os.getcwd() # devuelve el directorio en curso os.chdir(path) #Cambia el directorio en curso os.system(command) # ejecuta un commando shell. os.getenv(varname, value=None) # devuelve la variable de entorno, si existe os.putenv(varname, valor) # asigna la variable de entorno al valor os.unsetenv(varname) # elimina la variable de entorno Ejemplo: >>> import os >>> dir(os) # Lista todos los atributos ['DirEntry', 'F_OK', 'MutableMapping', 'O_APPEND', 'O_BINARY', 'O_CREAT', 'O_EXCL', 'O_NOINHERIT', 'O_RANDOM',......] >>> help(os) # Ayuda del modulo os >>> help(os.getcwd) # Ayuda para una función específica

MÓDULOS DE LIBRERÍA STANDARD PYTHON Módulo sys. Proporciona una interfaz con el sistema operativo: >>> os.getcwd() # actual directorio de trabajo 'C:\\Users\\CORE I7\\AppData\\Local\\Programs\\Python38‘ >>> os.listdir('.') # Lista el contenido del directorio actual ['algoritmo A.py', 'api-ms-win-core-console-l1-1-0.dll', ……. ] >>> os.chdir('test-python') # Cambia de directorio >>> exec(open('hola.py').read()) # Ejecuta un Python script >>> os.system('ls -l') # Ejecuta un commando shell >>> os.name # Nombre del Sistema Operativo ‘nt' >>> os.makedirs(dir) # Crea un sub-directorio >>> os.remove(archivo) # Elimina un archivo >>> os.rename(oldFile, newFile) #Cambia de nombre de archivo >>> os.listdir('.') # Retorna una lista de entradas en el directorio actual (o dado) >>> for f in sorted(os.listdir('.')): #lista entradas en orden alfabético print(f)

MÓDULOS DE LIBRERÍA STANDARD PYTHON Módulo date. Da clases para manipular fechas y tiempos >>> import datetime >>> dir(datetime) # atributos de datetime ['MAXYEAR', 'MINYEAR', 'date', 'datetime',… 'time',...] >>> dir(datetime.date) # atributos de datetime.date ['__add__', '__class__', '__delattr__', '__dir__', …..'today',.....] >>> from datetime import date >>> hoy=date.today() # fecha de hoy >>> hoy datetime.date(2020, 5, 26) >>> undia=date(2020, 3, 26)) # Construye un datetime.date >>> undia datetime.date(2020, 3, 26) >>> dif=date.today()–date(2019,3,1) # Diferencia entre 2 fechas datetime.timedelta(days=61) >> dir(datetime.timedelta) # atributos de datetime.timedelta […,'days', 'max', 'microseconds', 'min', 'resolution', 'seconds',...] >>> dif.days 61

MÓDULOS DE LIBRERÍA STANDARD PYTHON Módulo time. Para medir el tiempo de ejecución de un script, etc import time start = time.time() def fac(n): p = 1 for c in range(1,n+1): # sucesion de 1 a n, incremento=1 p=p*c print(“factorial= “,p) end = time.time() print(end - start) >>>fac(3) factorial=

CLASES Y OBJETOS Un objeto es una forma ordenada de agrupar datos (atributos) y operaciones a utilizar sobre esos datos (métodos). La clase de un objeto es la definición del tipo, donde se indican cuáles son los atributos y métodos que van a tener todas las variables que sean de ese tipo. A partir de una clase es posible crear distintas variables que son de ese tipo, llamadas instancia de esa clase. Los objetos tienen estado y comportamiento, ya que los valores que tengan los atributos de una instancia determinan el estado actual de esa instancia, y los métodos definidos en una clase determinan cómo se va a comportar ese objeto. Definición de una clase: class Nombre: sentencia1 ……. sentenciaN 16

CLASES Y OBJETOS Campos (atributos) y métodos de una clase: class Ejemplo: “””una clase sencilla””” a=5 def f(self) return “es una función” Acceso a los miembros de una clase: NombreClase.nombreMiembro 17

CLASES Y OBJETOS Campos (atributos) y métodos de una clase: class Ejemplo: “””una clase sencilla””” a=5 def f(self) return “es una función” Acceso a los miembros de una clase: NombreClase.nombreMiembro >>> Ejemplo.a 5 >>> Ejemplo.__doc__ ’una clase sencilla’ >>> X= Ejemplo() # Crea una instancia de la clase Ejemplo y la guarda en la variable X del tipo objeto >>> X.f() ‘Es una función’ 18

CLASES Y OBJETOS Ejm. Clase punto en el plano x,y, con constructor class Punto(object): """ Representación de un punto en el plano, atributos x e y que con las coordenadas cartesianas.""" def __init__(self, x=0, y=0): "Constructor de Punto, x e y deben ser numéricos" self.x = x self.y = y El nombre de la clase empieza en mayúscula object indica que la clase que se crea es un objeto básico, no derivado de otro. __init__, el constructor de la clase, es un método se llama cada vez que se crea una nueva instancia de la clase. Este método, al igual que todos los métodos de cualquier clase, tiene como primer parámetro a la instancia sobre la que está trabajando, que por convención se llama self. Para definir atributos, basta con definir una variable dentro de la instancia, es una buena idea definir todos los atributos de nuestras instancias en el constructor, de modo que se creen con algún valor válido. En nuestro ejemplo self.x y self.y y se usarán como punto.x y punto.y. 19

CLASES Y OBJETOS Para definir atributos, se los define como variables dentro de la clase, aunque es mejor definir todos los atributos en el constructor, de modo que se creen con algún valor válido. Al crear un objeto, se llama implícitamente al constructor. En el ejemplo self.x y self.y y se usarán como punto.x y punto.y. >>> p = Punto(5,7) # objeto p de la clase Punto >>> print(p) >>> p.x 5 >>> p.y 7 20

PROBLEMAS 1.PROBAR LOS EJEMPLOS (DE CADA CASO PRESENTADO EN CADA DIAPOSITIVA). DEFINIR UNA FUNCIÓN QUE REALICE TODAS LAS OPERACIONES Y FUNCIONES CON CADA LIBRERÍA VISTA. 2.CALCULAR CON UNA FUNCIÓN RECURSIVA X^N. CONSIDERAR TODAS LAS OPCIONES (X=N=0, N =0) 3.COMPLETAR LA CLASE Punto, CON MÉTODOS PARA: MOSTRAR LA POSICIÓN DEL PUNTO EN EL PLANO CALCULAR EL MODULO (x^2 + y^2)^1/2 TRANSFORMAR A COORDENADAS POLARES 4. DEFINIR UNA CLASE Cilindro, CON ATRIBUTOS radio, altura, Y MÉTODOS CONSTRUCTOR, AREA Y VOLUMEN. 21

GRACIAS