• No se han encontrado resultados

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

N/A
N/A
Protected

Academic year: 2021

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

Copied!
38
0
0

Texto completo

(1)

ING1310 – Introducci´on a la Computaci´on

Python

Conceptos B´asicos Carlos Reveco [email protected] [email protected]

Facultad de Ingenier´ıa/Universidad de los Andes/Chile

Rev: 254

(2)

En esta clase

1 Python Motivaci´on Variables I/O Consola Control de Flujo

Funciones, M´etodos y Clases M´odulos

(3)

Python

(4)

Python

(5)

Nuevo lenguaje, mismo modo de pensar

• Veremos un nuevo lenguaje de programaci´on: Python

• Espec´ıficamente en su versi´on 2.6

• Su uso sigue siendo para programar

• Los grandes cambios est´an en la sint´axis,

• la forma de pensar se mantiene.

• Ustedes no aprendieron Java, aprendieron a programar.

(6)

¿Qu´

e 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´aticas puras,

• reflexivo→permite el acceso y modificaci´on de si mismo.

• Python es un lenguaje interpretado (script):

• Su ejecuci´on se realiza mediante un int´erprete (no hay compilaci´on),

• manejo de tipos de forma din´amica,

• multiplataforma,

(7)

Y?

Y hay m´as cosas que lo hacen especial:

• open source → gratis

• desarrollo constante que lo mantiene actualizado

• comunidad activa en el desarrollo de m´odulos para distintos problemas • programas con poco overhead, f´acil para crear programas desechables • estable

• manejo autom´atico de memoria mediante conteo de referencias y recolecci´on de basura

• rendimiento superior a otros lenguajes interpretados

• extensiones con C o C++

(8)

Ejemplo: Hola Mundo en Python

p r i n t " H o l a M u n d o ! "

(9)

Detalles sint´

acticos b´

asicos

• El t´ermino de una sentencia est´a dado por el salto de l´ınea • no se necesita un caracter especial como en Java (;)

• Los bloques se crean mediante un Tab

• no se utilizan los par´entesis de llave

(10)

Operadores b´

asicos

• Se pueden utilizar los operadores aritm´eticos binarios cl´asicos (+,−, ∗,/, %)

• //→divisi´on entera,

• ∗∗ →elevado a

• Tambi´en operadores unitarios cl´asicos (+,−)

• Los operadores de comparaci´on b´asicos son ==,! =,<,>,<=,>= • is [not]→comparaci´on a nivel de objetos

• [not] in→evaluaci´on sobre colecciones (incluidos strings)

(11)

Python

Variables

(12)

Tipos din´

amicos

• No es necesario darles un tipo expl´ı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´en.

(13)

Ejemplo:Declaraci´onde variables a = 2

b = a + 4 a = " un t e x t o "

• El c´odigo anterior funciona sin necesidad de nada m´as.

(14)

Alcance (

scope

)

• Las variables viven dentro de su bloque.

• Si una variable se declarafuera de todo, entonces puede usarse en cualquier parte.

(15)

Python

I/O Consola

(16)

Output

• Para mostrar algo en consola utilizamos la instrucci´on printseguida por lo que se quiere mostrar.

• Es una instrucci´on, no un m´etodo.

Ejemplo: Imprimiendo en la consola

p r i n t " H o l a M u n d o ! " a = " I n g e n i e r i a "

p r i n t a a = 2* len ( a )

(17)

Output

• Para imprimir m´ultiples datos se utiliza la coma (,)

Ejemplo: Imprimiendo en la consola a = 8

b = 6 c = ’ l a l a ’

p r i n t " Los v a l o r e s son : ", a , b , c

• Para los strings se puede usar tanto la comilla doble como la simple.

(18)

Input

• Para recibir informaci´on del usuario existe el m´etodo raw input • Recibe como par´ametro un texto a mostrar.

• Retorna lo ingresado por el usuario como texto.

Ejemplo: Recibiendo desde la consola

a = r a w _ i n p u t (" I n g r e s a un n u m e r o : ") a = int ( a )

p r i n t " Tu n u m e r o al c u a d r a d o es : ", a **2

(19)

Python

Control de Flujo

(20)

Condiciones

• En python existen sentencias paraif,else yelse if

• La sint´axis es un poco diferente Sint´axis Python: Condiciones

if c o n d i c i o n : ... e l i f c o n d i c i o n : ... e l s e: ...

(21)

Ejemplo: Condiciones e d a d = int ( r a w _ i n p u t (" I n g r e s e su e d a d ") ) g e n e r o = r a w _ i n p u t (" I n g r e s e su g e n e r o : ( M ) a s c u l i n o o ( F ) e m e n i n o ") if e d a d < 2: p r i n t " Aun es un b e b e " e l i f e d a d < 12 and g e n e r o == " M ": p r i n t " E r e s un c h i q u i l l o " e l i f e d a d < 12 and g e n e r o == " F ": p r i n t " E r e s una c h i q u i l l a " e l i f e d a d < 18: p r i n t " Te f a l t a p o c o p a r a ser m a y o r de e d a d " e l s e: p r i n t " E r e s m a y o r de e d a d "

(22)

Ciclos

• En python existen sentencias parawhiley for

Sint´axis Python: Ciclos

w h i l e c o n d i c i o n : ...

for x in l i s t a : ...

• Elfordifiere un poco del uso com´un en otros lenguajes: • En python siempre itera sobre una lista.

• En cada pasadaxcambia al siguiente valor de la lista.

(23)

Generar secuencia para

for

• El m´etodo range es una forma sencilla de crear una secuencia. • Lista de n´umeros que sigue un patr´on fijo.

• Tiene 3 alternativas para los par´ametros: • m´aximo (no inclu´ıdo)

• m´ınimo, m´aximo (no inclu´ıdo)

• m´ınimo, m´aximo (no inclu´ıdo), salto

Ejemplo: Condiciones # [0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9] r a n g e ( 1 0 ) # [5 , 6 , 7 , 8 , 9] r a n g e (5 , 10) # [ -50 , -30 , -10 , 10 , 30 , 50 , 70 , 90] r a n g e ( -50 , 100 , 20)

• El # sirve para hacer comentarios

• Es posible hacer printdirectamente sobre una lista.

(24)

Ejemplo: Control de Flujo max = int ( r a w _ i n p u t (" I n g r e s a el m a x i m o : ") ) min = int ( r a w _ i n p u t (" I n g r e s a el m i n i m o : ") ) if max < min : p r i n t " D a t o s i n c o r r e c t o s " e l s e: res = 0

for x in r a n g e ( min , max ) : res = res + x

(25)

Python

Funciones, M´etodos y Clases

(26)

etodos

Funciones

• A los m´etodos 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 comandodefpara declararlas

Sint´axis Python: Funci´on

def n o m b r e F u n c i o n ( p a r a m e t r o s ) :

p a s s

(27)

Funciones

• Los par´ametros de la funci´on no llevan tipo • La funci´on tampoco tiene tipo de retorno

• Se pueden retornar m´ultiples valores utilizando el comandoreturn • Los valores van separados por coma

• Se deben recibir en m´ultiples variables • Siempre hay retorno:

• Si no se retorna expl´ıcitamente, entonces la funci´on retornaNone

(28)

Ejemplo: Funciones def m e t o d o 1 () : p r i n t " m e t o d o 1 " def m e t o d o 2 ( n ) : r e t u r n n *4 def m e t o d o 3 ( n , m ) : r e t u r n n +1 , m +2 def m e t o d o 4 ( n ) : if n > 0: r e t u r n n * n m e t o d o 1 () p r i n t m e t o d o 2 (2) p r i n t m e t o d o 3 (3 , 5) p r i n t m e t o d o 4 (3) p r i n t m e t o d o 4 ( -2)

(29)

Ejemplo: Funciones def m i n i m o Y m a x i m o ( n , m ) : if n <= m : r e t u r n n , m e l s e: r e t u r n m , n a = int ( r a w _ i n p u t (" I n g r e s e un n u m e r o : ") ) b = int ( r a w _ i n p u t (" I n g r e s e o t r o n u m e r o : ") ) min , max = m i n i m o Y m a x i m o ( a , b ) p r i n t " El m i n i m o es ", min , " y el m a x i m o es ", max

(30)

Clases

• Para definir clases se utiliza el comando class Sint´axis Python: Clase

c l a s s N o m b r e C l a s e :

p a s s

• No se declaran atributos.

• No se maneja visibilidad de los componentes.

• Todos los m´etodos deben recibir como primer par´ametro el elemento self

• Elself mantiene la informaci´on de la clase,

(31)

