ING1310 Introducción a la Computación. Python. Conceptos Básicos. Carlos Reveco

Documentos relacionados
Introducción a Python. Cecilia Manzino

JavaScript Básico. Elementos Básicos: Comentarios: Literales: Valores que puede tomar una variable o una constante.

Fundamentos PHP. El término puntuación nos referimos a la sintaxis usada en PHP para la terminación de una línea de código (;)

abril de 2017 Desarrollo de aplicaciones en Java Tipos de datos primitivos Tipos de datos Elementos de aplicaciones simples

Introducción al lenguaje C

Lenguaje C. República Bolivariana de Venezuela Fundación Misión Sucre Aldea Fray Pedro de Agreda Introducción a la Programación III

Primeros Pasos en Python 3

Scientific Programming with Python

Programación Orientada a Objetos Sentencias Java Parte I Ing. Julio Ernesto Carreño Vargas MsC.

Informática. JavaScript: Lenguaje de programación. Fco J. Martín Mateos Carmen Graciani

Manual rápido para evaluación de series en Python

Un calculadora avanzada... y algo más!

Programación n Orientada a Objetos Sentencias Java Parte I. Ing. Julio Ernesto Carreño o Vargas MsC.

Características de JavaScript

Tipos de Datos de python (2ª parte):

GENERACIÓN DE CÓDIGO ORIENTADO A OBJETOS

import math # Importa la libreria math, que permite utilizar operaciones y funciones matematicas

Fundamentos de Programación

Sentencias de Procesamiento Iterativo: while y do-while

Autoestudio 2: Variables y Operadores

Operadores y Expresiones

Java. Introducción a la Programación Orientada a Objetos

Python. Características Básicas

Tema 6: Clases. Índice

Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta

1. Explorando la ventana Python

Java para programadores

TEMA 2. LENGUAJE C. CONCEPTOS BÁSICOS Y PROGRAMACIÓN ELEMENTAL.

TUTORIAL DE RUBY. Lenguajes de programación Universidad Nacional De Colombia II. Laura P. Cerón M. Camilo A. Dajer P.

Estructura de datos y Programación

PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez

Programación MATLAB: Programas y Funciones.

Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones

Estructuras de control: Las variables: Fuertemente tipado: Tipado dinámico: Variables booleanas: Qué son las estructuras de control?

Paradigmas de lenguajes de programación. Introducción a la programación imperativa. Lenguaje C. Programación imperativa

PASCAL. Repaso de Pascal Introducción a Python. Pascal. Pascal - introducción. Pascal Declaraciones: Variables. Pascal Declaraciones: Tipos 07/04/2015

VARIABLES, CONSTANTES Y EXPRESIONES ASIGNACIÓN. TIPOS ELEMENTALES. PRECEDENCIA DE LOS ESTRUCTURAS DE CONTROL. CONDICIONAL E

Programación MATLAB: Programas y Funciones.

Principios de Computadoras II

Apunte Laboratorio ALPI - El lenguaje de programación Pascal

Es un lenguaje estructurado, tiene una abundante cantidad de operadores y tipos de datos.

PROGRAMACIÓN EN JAVA

PLN con Python. Alejandro Pimentel

GUÍA BÁSICA DE SCHEME v.4

Curso de Java Introducción a la Programación II

Cuáles son los lenguajes que pueden utilizarse para programar Karel?

Programación en C. Algoritmo y Estructura de Datos. Ing. M. Laura López. Programación en C

Clases y Objetos en C++

Todo programa en 'C' consta de una o más funciones, una de las cuales se llama main.

Programación Orientada a Objetos

Construcciones del Lenguaje Java

PHP: Lenguaje de programación

4/14/2010. Objetivos. Que es JAVA. JAVA como plataforma. Reglas Sintácticas y de Codificación Básicas de JAVA

Introducción rápida a la programación (estructurada ) con C++

Introducción a C# y la plataforma.net

Funciones como parámetros, funciones como resultados. Introducción a la Computación Patricia Borensztejn Clase 26

Conceptos de Programación Intérprete PYTHON

