PYTHON

  • Lenguaje interpretado o de script
  •  Tipo Dinámico
  • Fuertemente Tipado
  • Multiplataforma
  • Orientado a Objetos

Python Shell

Inicio -> Todos los programas -> Python 3.5 -> IDLE (Python 3.5 32-bit)

Tipos de variables

Tipos de variables

 NO es necesario declarar el tipo de variable, Python reconoce automáticamente que tipo de variable es.

Obtner tipo de variable

type(nombreVariable)

Definir una variable

Las variables en Python se crean cuando se definen por primera vez, es decir,
cuando se les asigna un valor por primera vez.
Para asignar un valor a una variable se utiliza el operador de igualdad (=).

 

La variable se escribe siempre a la izquierda de la igualdad

Conversiones

Ej:  no podemos hacer cosas como por ejemplo operar cadenas 'string' con números.

 

 

>>> numero = '45'
>>> numero+1
Traceback (most recent call last):
  File "<pyshell#1>", line 1, in <module>
    numero+1
TypeError: Can't convert 'int' object to str implicitly

Solución

>>> int(numero)+1
46
>>> 

Anteponemos el tipo de dato al cual queremos convertir y la variable entre paréntesis

Operaciones

Escritura

>>> print("hola")
hola
>>> 

Mostrar valores al usuario en

salida estándar → Pantalla

Lectura

Nombre = input("Dígame su nombre: ")
apellido = input("Dígame su apellido, " + nombre +  ": ")
print("Me alegro de conocerte,", nombre, apellido)

Leer valores del usuario desde

entrada estándar → teclado

Lectura

SUFICIENTE TEORÍA POR HOY!

A programar!

PYTHON

Estructuras de Decisión

Algoritmo

"Secuencia de instrucciones para resolver un problema"

 

Utiliza sentencias

  • Asignación
  • Decisión
  • Iteración

Recordando...

Recordando...

La variable contiene un valor luego de la ejecución

Decisión

Permite elegir el camino a seguir de acuerdo con una condición

Estructura if...else...

if condición:
  aquí van las órdenes que se ejecutan si la condición es cierta
  y que pueden ocupar varias líneas
else:
  y aquí van las órdenes que se ejecutan si la condición es
  falsa y que también pueden ocupar varias líneas

Lo contenido dentro de la condición debe ser de tipo Boolean

Estructura if...else...

Estructura if...else...

numero=int(input("ingrese un numero: "))
if numero%2 == 0:
    print("el numero es par")
else:
    print("el numero es impar")

Ejemplo: Verificar si un número ingresado es par o impar

Estructura if...else...

numero=int(input("ingrese un numero: "))
if (numero < 0):
    numero=int(input("ingrese numero positivo: "))
if (numero%2==1):
    print("valor es impar")
else:
    print("valor es par")

Ejemplo: Verificar si un número ingresado es par o impar, permitiendo solo números positivos

Decisiones Encadenadas

if condición_1:
  bloque 1
elif condición_2:
  bloque 2
else:
  bloque 3

Es equivalente a:

if condición_1:
  bloque 1
else:
  if condición_2:
    bloque 2
  else:
    bloque 3

Decisiones Encadenadas

numero=int(input("ingrese un numero: "))

if (numero == 1):
    print("Lunes")

elif (numero ==2):
    print("Martes")

elif (numero ==3):
    print("Miercoles")
...

else:
    print("No válido")

Más de una salida posible

Ejemplo: Ingresar número de día del 1 al 7 y responder con el nombre

Decisiones Encadenadas

Decisiones Encadenadas

  • Son excluyentes
  • Sin else se verificarían todas las condiciones aunque ya se haya encontrado la verdadera

PYTHON

Estructuras de Iteración

Estructuras de Iteración

  • Permite repetir sentencias mientras se cumpla una condición
  • Genera un bucle en la ejecución

Estructuras de Iteración

Ejemplo: No permitir Números negativos

numero=int(input("ingrese un numero: "))
if (numero < 0):
    numero=int(input("ingrese numero positivo: "))
...

Sólo verifica una vez!!

Estructuras de Iteración

Estructuras de Iteración

while condicion:
    cuerpo del bucle

Lo contenido dentro del while debe ser de tipo Boolean

While

Estructuras de Iteración

x=int(input("ingrese un numero positivo: "))
while (x<0):
    print(x,"no es positivo!!")
    x=int(input("ingrese un numero positivo: "))
print(x, "si es un numero positivo")  

Ej: No permitir el ingreso de números negativos

Estructuras de Iteración

El tipo de variable range()

  • Crea una lista inmutable de números enteros en sucesión aritmética.
  • Puede tener uno, dos o tres argumentos numéricos enteros.

El tipo de variable range()

  • Unico argumento: range(n) crea una lista creciente de n términos enteros que empieza en 0 y acaba antes de llegar a n.
  • Dos argumentos: range(m, n) crea una lista creciente de términos enteros que empieza en m y acaba antes de llegar a n (los términos aumentan de uno en uno).
  • Tres argumentos: range(m, n, p) crea una lista que empieza en m y acaba antes de llegar a n, avanzando de p en p. El valor de p puede ser positivo o negativo.

Estructuras de Iteración

for

for variable in elemento iterable (lista, cadena, range, etc.):
    cuerpo del bucle
  • Sirve para un número fijo de iteraciones
  • El cuerpo del bucle se ejecuta tantas veces como elementos tenga el elemento recorrible (elementos de una lista o de un range(), caracteres de una cadena, etc.).

Estructuras de Iteración

Ejemplo: Imprimir la tabla del 2

iteraciones=10
for i in range(iteraciones):
    print("2 x",i,"=",2*i)

Estructuras de Iteración

Operadores Relacionales

Operadores Lógicos

Tablas

Break

●Corta la ejecución de un bucle

●Generalmente se incluye dentro de un condicional (decisión)

Break

contador = 0
while (contador < 5):
   print ("El contador es :", contador)
   contador = contador + 1
   if (contador > 3):
       break

print ("Fin del programa")

¿Qué mostrará este programa?

Continue

●Salta a la siguiente iteración dentro de un bucle

●Generalmente se incluye dentro de un condicional (decisión)

Continue

edad = 0
while edad < 18:
    edad = edad + 1
    if edad % 2 == 0:
        continue
    print ("Felicidades, tienes " + str(edad))

¿Qué mostrará este programa?

Ejemplo

contador = 0
while (contador < 5):
   print ("El contador es :", contador)
   contador = contador + 1
   continue
   if (contador > 3):       
       break

print ("Fin del programa")

¿Qué mostrará este programa?

Ejemplo

contador = 0
while (contador < 5):
   print ("El contador es :", contador)
   contador = contador + 1
   break
   if (contador > 3):     
       continue

print ("Fin del programa")

¿Y este otro?

Pass

No hace nada. Se puede usar cuando una sentencia es requerida por la sintáxis pero el programa no requiere ninguna acción

while True:
...     pass  # Espera ocupada hasta una interrupción de teclado (Ctrl+C)
...

Hoy fue demasiado...

Ahora...

A divertirse con 26 ejercicios!!

PYTHON

¿Dudas TP N°2?

Si, eran muchos ejercicios...

Ejercicio 25:

El objetivo del programa es contar cuántas veces aparece un carácter en una
cadena de texto ingresada por el usuario....

Solución propuesta:

cadena = input("ingrese una cadena ")
caracter = input("ingrese una letra ")

contador = 0

for letra in cadena:
    if letra == caracter:
        contador = contador +1
        
print("la letra",caracter,"aparece",contador,"veces")

Solución rápida:

cadena = input("ingrese una cadena ")
caracter = input("ingrese una letra ")
print("la letra",caracter,"aparece",cadena.count(caracter),"veces")
count("subcadena" [,posicion_inicio,posicion_fin])

count es una función predefinida en Python que retorna un entero representando la cantidad de apariciones de subcadena dentro de cadena.

Ahora si...continuemos

Nadaremos... =D

