Python¶

Nomenclatura básica¶
Hola mundo!¶
Escribamos nuestro primer programa de Python, “¡Hola, mundo!”. Es un programa simple que imprime Hello World! en el dispositivo de salida estándar (pantalla).
Variables¶
Una variable es una ubicación con nombre utilizada para almacenar datos en la memoria. Aquí hay un ejemplo:
Operadores básico¶
Los operadores son símbolos especiales que realizan operaciones en operandos (variables y valores). Hablemos de operadores aritméticos y de asignación en esta parte.
# operaciones basicas
x = 14
y = 4
# suma
print('x + y =', x+y) # Output: x + y = 18
# resta
print('x - y =', x-y) # Output: x - y = 10
# multiplicacion
print('x * y =', x*y) # Output: x * y = 56
# division
print('x / y =', x/y) # Output: x / y = 3.5
# cuociente
print('x // y =', x//y) # Output: x // y = 3
# resto
print('x % y =', x%y) # Output: x % y = 2
Operadores de asignación¶
Los operadores de asignación se utilizan para asignar valores a las variables. Ya has visto el uso de operador =
. Probemos algunos operadores de asignación más.
Inputs por el usuario¶
En Python, puede usar la función input()
para tomar la entrada del usuario. Por ejemplo:
Conversión de tipo¶
The process of converting the value of one data type (integer, string, float, etc.) to another is called type conversion. Python has two types of type conversion.
Explícito¶
Python tipos numéricos¶
Python admite enteros, números de coma flotante y números complejos. Se definen como int, float y clase compleja en Python. Además de eso, los booleanos: verdadero y falso son un subtipo de enteros.
Manejo de excepciones de Python¶
Los errores que se producen en tiempo de ejecución se denominan excepciones. Ocurren, por ejemplo, cuando un archivo que intentamos abrir no existe FileNotFoundError, dividiendo un número por cero ZeroDivisionError, etc.
Si no se manejan las excepciones, se escupe un mensaje de error y nuestro programa se detiene repentinamente e inesperadamente.
En Python, las excepciones se pueden manejar usando la declaración try. Cuando se detectan excepciones, depende de usted qué operador realizar.
Algunas Excepciones Comunes
NameError: Esta excepción es levantada cuando el programa no puede encontrar un nombre local o global. El nombre que podría no ser encontrado está incluido en el mensaje de error.
TypeError: Esta excepción es levantada cuando una función se le pasa un objeto del tipo inapropiado como su argumento. Más detalles sobre el tipo incorrecto son proporcionados en el mensaje de error.
ValueError: Esta excepción ocurre cuando un argumento de función tiene el tipo correcto pero un valor inapropiado.
NotImplementedError: Esta excepción es levantada cuando se supone que un objeto apoye una operación pero no ha sido implementado aún. No deberías usar este error cuando la función dada no deba apoyar al tipo de argumento de entrada. En esas situaciones, levantar una excepción TypeError es más apropiado.
ZeroDivisionError: Esta excepción es levantada cuando proporcionas el segundo argumento para una operación de división o módulo como cero.
FileNotFoundError: Esta excepción es levantada cuando el archivo o diccionario que el programa solicitó no existe.
Aserciones en python¶
Las aserciones son expresiones booleanas que comprueban si las condiciones devuelven verdaderas o no. Si es cierto, el programa no hace nada y pasa a la siguiente línea de código. Sin embargo, si es falso, el programa se detiene y arroja un error.
Las aserciones son importantes al momento de realizar tests unitarios o asegurar que un resultado siempre sea el mismo.

Estructura de datos¶
Listas¶
Se crea una lista colocando todos los elementos (elementos) dentro de un corchete [] separados por comas.
También, se pueden acceder a cada uno de sus eleentos
Tuplas¶
La tupla es similar a una lista, excepto que no puede cambiar los elementos de una tupla una vez que está definida. Mientras que en una lista, los elementos se pueden modificar.
Conjuntos¶
Un conjunto es una colección desordenada de elementos donde cada elemento es único (sin duplicados).
Diccionarios¶
Los diccionarios en Python son un 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)
dct = {'nombre':'Jack', 'edad': 26}
# cambiar edad
dct['edad'] = 36
print(dct) # Output: {'name': 'Jack', 'age': 36}
# adherir llave salario
dct['salario'] = 4342.4
print(dct) # Output: {'name': 'Jack', 'age': 36, 'salary': 4342.4}
# borrar llave edad
del dct['edad']
print(dct) # Output: {'name': 'Jack', 'salary': 4342.4}
# borrar diccionario
del dct
Python range()¶
range()
devuelve una secuencia inmutable de números entre el entero de inicio dado al entero de parada.
El resultado es iterable y puede convertirlo en list, tuple, set, etc. Por ejemplo:
Hemos omitido el parámetro de step opcional para range() en los ejemplos anteriores. Cuando se omite, el paso predeterminado es 1. Probemos algunos ejemplos con el parámetro de paso.
Control de Flujo¶
if, elif,…, else¶
La instrucción if … else se usa si desea realizar una acción diferente (ejecutar un código diferente) en diferentes condiciones. Por ejemplo:
Puede haber cero o más partes elif, y la parte else es opcional. La mayoría de los lenguajes de programación usan {} para especificar el bloque de código. Python usa sangría.
Un bloque de código comienza con sangría y termina con la primera línea sin sangría. La cantidad de sangría depende de usted, pero debe ser consistente a lo largo de ese bloque. En general, se utilizan cuatro espacios en blanco para la sangría y se prefieren a las pestañas.
Probemos con otro ejemplo:
While Loop¶
Al igual que la mayoría de los lenguajes de programación, el loop se usa para iterar sobre un bloque de código siempre que la expresión de prueba (condición) sea verdadera. Aquí hay un ejemplo para encontrar la suma de números naturales:
For Loop¶
En Python, for loop se usa para iterar sobre una secuencia (lista, tupla, cadena) u otros objetos iterables. Iterar sobre una secuencia se llama transversal.
Aquí hay un ejemplo para encontrar la suma de todos los números almacenados en una lista.
Break¶
La declaración break termina el ciclo que lo contiene. El control del programa fluye a la declaración inmediatamente después del cuerpo del bucle. Por ejemplo:
Continue¶
La instrucción continue se usa para omitir el resto del código dentro de un bucle solo para la iteración actual. El bucle no termina pero continúa con la siguiente iteración. Por ejemplo:
Pass¶
Supongamos que tiene un bucle o una función que aún no está implementada, pero desea implementarla en el futuro. No pueden tener un cuerpo vacío. El intérprete se quejaría. Por lo tanto, utiliza la instrucción pass para construir un cuerpo que no hace nada.
Funciones¶
Una función es un grupo de declaraciones relacionadas que realizan una tarea específica. Utiliza la palabra clave def para crear funciones en Python.
Una función puede aceptar argumentos.
Recursion¶
Una función que se llama a sí misma se conoce como función recursiva y este proceso se llama recursividad. Cada función recursiva debe tener una condición base que detenga la recursividad o, de lo contrario, la función se llama a sí misma infinitamente.
Lambda¶
En Python, puede definir funciones sin nombre. Estas funciones se denominan lambda o función anónima. Para crear una función lambda, se utiliza la palabra clave lambda.
Módulos¶
Los módulos se refieren a un archivo que contiene declaraciones y definiciones de Python. Un archivo que contiene código Python, por ejemplo: modulo_01.py
, se llama módulo y su nombre de módulo sería un ejemplo.
Permítanos crearlo y guardarlo como modulo_01.py.
Para usar este módulo, usamos la palabra clave import.
También se pueden exportar módulos nativos de python.
Python tiene una tonelada de módulos estándar fácilmente disponibles para su uso. Por ejemplo:
Programación orientada a objetos (OOP)¶
Todo en Python es un objeto que incluye enteros, flotantes, funciones, clases y Ninguno. No nos centremos en por qué todo en Python es un objeto. Para eso, visite esta página. Más bien, esta sección se enfoca en crear sus propias clases y objetos.
Clase y objetos¶
El objeto es simplemente una colección de datos (variables) y métodos (funciones) que actúan sobre los datos. Y, la clase es un modelo para el objeto.
Tan pronto como defina una clase, se crea un nuevo objeto de clase con el mismo nombre. Este objeto de clase nos permite acceder a los diferentes atributos, así como crear instancias de nuevos objetos de esa clase.
Es posible que haya notado el parámetro self en la definición de la función dentro de la clase, pero llamamos al método simplemente como ob.func() sin ningún argumento. Aún funcionó.
Esto se debe a que, cada vez que un objeto llama a su método, el objeto mismo se pasa como primer argumento. Entonces, ob.func() se traduce en Mi_clase.func(ob).
Creando objetos¶
También puede crear objetos de la clase usted mismo.
Constructores de Python¶
En Python, un método con el nombre __init () __ es un constructor. Este método se llama automáticamente cuando se instancia un objeto.
class NumerosComplejos:
def __init__(self,r = 0,i = 0): # constructor
self.real = r
self.imag = i
def obtener_datos(self):
print("{0}+{1}j".format(self.real,self.imag))
c1 = NumerosComplejos(2,3) # crear el objeto NumerosComplejos
c1.obtener_datos() # Output: 2+3j
c2 = NumerosComplejos() # crear un nuevo objeto NumerosComplejos
c2.obtener_datos() # Output: 0+0j
Herencia de Python¶
La herencia se refiere a definir una nueva clase con poca o ninguna modificación a una clase existente. Tomemos un ejemplo:
Derivemos una nueva clase Perro de esta clase Mamifero.
Decoradores¶
Python tiene una característica interesante llamada decoradores para agregar funcionalidad a un código existente. Esto también se llama metaprogramación ya que una parte del programa intenta modificar otra parte del programa en tiempo de compilación.