Crear objeto

• Simplemente se asigna a la variable el nombre de la clase

• no se usan comandos adicionales.

(32)

Ejemplo: Clases

c l a s s A l u m n o :

def _ _ i n i t _ _ ( self , nombre , p1 , p2 , ex ) : s e l f . n o m b r e = n o m b r e s e l f . p1 = p1 s e l f . p2 = p2 s e l f . ex = ex def p r o m e d i o P r u e b a s ( s e l f ) : r e t u r n ( s e l f . p1 + s e l f . p2 ) /2 def p r o m e d i o ( s e l f ) : p r o m P r u e b a s = s e l f . p r o m e d i o P r u e b a s () p r o m = p r o m P r u e b a s * 0 . 6 + s e l f . ex * 0 . 4 r e t u r n p r o m a l u m n o = A l u m n o (" P e d r i t o ", 4.5 , 3.5 , 5 . 6 ) p r i n t a l u m n o . p r o m e d i o P r u e b a s ()

(33)

Python

odulos

(34)

ultiples archivos

• Dentro de python cada archivo es llamado un m´odulo • Cada m´odulo puede contener funciones, clases, . . .

• Como es un lenguaje interpretado, se ejecuta un m´odulo (no hay proyectos)

• Si quiero usar otros m´odulos debo incorporarlos expl´ıcitamente

mediante el comandoimport

• El nombre del archivo corresponder´a al nombre del m´odulo (sin la extensi´on)

(35)

Ejercicio

(36)

Cree una clase Rangocuyo constructor reciba dos valores: un m´ınimo y un m´aximo.

Su clase debe tener dos m´etodos:

• Retorna la suma de los n´umeros en el rango con salto 1, y tambi´en retorna la multiplicaci´on de esos mismos valores.

• Recibe un entero comosalto, y retorna la suma de la secuencia

formada por los n´umeros entrem´ınimoym´aximo, con una distancia desalto entre ellos.

Su programa debe pedirle al usuario el m´ınimo y el m´aximo, crear un objeto de su clase y mostrar el resultado de la invocaci´on del primer m´etodo. Luego, pedir un salto al usuario e invocar el m´etodo que suma los valores con el salto, para mostrar el resultado entregado.

(37)

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

(38)

s e l f . min = min s e l f . max = max

def s u m a M u l t i p l i c a c i o n ( s e l f ) : s u m a = 0

m u l t = 1

for a in r a n g e ( s e l f . min , s e l f . max ) : s u m a += a

m u l t *= a r e t u r n suma , m u l t def s u m a ( self , s a l t o ) :

res = 0;

for a in r a n g e ( s e l f . min , s e l f . max , s a l t o ) : res += a r e t u r n res p r i n t " I n g r e s e el m i n i m o : " min = int ( r a w _ i n p u t () ) p r i n t " I n g r e s e el m a x i m o : " max = int ( r a w _ i n p u t () ) r = R a n g o ( min , max )

Referencias

Documento similar

1. LAS GARANTÍAS CONSTITUCIONALES.—2. C) La reforma constitucional de 1994. D) Las tres etapas del amparo argentino. F) Las vías previas al amparo. H) La acción es judicial en

Como asunto menor, puede recomendarse que los órganos de participación social autonómicos se utilicen como un excelente cam- po de experiencias para innovar en materia de cauces

Tal y como contemplamos en la Figura 7, las búsquedas que realizan los usuarios de YouTube sobre Jabhat al Nusrah están asociadas con un contenido eminentemente violento (63,40% de

— La «guillotina» del Tribunal Europeo contra el nega- cionismo del Holocausto y la más modesta respuesta ante discursos revisionistas y negacionistas de otros graves

La conclusi´ on fue que para un n´ umero peque˜ no de par´ ametros (del orden de la decena), el m´ etodo simplex es hasta 4 veces m´ as r´ apido, obteniendo unos valores del m´

Se marca cada entrada de la tabla que se corresponde con una pareja (estado final, estado no final), porque todas esas parejas se corresponden con pares de estados distinguibles..

En el capítulo de desventajas o posibles inconvenientes que ofrece la forma del Organismo autónomo figura la rigidez de su régimen jurídico, absorbentemente de Derecho público por

Fundación Ramón Menéndez Pidal / Universidad Autónoma de Madrid... Fundación Ramón Menéndez Pidal / Universidad Autónoma