PYTHON

Estructuras de Datos

Problema

Ingresar 2 valores enteros

numero1=int(input("ingrese un numero: "))
numero2=int(input("ingrese otro numero: "))

Problema

Ingresar 5 valores enteros

numero1=int(input("ingrese un numero: "))
numero2=int(input("ingrese otro numero: "))
numero3=int(input("ingrese otro numero: "))
numero4=int(input("ingrese otro numero: "))
numero5=int(input("ingrese otro numero: "))

Problema

Ingresar N valores enteros

numero1=int(input("ingrese un numero: "))
numero2=int(input("ingrese otro numero: "))
numero3=int(input("ingrese otro numero: "))
numero4=int(input("ingrese otro numero: "))
numero5=int(input("ingrese otro numero: "))
...
...

Estructuras de Datos

Cuando trabajamos con múltiples datos necesitamos formas de almacenarlos en una variable, así podemos manipularlos

Listas

Las listas son conjuntos ordenados de elementos (números, cadenas, listas, etc).

Listas

Declaración:

Las listas se delimitan por corchetes "[ ]" y los elementos se separan por comas.

Ejemplo:

Simpson=['Marge','Homero','Lisa','Bart','Maggie']

Listas

¡Son miles!

Y peor aún: No se todos los nombres!!!

Listas

Índices:

Las listas pueden ser numéricas, booleanas, de cadenas de caracteres,etc...

Listas

Concatenar listas:

El operador suma (+) necesita que los dos operandos sean listas:

>>> vocales = ["A","E", "I", "O"]
>>> vocales = vocales + ["U"]
['A','E', 'I', 'O', 'U']

Salida:

Listas

Recorrer listas:

Imprimir el listado sería tan sencillo como hacer:

>>> vocales = ["A","E", "I", "O","U"]
print(vocales[0])
print(vocales[1])
print(vocales[2])
print(vocales[3])
print(vocales[4])

Recordar: El primer índice es 0!

Pero, ¿Si tuviera 1000 elementos?

Listas

Recorrer listas:

El bucle for nos permite solucionar esto de un modo elegante.

>>> vocales = ["A","E", "I", "O","U"]
for indice in vocales:
    print(indice)

La variable indice, definida ad hoc en el propio bucle, va a tomar, uno a uno, todos los elementos de la lista vocales, comenzando por ‘A’ y terminando en 'U'.

Listas

Asignar valores:

>>> vocales = []
vocales[0]='A'
vocales[1]='E'
vocales[2]='I'
vocales[3]='O'
vocales[4]='U'

Listas

Asignar valores:

>>> vocales = []
vocales.append("A")
vocales.append("E")
vocales.append("I")
vocales.append("O")
vocales.append("U")

Listas

Sublistas:

>>> dias = ["Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado", "Domingo"]
>>> dias[1:4] # Se extrae una lista con los valores 1, 2 y 3

Salida:
['Martes', 'Miércoles', 'Jueves']

Se pueden extraer sublistas, utilizando la notación nombreDeLista[inicio:límite]

Ejemplo:

Listas

Eliminar elementos:

>>> letras = ["A", "B", "C", "D", "E", "F", "G", "H"]
>>> del letras[4]   # Elimina la sublista ['E']

print(letras)

Salida:
['A', 'B', 'C', 'D', 'F', 'G', 'H']

La palabra reservada del permite eliminar un elemento o varios elementos a la vez de una lista, e incluso la misma lista.

Ejemplo:

Listas

Saber si un valor está o no en una lista

>>> letras = ["A", "B", "C", "D", "E", "F", "G", "H"]
>>> 'A' in letras

Salida:
True

Devuelve un valor lógico: True si el elemento está en la lista, False si el elemento no está en la lista.

Ejemplo:

elemento in lista 

Listas

Operaciones:

simpson=[]
cantidad=int(input("ingrese la cantidad de personajes que reconozcas: "))
for i in range(cantidad):
    personaje=input("ingrese el nombre del personaje que reconozca: ")
    simpson.append(personaje)
print("Los personajes reconocidos son:", simpson)

Solución a los Simpson:

Salida:

ingrese la cantidad de personajes que reconozcas: 5
ingrese el nombre del personaje que reconozca: smithers
ingrese el nombre del personaje que reconozca: Bob Patiño
ingrese el nombre del personaje que reconozca: carl
ingrese el nombre del personaje que reconozca: Sr. Burns
ingrese el nombre del personaje que reconozca: Ned Flanders
Los personajes reconocidos son: ['smithers', 'Bob Patiño', 'carl', 'Sr. Burns', 
'Ned Flanders']
>>> 

Tuplas

Conjunto ordenado e inmutable de elementos del mismo o diferente tipo.

Tuplas

Las tuplas se representan escribiendo los elementos entre paréntesis y separados por comas.

Declaración:

Ejemplo:

bouvier=('Patty','Selma')

Tuplas

Acceso a Elementos:

bouvier='Patty','Selma'
print(bouvier[1])

Salida:
Selma

Tuplas

Obtener índice:

bouvier='Patty','Selma'
bouvier.count('Selma')

Salida:
1

Contar cantidades:

bouvier.index('Patty')

Salida:
0

Diccionarios

Tipo de estructuras de datos que permite guardar un conjunto no ordenado de pares clave-valor, siendo las claves únicas dentro de un mismo diccionario (es decir que no pueden existir dos elementos con una misma clave).

Diccionarios

Declaración:

Ejemplo:

mini_padron = { '34586': 'Brest Federico', '38507': 'Boglioli Alan', 
'37463': 'Casas Malena', '33157': 'Medina Coca Luis' }

print (mini_padron['34586'])
Salida:
        Brest Federico
padron=dict()

Diccionarios

Recorrer diccionario:

34586 Brest Federico
33157 Medina Coca Luis
37463 Casas Malena
38507 Boglioli Alan

for k, v in mini_padron.items():
    print(k, v)

Eliminar elemento:

del mini_padron['34586']
Salida:
{'37463': 'Casas Malena', '38507': 'Boglioli Alan', '33157': 'Medina Coca Luis'}

Algunas funciones:

# Declaración de un diccionario
diccionario = dict()

# Devuelve el numero de elementos que tiene el diccionario
len(dict)

# Compara el número de elementos distintos que tienen los dos 
cmp (dict1,dict2)

# Devuelve una lista con las claves del diccionario
dict.keys()

# Devuelve una lista con los valores del diccionario
dict.values()

# Devuelve el valor del elemento con clave key. Sino devuelve default
dict.get(key, default=None)

# Inserta un elemento en el diccionario clave:valor. Si la clave existe no lo inserta
dict.setdefault(key, default=None)

# Insertamos un elemento en el diccionario con su clave:valor
dict['key'] = 'value'

# Eliminamos el elemento del diccionario con clave key
dict.pop('key',None)

Diccionarios

Algunas funciones:

# Devuleve la copia de un diccionario dict2 = dict.copy()
dict.copy()

# Elimina todos los elementos de un diccionario
dict.clear()

# Crea un nuevo diccionario poniendo como claves las que hay en la lista 
#y los valores por defecto si se les pasa
dict.fromkeys(list, defaultValue)

# Devuelve true si existe la clave. Sino devuelve false
dict.has_key(key)

# devuelve un lista de tuplas formadas por los pares clave:valor
dict.items()

# Añade los elementos de un diccionario a otro
dict.update(dict2)

Diccionarios

Conjuntos

Un conjunto es una colección no ordenada y sin elementos repetidos. Los usos básicos de éstos incluyen verificación de pertenencia y eliminación de entradas duplicadas. Los conjuntos también soportan operaciones matemáticas como la unión, intersección, diferencia, y diferencia simétrica

Conjuntos

Las llaves o la función set() pueden usarse para crear conjuntos

Conjuntos

>>> a = set('abracadabra')
>>> b = set('alacazam')
>>> a                                  # letras únicas en a
{a', 'r', 'b', 'c', 'd'}
>>> a - b                              # letras en a pero no en b
{'r', 'b', 'd'}
>>> a | b                              # letras en a o en b
{'a', 'c', 'b', 'd', 'm', 'l', 'r', 'z'}
>>> a & b                              # letras en a y en b
{'a', 'c'}
>>> a ^ b                              # letras en a o b pero no en ambos
{'b', 'd', 'm', 'l', 'r', 'z'}

Ejemplo:

Ustedes ya saben que significa esto...

¡A trabajar!

PYTHON

Funciones

Problema

Contar la cantidad de A de una cadena

palabra=input("ingrese una palabra: ")
contador=0
for i in range(len(palabra)):
    if palabra[i]=="A" or palabra[i]=="a":
        contador=contador+1

print("la letra A aparece:",contador,"veces")

Problema

Contar la cantidad de A de dos cadenas

palabra=input("ingrese una palabra: ")
contador=0
for i in range(len(palabra)):
    if palabra[i]=="A" or palabra[i]=="a":
        contador=contador+1

print("la letra A aparece:",contador,"veces")

palabra2=input("ingrese otra palabra: ")
contador2=0
for i in range(len(palabra)):
    if palabra[i]=="A" or palabra[i]=="a":
        contador=contador+1

print("la letra A aparece:",contador2,"veces")

Problema

Contar la cantidad de A de dos cadenas

palabra=input("ingrese una palabra: ")
contador=0
for i in range(len(palabra)):
    if palabra[i]=="A" or palabra[i]=="a":
        contador=contador+1

print("la letra A aparece:",contador,"veces")

palabra2=input("ingrese otra palabra: ")
contador2=0
for i in range(len(palabra)):
    if palabra[i]=="A" or palabra[i]=="a":
        contador=contador+1

print("la letra A aparece:",contador2,"veces")

Función

Función

Porción o bloque de código reutilizable que se encarga de realizar una determinada tarea

Función

  • Se declaran con la palabra reservada def

  • Retorna 1 valor

  • Tiene parámetros de entrada para recibir valores

Invocación

  • Cuando se necesita de un procedimiento o función, se invoca utilizando su nombre

  • La invocación incluye valores para los parámetros de entrada

Problema

Contar la cantidad de A de una cadena

def contarA(palabra):
    contador=0
    for i in range(len(palabra)):
        if palabra[i]=="A" or palabra[i]=="a":
            contador=contador+1
    return contador

palabra=input("ingrese una palabra: ")
cantidad=contarA(palabra)
print("la letra A aparece:",cantidad,"veces")

Sintaxis Python

Declaración:

def NOMBRE( LISTA DE PARAMETROS ):
    SENTENCIAS

Variables

  • Las variables de un método son los parámetros que recibe y las variables declaradas dentro del cuerpo

  • Las variables no se comparten

  • Pueden tener nombres iguales porque cada uno tiene su copia

  • Se denominan variables locales

Por valor o por Referencia

Cuando trabajamos con parámetros por valor, se copia el contenido de la variable que llama a la función (argumento) a la variable que es recibida por la función (parámetro)

Por valor o por Referencia

Las variables: “variable1” y “variable2” tienen el mismo valor (2) pero, son variables diferentes, es decir, cualquier alteración de la variable dentro de la función no se verán fuera de esta, se utiliza normalmente al retornar el valor de la variable y ya se puede usar fuera de esta.

Función(variable2)
-inicio función-
procedimiento...
-fin función-
entero variable1 = 2
LlamadaAfunción(variable1)

Por valor o por Referencia

En los parámetros por referencia, lo que se pasa a la función es la dirección (o puntero) de la variable para hacer referencia a esta, es decir se trabaja sobre la misma variable que se pasa como Argumento, cualquier alteración de dicha variable dentro de la función se verá reflejada fuera de esta.

Por valor o por Referencia

Python pasa por valor todas las variables que sean del tipo inmutable (como las Tuplas) y pasa por referencia todas las variables que sean del tipo mutable (como las Listas).

Recursión

Se denomina llamada recursiva (o recursividad), a aquellas funciones que en su algoritmo, hacen referencia sí misma.

Recursión

Las llamadas recursivas suelen ser muy útiles en casos muy puntuales, pero debido a su gran factibilidad de caer en iteraciones infinitas, deben extremarse las medidas preventivas adecuadas y, solo utilizarse cuando sea estrictamente necesario y no exista una forma alternativa viable, que resuelva el problema evitando la recursividad.

Recursión

def jugar(intento=1): 
    respuesta = input("¿De qué color es una naranja? ") 
    if respuesta != "naranja": 
        if intento < 3: 
            print ("\nFallaste! Inténtalo de nuevo" )
            intento += 1 
            jugar(intento) # Llamada recursiva 
        else: 
            print ("\nPerdiste!" )
    else:
        print ("\nGanaste!")

print("Bienvenido al juego de la Naranja")        
jugar()

Ejemplo:

Recursión

Últimos 2 TP...

PYTHON

Orientación a Objetos

Orientación a Objetos

Por fin llegamos a la verdad de la milanga..!

Orientación a Objetos

Un Programa Orientado a Objetos (POO) se basa en una agrupación de objetos de distintas clases que interactúan entre sí y que, en conjunto, consiguen que un programa cumpla su propósito.

Clases

Las clases en este contexto permiten definir los atributos y el comportamiento, mediante métodos, de los objetos de un programa. Una clase es una especie de plantilla o prototipo que se utiliza para crear instancias individuales del mismo tipo de objeto.

Atributos

Los atributos definen las características propias del objeto y modifican su estado. Son datos asociados a las clases y a los objetos creados a partir de ellas.

Acceso

Tanto para acceder a los atributos como para llamar a los métodos se utiliza el método denominado de notación de punto que se basa en escribir el nombre del objeto o de la clase seguido de un punto y el nombre del atributo o del método con los argumentos que procedan: clase.atributo, objeto.atributo, objeto.método([argumentos]).

Características Principales

Se refiere a que un elemento pueda aislarse del resto de elementos y de su contexto para centrar el interés en lo qué hace y no en cómo lo hace (caja negra).  

Abstracción:

Características Principales

Es la capacidad de dividir una aplicación en partes más pequeñas independientes y reutilizables llamadas módulos.  

Modularidad:

Características Principales

Consiste en reunir todos los elementos posibles de una entidad al mismo nivel de abstracción para aumentar la cohesión, contando con la posibilidad de ocultar los atributos de un objeto (en Python, sólo se ocultan en apariencia).

Encapsulación:

Características Principales

Se refiere a que una clase pueda heredar las características de una clase superior para obtener objetos similares. Se heredan tanto los atributos como los métodos. Éstos últimos pueden sobrescribirse para adaptarlos a las necesidades de la nueva clase. A la posibilidad de heredar atributos y métodos de varias clases se denomina Herencia Múltiple.

Herencia:

Características Principales

class Padre():
 def __init__(self):
 self.x = 5;
 print("Este es el constructor de la clase padre")
 
 def metodo(self):
 print("Ejecutando método de clase padre")
class Hija(Padre):
 def metodoHija(self):
 print("Método clase hija")
>>> h = Hija()
Este es el constructor de la clase padre
>>> h.metodo()
Ejecutando método desde clase padre

Características Principales

A partir de una clase Persona (que contenga como atributos identificacion, nombre, apellido) podemos construir la clase AlumnoUTN que extiende a Persona y agrega como atributo el legajo.

Para indicar el nombre de la clase padre, se la pone entre paréntesis a continuación del nombre de la clase

Ejemplo de Herencia:

Características Principales

Ejemplo de Herencia:

class Persona(object):
    "Clase que representa una persona."
    def __init__(self, identificacion, nombre, apellido):
        "Constructor de Persona"
        self.identificacion = identificacion
        self.nombre = nombre
        self.apellido = apellido
    def __str__(self):
        return " %s: %s, %s" %
            (str(self.identificacion), self.apellido, self.nombre)
class AlumnoUTN(Persona):
    "Clase que representa a un alumno de UTN."
    def __init__(self, identificacion, nombre, apellido, padron):
        "Constructor de AlumnoUTN"
        # llamamos al constructor de Persona
        Persona.__init__(self, identificacion, nombre, apellido)
        # agregamos el nuevo atributo
        self.legajo= legajo

Propiedades

Son las características intrínsecas del objeto. Éstas, se representan a modo de variables, solo que técnicamente, pasan a denominarse propiedades:

Ejemplo:

class Pelo(): 
    color = "" 
    textura = "" 
 
class Ojo(): 
    forma = "" 
    color = "" 
    tamanio = ""

Métodos

Los métodos son funciones, solo que técnicamente se denominan métodos, y representan acciones propias que puede realizar el objeto (y no otro):

Ejemplo:

class Objeto(): 
    color = "verde" 
    tamanio = "grande" 
    aspecto = "feo" 
    antenas = Antena() 
    ojos = Ojo() 
    pelos = Pelo() 
 
    def flotar(self): 
        pass

Crear una Clase

Una clase consta de dos partes: un encabezado que comienza con el término class seguido del nombre de la clase (en singular) y dos puntos (:) y un cuerpo donde se declaran los atributos y los métodos:

Crear una Clase

class NombreClase:
    'Texto para documentar la clase (opcional)'
    varclase1 = "variable de clase1"
 
    def nombremetodo1(self, var1):
        self.var1 = var1
 
    def nombremetodo2(self):
        self.var1 += 1

Método constructor

El método __init__() es especial porque se ejecuta automáticamente cada vez que se crea una nuevo objeto. Este método, que es opcional, se llama constructor y se suele utilizar para inicializar las variables de las instancias

Crear instancias de una Clase

Para crear instancias de una clase se llama a la clase por su propio nombre pasando los argumentos que requiera el método constructor

Ejemplo:

alumno1 = Alumno("Maria", 8)
alumno2 = Alumno("Carlos", 6)

Acceder a variable

Para acceder a la variable de un objeto se indica el nombre del objeto, seguido de un punto y el nombre de la variable:

Ejemplo:

print(alumno1.nombre)  
print(alumno1.nota)  

Modificar una variable

Para modificar la variable de un objeto se utiliza la misma notación para referirse al atributo y después del signo igual (=) se indica la nueva asignación:

Ejemplo:

alumno1.nombre = "Carmela"

Acceder a variable

Para llamar a un método se indica el nombre de objeto, seguido de un punto y el nombre del método. Si se requieren varios argumentos se pasan escribiéndolos entre paréntesis, separados por comas (","). Si no es necesario pasar argumentos se añaden los paréntesis vacíos "()" al nombre del método.

Ejemplo:

print(alumno1.mostrarNombreNota())  # ('Carmen', 8)
print(alumno2.mostrarNombreNota())  # ('Carlos', 6)
objeto = MiClase() 
print objeto.propiedad 
objeto.otra_propiedad = "Nuevo valor" 
variable = objeto.metodo()
print variable
print objeto.otro_metodo()

Suprimir un atributo

Ejemplo:

del alumno1.nombre

Funciones

Ejemplo completo

class Alumno:
    'Clase para alumnos'
    numalumnos = 0
    sumanotas = 0
 
    def __init__(self, nombre, nota):
        self.nombre = nombre
        self.nota = nota
        Alumno.numalumnos += 1
        Alumno.sumanotas += nota
 
    def mostrarNombreNota(self):
        return(self.nombre, self.nota)
 
    def mostrarNumAlumnos(self):
        return(Alumno.numalumnos)
 
    def mostrarSumaNotas(self):
        return(Alumno.sumanotas)
 
    def mostrarNotaMedia(self):
        if Alumno.numalumnos > 0:
            return(Alumno.sumanotas/Alumno.numalumnos)
        else:
            return("Sin alumnos")

Curso Python

By Fede Brest

Curso Python

Apuntes del curso de "Aprendiendo a Programar con Python"

  • 1,376