Introducción a Python

Tipos de datos y Operadores Básicos

LENGUAJE DE PROGRAMACION I. Ing. JAVIER ECHEGARAY ROJO Ing. WILDER ROMAN MUNIVE. Ing. Javier Echegaray Rojo / Ing. Wilder Román Munive Pag 1

Elementos de un programa en C

5. Sentencias selectivas o condicionales

4. Operadores Operador asignación

Programación Orientada a Objetos en C++

PYTHON. Programación básica

Variables, expresiones y sentencias

Arreglos numéricos. Programación Clase 23

Sintaxis de PSeInt Tutorial

El programa en JavaScript debe ir encerrado entre la marca script e inicializada la propiedad type con la cadena text/javascript:

INTRODUCCIÓN A LA MATEMÁTICA DISCRETA PRÁCTICA 1

Shell Script Sistemas Operativos III - ITS EMT - CETP

GUÍA DE TRABAJO N 1 C# Ing. Néstor Raúl Suarez Perpiñan Página 1 de 13

Tema 2: EL TIPO DE DATOS ENTERO. INSTRUCCIÓN DE ASIGNACIÓN Y DE COMPOSICIÓN SECUENCIAL

Carlos Montenegro. Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas

Programación con Java Básico

Componentes Básicos. InCo. InCo Componentes Básicos 1 / 28

Guía del Curso IFCD052PO PROGRAMACIÓN EN JAVA

crear con python Materiales de inicio a la programacion con codigo Ejercicios practicos con soluciones

Comprender las diferencias entre tipos de datos primitivos similares, y aprender a elegir el tipo más conveniente en cada caso.

NETBEANS JAVA PROGRAMACIÓN ORIENTADA A OBJETOS

Java Avanzado Facultad de Ingeniería. Escuela de computación.

Tema: Estructuras de Selección en C#.

Lenguajes de Programación Programación funcional


Unidad Didáctica 3. Tipos genéricos. Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos

$0 Representa al parámetro cero o nombre del programa $1 Representa al parámetro uno $2 Representa al parámetro dos

Introducción a Java. Introducción a Java. Programación I

Transcripción:

ING1310 Introducción a la Computación Python Conceptos Básicos Carlos Reveco creveco@dcc.uchile.cl careveco@miuandes.cl Facultad de Ingeniería/Universidad de los Andes/Chile Rev : 254 C.Reveco Facultad de Ingeniería/Universidad de los Andes/Chile ING1310 Clase 23 1 / 38

En esta clase 1 Python Motivación Variables I/O Consola Control de Flujo Funciones, Métodos y Clases Módulos 2 C.Reveco Facultad de Ingeniería/Universidad de los Andes/Chile ING1310 Clase 23 2 / 38

Python C.Reveco Facultad de Ingeniería/Universidad de los Andes/Chile ING1310 Clase 23 3 / 38

Python Motivación C.Reveco Facultad de Ingeniería/Universidad de los Andes/Chile ING1310 Clase 23 4 / 38

Nuevo lenguaje, mismo modo de pensar Veremos un nuevo lenguaje de programación: Python Específicamente en su versión 2.6 Su uso sigue siendo para programar Los grandes cambios están en la sintáxis, la forma de pensar se mantiene. Ustedes no aprendieron Java, aprendieron a programar. C.Reveco Facultad de Ingeniería/Universidad de los Andes/Chile ING1310 Clase 23 5 / 38

Qué tiene de diferente? Python es un lenguaje multiparadigma orientado a objetos puede tener clases y objetos, imperativo puede tener sentencias que cambien el estado del programa, funcional puede tener funciones matemáticas puras, reflexivo permite el acceso y modificación de si mismo. Python es un lenguaje interpretado (script): Su ejecución se realiza mediante un intérprete (no hay compilación), manejo de tipos de forma dinámica, multiplataforma, pierde eficiencia C.Reveco Facultad de Ingeniería/Universidad de los Andes/Chile ING1310 Clase 23 6 / 38

