Profesor Miguel Cantillana
INS240 – Lenguajes de Programación
Ingeniería en Computación e Informática
Semestre 2017-1
Programación orientada a objetos con Python
#!/usr/bin/env python
print "Hola Mundo" # "Hola Mundo"
print "hola", "mundo" # "hola mundo"
print "Hola" + "Mundo" # "HolaMundo"
if (x) {
if (y) {
f1();
}
f2();
}
Código en C/Java
if x:
if y:
f1()
f2()
Código en Python
https://www.python.org/downloads/
mcantillana :: ~ » python3
Python 3.5.2 (default, Nov 17 2016, 17:05:23)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
# Un comando simple:
>>> print "Hola Mundo"
Hola Mundo
>>>
# Para salir del intérprete Ctrl-D (en Linux) o Ctrl-Z (en Windows) o:
>>> import sys
>>> sys.exit()
mcantillana :: ~
#!/usr/bin/env python
print “Hola Mundo!"
$ python helloworld.py
Hola Mundo!
# comentarios de línea se indican con carácter '#'
name = "Diego1" # asignación de valor a variable
if name == "Diego":
print "Aupa Diego"
else:
print "¿Quién eres?"
print "¡No eres Diego!"
$ python bloque.py
¿Quién eres?
¡No eres Diego!
>>> x = 4
>>> int (x)
4
>>> long(x)
4L
>>> float(x)
4.0
>>> complex (4, .2)
(4+0.2j)
>>> import string
>>> s1 = 'La vida es mejor con Python'
>>> string.find(s1, 'Python')
21
>>> provincia = 'Araba'
>>> "La capital de %s es %s" % (provincia, "Gasteiz")
'La capital de Araba es Gasteiz'
>>> len('La vida es mucho mejor con Python.')
>>> 34
>>> 'La vida es mucho mejor con Python.'.upper()
'LA VIDA ES MUCHO MEJOR CON PYTHON'
>>> "La vida es mucho mejor con Python".find("Python")
27
>>> "La vida es mucho mejor con Python".find('Perl')
-1
>>> 'La vida es mucho mejor con Python'.replace('Python', 'Jython')
'La vida es mucho mejor con Jython'
Listas []
>>> meses = ["Enero", "Febrero"]
>>> print meses[0]
Enero
>>> meses.append("Marzo")
>>> print meses
['Enero', 'Febrero', 'Marzo']
>>> print meses[1:2]
['Febrero']
>>> print meses+meses
['Enero', 'Febrero', 'Marzo', 'Enero', 'Febrero', 'Marzo']
>>> meses.append (meses)
>>> print meses
['Enero', 'Febrero', 'Marzo', ['Enero', 'Febrero', 'Marzo' ]]
>>> meses.append(1)
['Enero', 'Febrero', 'Marzo', ['Enero', 'Febrero', 'Marzo' ], 1]
>>> items = [4, 6]
>>> items.insert(0, -1)
>>> items
[-1, 4, 6]
>>> items.append(555)
>>> items [-1, 4, 6, 555]
>>> items.pop()
555
>>> items [-1, 4, 6]
mcantillana :: ~ » python3
Python 3.5.2 (default, Nov 17 2016, 17:05:23)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> mitupla = ('a', 1, "hola")
>>> mitupla[2]
'hola'
>>> mitupla[0] = 20
>>> mydict = {"altura" : "media", "habilidad" : "intermedia", "salario" : 1000 }
>>> print mydict
{altura': 'media', 'habilidad': 'intermedia', 'salario': 1000}
>>> print mydict["habilidad"]
intermedia
if mydict.has_key('altura'):
print 'Nodo encontrado'
if 'altura' in mydict:
print 'Nodo encontrado'
q = 4
h = 5
if q < h :
print "primer test pasado"
elif q == 4:
print “q tiene valor 4”
else:
print "segundo test pasado"
>>> python condicional.py
primer test pasado
# Ej. bucle.py
for x in range(1,5):
print x
$ python bucle.py
1 2 3 4
reply = 'repite'
while reply == 'repite':
print 'Hola'
reply = raw_input('Introduce "repite" para hacerlo de nuevo: ')
Hola
Introduce "repite" para hacerlo de nuevo: repite
Hola
Introduce "repite" para hacerlo de nuevo: adiós
# funcionsimple.py
def myfunc(a,b):
sum = a + b
return sum
print myfunc (5,6)
$ python funcionsimple.py
11
# funcionvaloresdefecto.py
def myfunc(a=4,b=6):
sum = a + b
return sum
print myfunc()
print myfunc(b=8) # a es 4, sobreescribir b a 8
$ python funcion.py
10
12
# funcionargumentosvariablesyconclave.py
def testArgLists_1(*args, **kwargs):
print 'args:', args
print 'kwargs:', kwargs
testArgLists_1('aaa', 'bbb', arg1='ccc', arg2='ddd')
def testArgLists_2(arg0, *args, **kwargs):
print 'arg0: "%s"' % arg0
print 'args:', args
print 'kwargs:', kwargs
print '=' * 40
testArgLists_2('un primer argumento', 'aaa', 'bbb', arg1='ccc',\
arg2='ddd')
args: ('aaa', 'bbb')
kwargs: {'arg1': 'ccc', 'arg2': 'ddd'}
========================================
arg0: "un primer argumento"
args: ('aaa', 'bbb')
kwargs: {'arg1': 'ccc', 'arg2': 'ddd'}
# Ejemplo:
class Ejemplo:
pass
Las clases de Python no tienen constructores o destructores explícitos. Las clases de Python tienen algo
similar a un constructor: el método __init__.
import math
class Complejo(Object):
def __init__(self, real, imaginario):
self.real = real
self.img = imaginario
def abs(self):
print math.sqrt((self.real*self.real)+(self.img*self.img))
import math
class Complejo(Object):
def __init__(self, real, imaginario):
self.real = real
self.img = imaginario
def abs(self):
print math.sqrt((self.real*self.real)+(self.img*self.img))
def main():
numero = Complejo(3,4)
numero.abs()
if __name__ == '__main__':
main()
import math
class Complejo(Object):
def __init__(self, real, imaginario):
self.real = real
self.img = imaginario
def abs(self):
print math.sqrt((self.real*self.real)+(self.img*self.img))
def main():
numero = Complejo(3,4)
numero.abs()
print numero.real
print numero.img
if __name__ == '__main__':
main()
Diseñar un programa que modele acciones y atributos de un perrro. El programa debe permitir realizar las acciones de caminar, comer, ladrar y que tenga la posibilidad de enfermarse. Al crear un objeto perro debe comenzar con 1000 unidades de energía.
Las reglas para implementar estas acciones son las siguientes:
Crea una clase llamada Libro que guarde la información de cada uno de los libros de una biblioteca.
La clase debe guardar el título del libro, autor, número de ejemplares del libro y número de ejemplares prestados. La clase contendrá los siguientes métodos: