Introducción al Lenguaje de Programación Python

D en C. Patricia Elizabeth Figueroa Millán

Acerca de Python

  • Creado en 1990 por Guido van Rossum.
  • Creado con la finalidad de hacer un lenguaje de programación poderoso, fácil de utilizar y de aprender. 
  • Su sintaxis esta diseñada para ser intuitiva y aún poderosa.
  • Otros lenguajes utilizan una sintaxis muy densa y restrictiva.
  • Lenguaje dinámico e Interpretado.

Acerca de Python

  • No se declaran tipos de variables.
  • Es sensitivo a mayúsculas y minúsculas.
  • Una forma rápida y motivadora de trabajar con Python es a través de su intérprete, en dónde se puede escribir código obteniendo resultados inmediatos.
  • El final de una línea marca el final de una sentencia.
  • Los comentarios comienzan con un # y se extiende hasta el final de la linea.

Intérprete de Python

Plantilla Básica de Python

Entrada y Salida de Datos

  • La salida de datos está representada por la función print.
print("Hola Mundo")
  • La entrada de datos está representada por la función input ( )  para cadenas de  (texto) por defecto. Requiere casting a otro tipo de ser deseado.
variable_cadena = input()
variable_entera = int(input())
variable_flotante = float(input())
  • Para mostrar el contenido de una variable en un print se hace:
print("¿Cómo te llamas?")
nombre = input()
print('¿Cómo te apellidas?')
apellido = input()
print('Nombre:', nombre, 'apellido:', apellido)
print('Nombre: %s Apellido: %s' %(nombre,apellido))

Piezas de un programa en Python

Nombres

  • Para dar  nombres a valores se usan variables. Todos esos nombres se llaman identificadores y Python tiene reglas sobre qué es un identificador válido y qué no lo es:
    • Un identificador comienza con una letra o con guión bajo ( _ ) y luego sigue con una secuencia de letras, números y guiones bajos.
    • Los espacios no están permitidos dentro de los
      identificadores.

Piezas de un Programa en Python

Palabras Reservadas

and

as

assert

break

class

continue

def

del

elif

else

except

exec

finally

for

from

global

if

import

in

is

lambda

not

or

pass

print

raise

return

try

while

with

yield

Variables en Python

  • En Python las variables son simples referencias a objetos, es decir, es una etiqueta o un alias con la que nos podemos referir a un objeto.
  • Tienen un identificador, tipo y valor, pero estas tres características son las del objeto al que hace referencia.
    • Ejemplo: si a una variable se le asigna el número 5, python crea un objeto número 5 y la variable hace referencia a este objeto, como se comprueba:
>>> id(5)  # Este es el identificador del objeto número entero "5"
505894368
>>> a = 5
>>> id(a)  # El identificador de la variable a es el mismo que el del número entero "5"
505894368
  • Lógicamente el tipo de una variable coincide con el tipo del objeto al que hace referencia la variable, como se comprueba en el siguiente ejemplo:
>>> type(5)  # El tipo del objeto número entero "5" es int
<class 'int'>
>>> a = 5
>>> type(a)  # El tipo de la variable a el mismo que el del objeto número entero "5" 
<class 'int'>   
  • Cuando se cambia el valor de una variable, la variable pasa de hacer referencia a un objeto a hacer referencia a otro:
>>> id(1)  
505894304   # Este es el identificador del objeto "1"
>>> id(2)
505894320   # Este es el identificador del objeto "2"
>>> a = 1   # Si la variable "a" se asigna al objeto "1" ...
>>> id(a)   # ... la variable "a" tiene el mismo identificador que el objeto "1"
505894304   
>>> a = 2   # Pero si la variable "a" se asigna al objeto "2" ...
>>> id(a)   # ... la variable "a" tiene el mismo identificador que el objeto "2"
505894320   
>>> b = a   # Si la variable "b" se asigna al mismo objeto que la variable "a" ...
>>> id(b)   # ... la variable "b" tiene el mismo identificador que el objeto "2"
505894320   
  • En algunos casos si se puede estar modificando el valor del objeto, cuando se hace el cambio de una variable.
    • Objetos inmutables: objetos que no se pueden modificar (números, cadenas y tuplas).
    • Objetos mutables: objetos que se pueden modificar (listas y diccionarios).
  • Como los objetos inmutables no se pueden modificar, al modificar la variables que hacen referencia a éstos, las variables pasan a hacer referencia a otros objetos (como se vió anteriormente).
  • Ej: cunado se modifica el valor de la variable b, con :
>>> b = b + 2           # Pero si "aumentamos" el valor de b en dos unidades ...
  • Python no aumenta el valor de b en 2 sino que crea un objeto con el valor de b + 2 y asigna a la variable b el objeto del resultado.
  • Lo mismo ocurre con las cadenas de texto:
>>> id("hola")
(47477152)  
>>> a = "hola"              
>>> b = a                            
>>> b = b + " y adios"        
>>> a, b                
('hola', 'hola y adios')
>>> id(a), id(b)
(47477152, 47475752)  

Variables en Python

  • En una misma línea se pueden definir simultáneamente varias variables, con el mismo valor o con valores distintos:
>>> a = b = 99
>>> c, d, e = "Mediterráneo", 10, ["pan", "queso"]

Control de Flujo en Python

  • A diferencia de otros lenguajes de programación en Python no existen marcas explicitas para señalar el comienzo y fin de bloques de sentencias. Para eto se hace uso de la "indentación" (4 espacios, no tabulaciones). 
  • En Python al igual que en otros lenguajes se puede especficar el control de flujo del programa a través de "estructuras de control de flujo".

Control de Flujo

Condicionales

  • La estructura de control más simple es la consstrucción if .
>>> i=5
>>> if i>4:
... print("Mayor")
...
Mayor
  • Estructura if ... elif ... else
>>> i=5
>>> if i>4:
...     print("Mayor")
... elif i==4:
...     print("Igual")
... else:
...     print("Menor")
...
Mayor

Bucles

  • La sintaxis del bucle for es la siguiente:
for variable in lista (o cadena):
    cuerpo del bucle
  • No es necesario definir la variable de control antes del bucle, aun cuando se puede utilizar una variable ya definida.
print("Comienzo")
for i in [0, 1, 2]:
    print("Hola ", end="")
print("Final")
print("Comienzo")
for i in range(3):
    print("Hola ", end="")
print("Final")
  • Un bucle for se limita a repetir el bloque de instrucciones pero además en cada iteracion la variable de control va tomando cada uno de los valores de la lista.
print("Comienzo")
for i in [3, 4, 5]:
    print("Hola. Ahora i vale", i, "y su cuadrado", i ** 2)
print("Final")

Bucle WHILE

  • Permite repetir la ejecución de un programa mientras se cumpla con una condición.
while condicion:
  cuerpo del bucle
i = 1
while i <= 3:
  print(i)
  i += 1
print("Final")

Funciones en Python

  • Las funciones se pueden definir en cualquier punto del programa, aunque siempre antes de ser utilizadas.
  • Las instrucciones que forman parte de la función se escriben usando una identación con respecto de la primera línea.
  • Por comodidad se puede especificar el final de la función con la palabra reservada return.
  • Ejemplo:
def calc_asegundos (horas, minutos, segundos):
    """ Transforma en segundos una medida de tiempo expresada en
    horas, minutos y segundos """
        segsal = 3600 * horas + 60 * minutos + segundos # regla de transformacion
    return segsal
>>> print calc_asegundos (1, 10, 10)
4210
>>> print( "Son", calc_asegundos (1, 10, 10), "segundos")
Son 4210 segundos
>>> y = calc_asegundos(1, 10, 10)
>>> z = calc_asegundos(2, 20, 20)
>>> y+z
12630

Clases en Python

  • Para definir una clase en Python solo se tiene que hacer uso de la palabra reservada class.
class mascota:
  • Puntos importantes a la hora de crear una clase:
    • Código indentado: el código de la clase no debe estar a la misma altura de la clase.
    • Sin paréntesis: Cuando creamos una clase en Python no debemos colocar paréntesis despues del nombre, al menos que se quiera que ésta herede características de otra clase.
  • Atributos de una clase:
    • De nada sirve una clase sin atributos que la definan.
class mascota:
   numero_de_patas = 0
   color = “marrón”
  • Instanciar una clase:
    • Una declaración de una clase no es algo que se pueda manipular directamente, es por eso qu se debe instanciar un objeto de esa clase para así modificar los atributos que ésta posea.
class mascota:
   numero_de_patas = 0
   color = “marrón”
 
perro = mascota()
  • Modificar los atributos:
    • Para referenciar una propiedad  o atributo de un objeto en Python, se debe seguir la siguiente estructura: 
perro.numero_de_patas
class mascota:
   numero_de_patas = 0
   color = “marrón”
 
perro = mascota()
perro.numero_de_patas = 4
perro.color = “negro”
print("El perro tiene “ + perro.numero_de_patas + “ patas y es de color “ + perro.color)
  • Modificar el valor del atributo.
  • Creación de métodos:
    • Los métodos son escencialmente funciones contenidas dentro de una clase. La única diferencia es que ahora la función pertenece a la clase.
    • Para definir un método se debe usar la palabra clave def, seguido por el nombre del método seguido por self .

 

class mascota:
   numero_de_patas = 0
   color = “marrón”
 
   def dormir(self):  
        print("zzz")  
 
perro = mascota()
perro.dormir()
  • Como vemos todo método tiene como primer parámetro el identificador self que tiene la referencia del objeto que llamó al método.

  • Dentro del método se diferencian los atributos del objeto antecediendo el identificador self.

Made with Slides.com