Y? Y hay más cosas que lo hacen especial: open source gratis desarrollo constante que lo mantiene actualizado comunidad activa en el desarrollo de módulos para distintos problemas programas con poco overhead, fácil para crear programas desechables estable manejo automático de memoria mediante conteo de referencias y recolección de basura rendimiento superior a otros lenguajes interpretados extensiones con C o C++ C.Reveco Facultad de Ingeniería/Universidad de los Andes/Chile ING1310 Clase 23 7 / 38

Ejemplo: Hola Mundo en Python print " Hola Mundo!" El código anterior funciona sin necesidad de nada más. C.Reveco Facultad de Ingeniería/Universidad de los Andes/Chile ING1310 Clase 23 8 / 38

Detalles sintácticos básicos El término de una sentencia está dado por el salto de ĺınea no se necesita un caracter especial como en Java (;) Los bloques se crean mediante un Tab no se utilizan los paréntesis de llave C.Reveco Facultad de Ingeniería/Universidad de los Andes/Chile ING1310 Clase 23 9 / 38

Operadores básicos Se pueden utilizar los operadores aritméticos binarios clásicos (+,,, /, %) // división entera, elevado a También operadores unitarios clásicos (+, ) Los operadores de comparación básicos son ==,! =, <, >, <=, >= is [not] comparación a nivel de objetos [not] in evaluación sobre colecciones (incluidos strings) Los operadores booleanos binarios son and, or, y not C.Reveco Facultad de Ingeniería/Universidad de los Andes/Chile ING1310 Clase 23 10 / 38

Python Variables C.Reveco Facultad de Ingeniería/Universidad de los Andes/Chile ING1310 Clase 23 11 / 38

Tipos dinámicos No es necesario darles un tipo expĺıcito a las variables. Esto implica que no se declaran, simplemente se usan, desde su primer uso comienzan a existir. El contenido de la variable si tiene un tipo. El contenido puede cambiar, y el tipo de ese contenido también. El tipo influye en las operaciones que se pueden realizar. C.Reveco Facultad de Ingeniería/Universidad de los Andes/Chile ING1310 Clase 23 12 / 38

Ejemplo: Declaración de variables a = 2 b = a + 4 a = " un texto " El código anterior funciona sin necesidad de nada más. C.Reveco Facultad de Ingeniería/Universidad de los Andes/Chile ING1310 Clase 23 13 / 38

Alcance (scope) Las variables viven dentro de su bloque. Si una variable se declara fuera de todo, entonces puede usarse en cualquier parte. C.Reveco Facultad de Ingeniería/Universidad de los Andes/Chile ING1310 Clase 23 14 / 38

Python I/O Consola C.Reveco Facultad de Ingeniería/Universidad de los Andes/Chile ING1310 Clase 23 15 / 38

Output Para mostrar algo en consola utilizamos la instrucción print seguida por lo que se quiere mostrar. Es una instrucción, no un método. Ejemplo: Imprimiendo en la consola print " Hola Mundo!" a = " Ingenieria " print a a = 2* len (a) print a len largo de un string, o lista, o cualquier cosa dimensionable. C.Reveco Facultad de Ingeniería/Universidad de los Andes/Chile ING1310 Clase 23 16 / 38

Output Para imprimir múltiples datos se utiliza la coma (,) Ejemplo: Imprimiendo en la consola a = 8 b = 6 c = lala print " Los valores son : ", a, b, c Para los strings se puede usar tanto la comilla doble como la simple. C.Reveco Facultad de Ingeniería/Universidad de los Andes/Chile ING1310 Clase 23 17 / 38

Input Para recibir información del usuario existe el método raw input Recibe como parámetro un texto a mostrar. Retorna lo ingresado por el usuario como texto. Ejemplo: Recibiendo desde la consola a = raw_input (" Ingresa un numero :") a = int (a) print " Tu numero al cuadrado es: ", a **2 int() convierte el texto en entero. C.Reveco Facultad de Ingeniería/Universidad de los Andes/Chile ING1310 Clase 23 18 / 38

Python Control de Flujo C.Reveco Facultad de Ingeniería/Universidad de los Andes/Chile ING1310 Clase 23 19 / 38

Condiciones En python existen sentencias para if, else y else if La sintáxis es un poco diferente Sintáxis Python: Condiciones if condicion :... elif condicion :... else :... Luego las instrucciones se escriben un tab más adentro para cada bloque C.Reveco Facultad de Ingeniería/Universidad de los Andes/Chile ING1310 Clase 23 20 / 38

Ejemplo: Condiciones edad = int ( raw_input (" Ingrese su edad ")) genero = raw_ input (" Ingrese su genero : ( M) asculino o ( F) emenino ") if edad < 2: print " Aun es un bebe " elif edad < 12 and genero == " M": print " Eres un chiquillo " elif edad < 12 and genero == " F": print " Eres una chiquilla " elif edad < 18: print " Te falta poco para ser mayor de edad " else : print " Eres mayor de edad " C.Reveco Facultad de Ingeniería/Universidad de los Andes/Chile ING1310 Clase 23 21 / 38

Ciclos En python existen sentencias para while y for Sintáxis Python: Ciclos while condicion :... for x in lista :... El for difiere un poco del uso común en otros lenguajes: En python siempre itera sobre una lista. En cada pasada x cambia al siguiente valor de la lista. Dentro del ciclo no se debe modificar la lista Si se puede modificar su contenido. C.Reveco Facultad de Ingeniería/Universidad de los Andes/Chile ING1310 Clase 23 22 / 38

Generar secuencia para for El método range es una forma sencilla de crear una secuencia. Lista de números que sigue un patrón fijo. Tiene 3 alternativas para los parámetros: máximo (no incluído) mínimo, máximo (no incluído) mínimo, máximo (no incluído), salto Ejemplo: Condiciones # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] range (10) # [5, 6, 7, 8, 9] range (5, 10) # [ -50, -30, -10, 10, 30, 50, 70, 90] range ( -50, 100, 20) El # sirve para hacer comentarios Es posible hacer print directamente sobre una lista. C.Reveco Facultad de Ingeniería/Universidad de los Andes/Chile ING1310 Clase 23 23 / 38

Ejemplo: Control de Flujo max = int ( raw_input (" Ingresa el maximo : ")) min = int ( raw_input (" Ingresa el minimo : ")) if max < min : print " Datos incorrectos " else : res = 0 for x in range (min, max ): res = res + x print res C.Reveco Facultad de Ingeniería/Universidad de los Andes/Chile ING1310 Clase 23 24 / 38

Python Funciones, Métodos y Clases C.Reveco Facultad de Ingeniería/Universidad de los Andes/Chile ING1310 Clase 23 25 / 38

Métodos Funciones A los métodos se los asocia con OOP, ya que son parte de una clase. Cuando no son parte de una clase se suele llamarles funciones. En python pueden haber funciones. Se utiliza el comando def para declararlas Sintáxis Python: Función def nombrefuncion ( parametros ): pass pass se utiliza para dejar una función sin contenido. C.Reveco Facultad de Ingeniería/Universidad de los Andes/Chile ING1310 Clase 23 26 / 38

Funciones Los parámetros de la función no llevan tipo La función tampoco tiene tipo de retorno Se pueden retornar múltiples valores utilizando el comando return Los valores van separados por coma Se deben recibir en múltiples variables Siempre hay retorno: Si no se retorna expĺıcitamente, entonces la función retorna None C.Reveco Facultad de Ingeniería/Universidad de los Andes/Chile ING1310 Clase 23 27 / 38

Ejemplo: Funciones def metodo1 (): print " metodo1 " def def def metodo2 (n): return n*4 metodo3 (n, m): return n+1, m+2 metodo4 (n): if n > 0: return n* n metodo1 () print metodo2 (2) print metodo3 (3, 5) print metodo4 (3) print metodo4 ( -2) Las funciones deben ser declarados antes de su uso. C.Reveco Facultad de Ingeniería/Universidad de los Andes/Chile ING1310 Clase 23 28 / 38

Ejemplo: Funciones def minimoymaximo (n, m): if n <= m: return n, m else : return m, n a = int ( raw_input (" Ingrese un numero : ")) b = int ( raw_input (" Ingrese otro numero : ")) min, max = minimoymaximo ( a, b) print " El minimo es ", min, " y el maximo es ", max C.Reveco Facultad de Ingeniería/Universidad de los Andes/Chile ING1310 Clase 23 29 / 38

Clases Para definir clases se utiliza el comando class Sintáxis Python: Clase class NombreClase : pass No se declaran atributos. No se maneja visibilidad de los componentes. Todos los métodos deben recibir como primer parámetro el elemento self El self mantiene la información de la clase, si se quiere un atributo se hace self.nombreatributo, para invocar los métodos también se debe utilizar self Para el constructor se crea un método de nombre init C.Reveco Facultad de Ingeniería/Universidad de los Andes/Chile ING1310 Clase 23 30 / 38

Crear objeto Simplemente se asigna a la variable el nombre de la clase no se usan comandos adicionales. C.Reveco Facultad de Ingeniería/Universidad de los Andes/Chile ING1310 Clase 23 31 / 38

Ejemplo: Clases class Alumno : def init (self, nombre, p1, p2, ex): self. nombre = nombre self.p1 = p1 self.p2 = p2 self.ex = ex def promediopruebas ( self ): return ( self.p1 + self.p2)/2 def promedio ( self ): prompruebas = self. promediopruebas () prom = prompruebas *0.6 + self. ex *0.4 return prom alumno = Alumno (" Pedrito ", 4.5, 3.5, 5.6) print alumno. promediopruebas () print alumno. promedio () C.Reveco Facultad de Ingeniería/Universidad de los Andes/Chile ING1310 Clase 23 32 / 38

Python Módulos C.Reveco Facultad de Ingeniería/Universidad de los Andes/Chile ING1310 Clase 23 33 / 38

Múltiples archivos Dentro de python cada archivo es llamado un módulo Cada módulo puede contener funciones, clases,... Como es un lenguaje interpretado, se ejecuta un módulo (no hay proyectos) Si quiero usar otros módulos debo incorporarlos expĺıcitamente mediante el comando import El nombre del archivo corresponderá al nombre del módulo (sin la extensión) import funciones C.Reveco Facultad de Ingeniería/Universidad de los Andes/Chile ING1310 Clase 23 34 / 38

C.Reveco Facultad de Ingeniería/Universidad de los Andes/Chile ING1310 Clase 23 35 / 38

Python: Rango Cree una clase Rango cuyo constructor reciba dos valores: un mínimo y un máximo. Su clase debe tener dos métodos: Retorna la suma de los números en el rango con salto 1, y también retorna la multiplicación de esos mismos valores. Recibe un entero como salto, y retorna la suma de la secuencia formada por los números entre mínimo y máximo, con una distancia de salto entre ellos. Su programa debe pedirle al usuario el mínimo y el máximo, crear un objeto de su clase y mostrar el resultado de la invocación del primer método. Luego, pedir un salto al usuario e invocar el método que suma los valores con el salto, para mostrar el resultado entregado.

Python: Rango Este es un ejemplo del input y output de su programa: Ingrese el minimo: 5 Ingrese el maximo: 20 La suma es 180, y la multiplicacion es 5068545850368000 Ingrese un salto: 3 El resultado de la suma con salto es 55

class Rango : def init (self, min, max ): self. min = min self. max = max def sumamultiplicacion ( self ): suma = 0 mult = 1 for a in range ( self.min, self. max ): suma += a mult *= a return suma, mult def suma (self, salto ): res = 0; for a in range ( self.min, self.max, salto ): res += a return res print " Ingrese el minimo : " min = int ( raw_input ()) print " Ingrese el maximo : " max = int ( raw_input ()) r = Rango (min, max ) suma, mult = r. sumamultiplicacion () print " La suma es", suma, ", y la multiplicacion es", mult print " Ingrese un salto : " salto = int ( raw_input ()) res = r. suma ( salto ) print " El resultado de la suma con salto es", res