2410212028, 1758 El Manual 6e Python
29 DE JUNIO DE 2021 / #PYTHON
El Manual de Python
if; Cristian Sulbaran
El Manual de Python sigue la regla 80/20: aprende el
80% del tema en el 20% del tiempo.
Encuentro que este enfoque ofrece una descripcién bastante
completa.
Este libro no intenta cubrir todo lo relacionado con Python. Se centra
enel nicleo del lenguaje, tratando de simplificar los temas mas
complejos.
Esperamos que el contenido de este libro te ayude a lograr lo que
quieres: aprender los conceptos basicos de Python.
Nota: puedes obtener una versién PDF, ePub y Mobi en inglés
de este manual de Python
iQue lo disfrutes!
Resumen
tps: reecodecamp orglespanalinews/elmanual-de-pythan! i2902410212028, 1758
El Manual 6e Python
Python 2 vs Python 3
Bésicos en Python
Tipos de datos en Python
Operadores en Python
Eloperador ternario en Python
Cadenas en Python
Booleanos en Python
Numeros en Python
Constantes en Python
Enums en Python
Entradas de usuario en Python
Declaraciones de control en Python
Li n Python
Tuplas en Python
Diccionarios en Python
Conjuntos en Python
Eunciones en Python
Objetos en Python
Bucles en Python
Clases en Python
Médulos en Python
tps: reecodecamp orglespanalinews/elmanual-de-pythan!
211202410212028, 1758
El Manual 6e Python
Depurando en Python
Ambito de variable en Python
Cémo aceptar argumentos desde Ia linea de comandos en
Python.
Funciones Lambda en Python
Recursion en Python
Funciones anidadas en Python
Closures en Python
Decoradores en Python
Docstrings en Python
Introspeccién en Python
Anotaciones en Python
Excepciones en Python
Declaracién with en Python
Como instalar paquetes de terceros en Python usando pip
Comprensiones de lista en Python
Polimorfismo en Python
Sobrecarga de operador en Python
Entornos virtuales en Python
Conclusi6n
Recomendacién: cuando estamos programando, integrando
palabras en nuestro idioma, suele ser mejor evitar el uso de
hips reecodecamp orglespanalinewslelmanual-de-pythan! ann202410212028, 1758 El Manual 6e Python
Por este motivo, dentro de los bloques especiales en este libro
que representen cédigo, los nombres que le demos a nuestras
variables y demas objetos, NO Ilevaran caracteres extendidos.
Introduccién a Python
Python literalmente se est4 comiendo el mundo de la programacion.
Estd creciendo en popularidad y uso de formas que no tienen
precedentes en la historia de las computadoras.
Python sobresale en una amplia variedad de escenarios: las
secuencias de comandos Shell, la automatizaci6n de tareas y el
desarrollo web son solo algunos ejemplos basicos.
Python es el lenguaje preferido para data analysis y machine learning,
pero también puede adaptarse para crear juegos y trabajar con
dispositivos integrados.
Mas importante atin, es el idioma elegido para las carreras de ciencias
de computacién en universidades de todo el mundo.
Muchos estudiantes aprenden Python como su primer lenguaje de
programacién. Muchos lo est4n aprendiendo ahora mismo y muchos
més lo aprenderdn en el futuro. Y para muchos de ellos, Python ser el
Unico lenguaje de programacién que necesitaran.
Gracias a esta posicién unica, es probable que Python crezca ain mas
enel futuro.
tps: reecodecamp orglespanalinews/elmanual-de-pythan! 4202410212028, 1758 El Manual 6e Python
puedas imaginar.
Python es un lenguaje de programacién de alto nivel adecuado para
principiantes gracias a su sintaxis intuitiva, su enorme comunidad y su
ecosistema vibrante.
También es apreciado por profesionales de muchos campos
diferentes.
Técnicamente hablando, Python es un lenguaje interpretado que no
tiene una fase de compilacién intermedia como un lenguaje
compilado, por ejemplo C 0 Java.
Y como muchos lenguajes interpretados, se escribe dindmicamente.
Esto significa que no tienes que indicar los tipos de variables que usas
y las variables no estan vinculadas a un tipo especifico.
Esto tiene pros y contras. En particular, escribes programas mas
rapido, pero por otro lado tienes menos ayuda de las herramientas
para prevenir posibles errores. Esto significa que conocerAs ciertos
problemas solo ejecutando el programa en tiempo de ejecucién.
Python admite una amplia variedad de paradigmas de programacién
diferentes, incluida la programacién procedimental, la programacion
orientada a objetos y la programacion funcional. Es lo suficientemente
flexible como para adaptarse a muchas necesidades diferentes.
Creado en 1991 por Guido van Rossum, su popularidad ha ido
aumentando, especialmente en los ultimos 5 afios, como muestra esta
tps: reecodecamp orglespanalinews/elmanual-de-pythan! 511202a)o2'2023, 17:58 El Manual 6e Python
© Python
Lenguaje de programactén
= _ Todo el mundo, 2004 - hoy
Interés a lo largo del tiempo
Lenguaje de programacién Python en Google Trends 2004 - Actualidad(Abr,2021)
Comenzar con Python es muy facil. Todo lo que necesitas es instalar el
paquete oficial de python.org, para Windows, macOS 0 Linux, y estaras
listo para comenzar.
Si eres nuevo en la programacién, en las siguientes publicaciones te
guiaremos para pasar de cero a convertirte en programador Python.
tps: reecodecamp orglespanalinews/elmanual-de-pythan! an202410212028, 1758 El Manual 6e Python
Los lenguajes de nivel inferior como C++ y Rust pueden ser excelentes
para programadores expertos, pero son desalentadores para empezar
y requieren mucho tiempo para dominarlos.
Python, por otro lado, es un lenguaje de programacién para todos:
estudiantes, personas que hacen su trabajo diario con Excel,
cientificos y mas.
Es el idioma que todos los interesados en programar deberian
aprender primero.
Como instalar Python
Ve a https://www.python.org, elije el ment Downloads (descargas),
elije tu sistema operativo y aparecera un panel con un enlace para
descargar el paquete oficial:
htpssiwwreecodecamp orglespanalinews/elmanual-de-pythan! 711202a)o2'2023, 17:58 El Manual 6e Python
Foro
Aprender a codificar — gratis 3,000-horas curriculo
Python ! vinsn:
ymen390
nisi the st) eae
jor new features ofthe 3.9 series, compared t
Asegurate de seguir las instrucciones especificas para tu sistema
operativo. En macOS puedes encontrar una guia detallada(inglés) en
https://flaviocopes.com/python-installation-macos/.
Como ejecutar programas en
Python
Hay algunas formas diferentes de ejecutar programas Python.
En particular, hay una distincién entre el uso de mensajes interactivos,
donde se escribe codigo Python y se ejecuta inmediatamente; y
guardar un programa Python en un archivo y ejecutarlo.
Comencemos con indicaciones interactivas.
tps: reecodecamp orglespanalinews/elmanual-de-pythan! 811202410212028, 1758 El Manual 6e Python
DER RCE ier ee)
een ote eee
Lace ea erat
Este es el Python REPL(Read-Evaluate-Print-Loop).
REPL es un entorno de programacién computacional simple e
interactivo que toma las entradas individuales del usuario, las
evaltia y devuelve el resultado al usuario; un programa escrito
enunentorno REPL es ejecutado por partes.
Observael simbolo >>> y el cursor después de eso. Puedes escribir
cualquier cédigo Python ahi y presionarlatecla enter para
ejecutarlo.
Por ejemplo, intenta definir una nueva variable usando
nombre = "Flavio"
y luego imprime su valor, usando print() :
tps: reecodecamp orglespanalinews/elmanual-de-pythan! 911202410212028, 1758 El Manual 6e Python
er cm 5 2020, 11:29:23)
iratay eon
Type Ct ae LCs
eet eC ce
printnam
Geo
Nota: en el REPL, también puedes escribir el nombre ,
presionar latecla enter y obtendrds el valor de vuelta. Pero
en un programa, no veras ningun resultado si lo haces; deberas
usar print() ensu lugar.
Cualquier linea de Python que escribas ahi se ejecutar
inmediatamente.
Escribe quit() para salir de este REPL de Python.
Puedes acceder al mismo mensaje interactivo utilizando la aplicacién
IDLE que Python instala automaticamente:
htpssiwwreecodecamp orglespanalinews/elmanual-de-pythan! 1011202410212028, 1758 El Manual 6e Python
25> name = HFLaviot 7
353 princinane)
Have
Lm? Cok a
Esto te podria ser mas conveniente porque con el mouse puedes
moverte y copiar/pegar més facilmente que con el terminal.
Esos son los basicos que vienen con Python de forma predeterminada.
Sin embargo, recomiendo que instales [Python, probablemente la
mejor aplicacién REPL de linea de comandos que puedas encontrar.
Instdlalo con
pip install ipython
Aseguirate de que los binarios pip estén en tu path(ruta), y ejecuta
python :
htpssiwwreecodecamp orglespanalinews/elmanual-de-pythan! nin202410212028, 1758 El Manual 6e Python
co
ipython es otra interfaz que te permite trabajar con un REPL de
Python y proporciona algunas caracteristicas interesantes como
resaltado de sintaxis, finalizacion de codigo y mucho mas.
La segunda forma de ejecutar un programa Python es escribir el
cédigo de tu programa Python en un archivo, por ejemplo
program.py :
GNU nano 2.0.6
Cea
print(nane)}
Modi fied
I Read 2 Lines J
aot Oncor ceca prac feta cota eta
Eat BresCae Leciece Vintetaieee Ut erancs TROweany
y luego ejeciitalo con python program. py :
tps: reecodecamp orglespanalinews/elmanual-de-pythan!
121202410212028, 1758 El Manual 6e Python
Ten en cuenta que guardamos los programas de Python con la
extension .py ,eso es una convencion.
En este caso, el programa se ejecuta como un todo, no una linea ala
vez. Y asi es como normalmente ejecutamos los programas.
Usamos REPL para la creacién rapida de prototipos y para el
aprendizaje.
En Linux y macOS, un programa Python también se puede transformar
enun script de shell, anteponiendo todo su contenido con una linea
especial que indica qué ejecutable usar para ejecutarlo.
En mi sistema, el ejecutable de Python se encuentra en
/usr/bin/python3 , asi que escribo
usr/bin/python3 enla primera
linea:
htpssiwwreecodecamp orglespanalinews/elmanual-de-pythan! 131202410212028, 1758 El Manual 6e Python
emt
Paar)
roe OR ates Create mr Rea Rea
fends reese eae eae eae eee Ueto T egy
Entonces puedo establecer el permiso de ejecucién en el archivo:
chmod u+x program. py
y puedo ejecutar el programa con
-/program. py
htpssiwwreecodecamp orglespanalinews/elmanual-de-pythan!
1411202410212028, 1758 El Manual 6e Python
Donar
» python fj
Esto es especialmente util cuando escribes scripts que interactuan
conel terminal.
Tenemos muchas otras formas de ejecutar programas Python.
Una de ellas es usando VS Code, y en particular la extension oficial de
Python de Microsoft:
hitpssiwwreecodecamp orglespanclinews/elmanual-de-pythan! 1511202410212028, 1758 El Manual 6e Python
que incluyen:
Python: start REPL para ejecutar REPL en la terminal integrada:
Python: Run Python File in Terminal para ejecutar el archivo actual
enla terminal:
htpssiwwreecodecamp orglespanalinews/elmanual-de-pythan! 1611202410212028, 1758 El Manual 6e Python
Donar
Python: Run Current File in Python Interactive Window (Ejecutar
archivo actual en Ventana Interactiva Python)
tps: reecodecamp orglespanalinews/elmanual-de-pythan! s711202410212028, 1758 El Manual 6e Python
Otra forma de ejecutar facilmente el cédigo Python es usar repl.it, un
sitio web muy agradable que proporciona un entorno de
programacién en el que puedes crear y ejecutar tus aplicaciones, en
cualquier lenguaje, incluido Python:
Code, create, and
learn together
Registrate (es gratis), luego, en create a repl, haz clic en Python:
htpssiwwreecodecamp orglespanalinews/elmanual-de-pythan! 1811202a)o2'2023, 17:58
El Manual 6e Python
Foro
Aprender a codificar — gratis 3,000-horas curriculo
@ tne creates rat
me Cec
au Sires
0 nen
‘© tract angerto
e inmediatamente se mostrara un editor con un archivo main. py , listo
para ser llenado con una gran cantidad de codigo Python:
htpssiwwreecodecamp orglespanalinews/elmanual-de-pythan!
1911202410212028, 1758 El Manual 6e Python
Una vez que tengas algo de cédigo, haz clic en Run para ejecutarlo en
el lado derecho de la ventana:
htpssiwwreecodecamp orglespanalinews/elmanual-de-pythan! 2aniz02410212028, 1758 El Manual 6e Python
Creemos que repl.it es util porque:
* puedes compartir cédigo facilmente con solo compartir el
enlace
* varias personas pueden trabajar en el mismo cédigo
* puede albergar grandes programas de ejecucién
* puedes instalar paquetes
+ proporciona una base de datos de clave-valor para aplicaciones
mas complejas
Python 2 vs Python 3
Un tema clave que debemos abordar, desde el princi
de Python 2 vs Python 3.
10, es la discusién
tps: reecodecamp orglespanalinews/elmanual-de-pythan! 2unz02410212028, 1758 El Manual 6e Python
2020.
Enesa fecha, se descontinué el soporte a Python 2.
Muchos programas todavia se escriben con Python 2, y las
organizaciones atin trabajan activamente en ellos, porque la migracién
a Python 3 no es trivial y requeriria mucho trabajo actualizar esos
programas. Y las migraciones grandes e importantes siempre
introducen nuevos errores.
Pero el cddigo nuevo, a menos que tengas que cumplir con las reglas
establecidas por tu organizacion que obliguen a usar Python 2,
siempre debe escribirse en Python 3.
| Este libro se enfoca en Python 3.
Basicos en Python
Variables en Python
Podemos crear una nueva variable de Python asignando un valor a
una etiqueta, usando el operador de asignacién = .
En este ejemplo asignamos una cadena con el valor "Roger" a nombre :
nombre = "Roger"
tps: reecodecamp orglespanalinews/elmanual-de-pythan! 2anz02410212028, 1758 El Manual 6e Python
edad = 8
Un nombre de variable puede estar compuesto por caracteres,
numeros y el cardcter de subrayado _ . No puede empezar con un
numero. Todos estos son nombres de variables validos:
nombred
EDAD
DAD
atiii1
mi_nonbre
_nombre
Estos son nombres de variables invalidos:
123
prueba!
nombre%
Aparte de eso, cualquier cosa es valida a menos que sea una palabra
clave de Python. Hay algunas palabras clave como for, if , while,
import y mas.
No es necesario memorizarlos, ya que Python te alertard si usas uno
de ellos como variable, y los reconoceras gradualmente como parte de
la sintaxis del lenguaje de programacion Python.
tps: reecodecamp orglespanalinews/elmanual-de-pythan! 2anzo2410212028, 1758 El Manual 6e Python
ejemplo
ea
"Roger"
Una declaracién, por otro lado, es una operacién sobre un valor. Por
ejemplo, estas son 2 declaraciones:
nombre = "Roger"
print (nombre)
Un programa est formado por una serie de declaraciones. Cada
declaracién se coloca en su propia linea, pero puedes usar un punto y
coma para tener ms de una declaracién en una sola linea:
nombre = "Roger"; print (nombre)
Comentar
En un programa de Python, todo lo que aparece después de una marca
# se ignoray se considera un comentario.
tps: reecodecamp orglespanalinews/elmanual-de-pythan! 2anz02410212028, 1758 El Manual 6e Python
Indentaci6n en Python
La indentacién en Python es significativa.
No puede indentar aleatoriamente asi:
nombre = "Flavio"
print (nombre)
Algunos otros lenguajes no tienen espacios en blanco significativos,
pero en Python, el indentado es importante.
Eneste caso, si intentas ejecutar este programa, obtendras un error
IndentationError: unexpected indent , porque el indentado tiene un
significado especial.
Todo lo indentado pertenece a un bloque, como una declaracién de
control o un bloque condicional, o una funcién 0 cuerpo de clase.
Veremos mas sobre ellos ms adelante.
Tipos de datos en Python
Python tiene varios tipos integrados.
Sicreas la variable nombre asignandole el valor "Roger",
automaticamente esta variable ahora representa un tipo de datos
tps: reecodecamp orglespanalinews/elmanual-de-pythan! 2sii202410212028, 1758 El Manual 6e Python
nombre = "Roger"
Puedes verificar el tipo de una variable usando la funcién type() ,
pasando la variable como un argumento y luego comparando el
resultado con str
nombre
ge
‘type(nombre)
str #True
Ousando isinstance() :
nombre = "Roger"
isinstance(nombre, str) #True
Ten en cuenta que para ver el valor True (verdadero) en
Python, fuera de un REPL, debes envolver este cédigo dentro
de print() , pero para mayor claridad, evitamos usarlo
Usamos|aclase str aqui, pero lo mismo funciona para otros tipos de
datos.
Primero, tenemos numeros. Los nuimeros enteros se representan
mediante la clase int . Los nimeros flotantes,decimales o fracciones,
sonde tipo float :
tps: reecodecamp orglespanalinews/elmanual-de-pythan! 2en202410212028, 1758 El Manual 6e Python
fraccion = @.1
type(fraccion) == float #True
Viste como crear un tipo a partir de un valor literal, como este:
Python detecta automaticamente el tipo a partir de! tipo de valor.
También puedes crear una variable de un tipo especifico utilizando el
constructor de clase, pasando un valor literal o un nombre de variable:
nombre = str("Flavio")
otroNombre = str(nombre)
También puedes convertir de un tipo a otro utilizando el constructor
de clases. Python intentar determinar el valor correcto, por ejemplo,
extrayendo un numero de una cadena:
tps: reecodecamp orglespanalinews/elmanual-de-pythan! aro2410212028, 1758 El Manual 6e Python
fraccion = @.1
fraccionEntera = int(fraccion)
print(fraccionEntera) #@
Aesto se le llama casting. Por supuesto, es posible que esta
conversién no siempre funcione segtin el valor pasado. Si escribes
prueba en lugar de 2@ en lacadena anterior, obtendras
un ValueError: invalid literal for int() with base 10:
‘prueba’ .
Esos son solo los conceptos basicos de los tipos. Tenemos muchos mas
tipos en Python:
* complex paranumeros complejos
* bool para booleanos(verdadero/falso)
* list paralistas
* tuple para tuplas
* range para rangos
* dict paradiccionarios
* set para conjuntos(sets)
iy mas!
Los exploraremos todos pronto.
Operadores en Python
tps: reecodecamp orglespanalinews/elmanual-de-pythan! 2ani202410212028, 1758 El Manual 6e Python
Podemos dividir los operadores en funcién del tipo de operacion que
realizan:
+ Operador de asignacién
* Operadores aritméticos
* Operadores de comparacién
* Operadores ldgicos
* Operadores bit a bit
ademis de algunos interesantes como is € in.
Operador de asignacion en Python
El operador de asignacién se utiliza para asignar un valor a una
variable:
edad = 8
O para asignar un valor de variable a otra variable:
edad = 8
otraVariable - edad
tps: reecodecamp orglespanalinews/elmanual-de-pythan! 2aniz02410212028, 1758 El Manual 6e Python
luego.
Operadores aritméticos en Python
Python tiene varios operadores aritméticos: +,-,, / (division), %
(resto), ** (exponenciacion) y // (divisién de piso):
14142
2-141
2* 244
4/242
4x3 a
4s 2 #16
4 // 2 #2
Ten en cuenta que no necesitas un espacio entre los
operandos, pero es bueno para la legibilidad.
- también funciona como un operador unario negativo:
print(-4) #-4
+ también se usa para concatenar valores de cadena:
“Roger” + " es un buen perro”
#Roger es un buen perro
tps: reecodecamp orglespanalinews/elmanual-de-pythan! ‘0/1202410212028, 1758 El Manual 6e Python
eo
eo
o/s
ou
* .yasi
Ejemplo:
edad = 8
edad += 1
edad es ahora 9
Operadores de comparacion en Python
Python define algunos operadores de comparacién:
tps: reecodecamp orglespanalinews/elmanual-de-pythan!
auz02410212028, 1758 El Manual 6e Python
aa
b-2
a == b #False
a [= b #True
a>b #False
a <= b #True
Operadores booleanos en Python
Python nos da los siguientes operadores booleanos:
* not
* and
° or
Cuando se trabaja con atributos True 0 False , estos funcionan como
"Y","O" y "NO" ldgicos, y a menudo se usan en la evaluacién de la
expresién condicional if :
condicion1
condicion2 = False
True
not condicion1 #False
condicion1 and condicion2 #False
condicion1 or condicion2 #True
De lo contrario, presta atencién a una posible fuente de confusién:
tps: reecodecamp orglespanalinews/elmanual-de-pythan! 2/202410212028, 1758 El Manual 6e Python
print(@ or 1) ## 1
print(False or 'hey') ## ‘hey’
print(‘hola’ or *hey') ## *hola*
print({] or False) ## ‘False’
print(False or []) ## *[]'
Los documentos de Python lo describen como:
es falso, entonces “y", si no "x
and solo evaltia el segundo argumento si el primero es verdadero.
Entonces, siel primer argumento es falso( False, @, °', [] «Js
devuelve ese argumento. De lo contrario, evaltia el segundo
argumento:
print(@ and 1) ## @
print(1 and @) ## @
print(False and "hey') ## False
print(‘hola’ and ‘hey') ## ‘hey’
print([] and False ) ## []
print(False and [] ) ## False
Los documentos de Python lo describen como:
si "x" es falso, entonces "x", sino "y"
tps: reecodecamp orglespanalinews/elmanual-de-pythan! an202410212028, 1758
tps: reecodecamp orglespanalinews/elmanual-de-pythan!
El Manual 6e Python
pinarios:
& realiza el binario AND
* | realizaelbinario OR
* * realiza una operaci6n binaria XOR
* ~ realiza una operaci6n binaria NOT
* << operacion shift left
* >> operacién shift right
Los operadores bit a bit se utilizan raramente, solo en situaciones muy
especificas, pero vale la pena mencionarlos.
is e in en Python
is se llama el operador de identidad. Se utiliza para comparar dos
objetos y devuelve verdadero si ambos son el mismo objeto. Mas
sobre objetos luego.
in se llama el operador de membresia. Se utiliza para saber si un
valor esta contenido en una lista o en otra secuencia. Mas sobre
listas y otras secuencias luego.
El operador ternario en Python
El operador ternario en Python permite definir rapidamente un
condicional.
‘ani202410212028, 1758 El Manual 6e Python
En lugar de escribii
def es_adulto(edad)
if edad > 18:
return True
else:
return False
Puedes implementarlo con el operador ternario de esta manera:
def es_adulto(edad)
return True if edad > 18 else False
Primero defines el resultado si la condicion es verdadera, luego
evaluas la condicién, luego defines el resultado si la condicion es falsa:
if else
Cadenas en Python
Una cadena en Python es una serie de caracteres entre comillas 0
comillas dobles:
tps: reecodecamp orglespanalinews/elmanual-de-pythan! i1202410212028, 1758 El Manual 6e Python
Puedes asignar un valor de cadena a una variable:
Roger"
Puedes concatenar dos cadenas usando el operador + :
frase = “Roger” + " es un buen perro”
Puedes agregar a una cadena usando
nombre = "Roger"
nombre += " es un buen perro”
print (nombre) #Roger es un buen perro
Puedes convertir un numero en una cadena usando el constructor de
clase str:
str(8) #"8"
Esto es esencial para concatenar un numero a una cadena:
tps: reecodecamp orglespanalinews/elmanual-de-pythan! ‘8/1202410212028, 1758 El Manual 6e Python
Una cadena puede ser de varias lineas cuando se define con una
sintaxis especial, encerrando la cadena en un conjunto de 3 comillas:
icomillas dobles o simples
print(""*
Roger tiene
aos de edad
my
Una cadena tiene un conjunto de métodos integrados, como:
+ isalpha() para comprobar si una cadena contiene solo
caracteres y no est vacia
+ isalnum() para comprobar si una cadena contiene caracteres
odigitos y no esté vacia
* isdecimal() para comprobar si una cadena contiene digitos y
no esta vacia
tps: reecodecamp orglespanalinews/elmanual-de-pythan!
arn202410212028, 1758 El Manual 6e Python
* islower() para compropar si una cadena esta en minusculas
+ upper() para obtener una versién en maytisculas de una
cadena
+ isupper() para comprobar si una cadena estd en mayuisculas
+ title() para obtener una versién capitalizada de una cadena
* startsswith() para comprobar si la cadena comienza con una
subcadena especifica
* endswith() para comprobar si la cadena termina con una
subcadena especifica
* replace() para reemplazar una parte de una cadena
+ split() para dividir una cadena en un separador de
caracteres especifico
strip() para recortar el espacio en blanco de una cadena
* join() para agregar nuevas letras a una cadena
find() para encontrar la posicién de una subcadena
Y muchas mas.
Ninguno de esos métodos altera la cadena original. En su lugar,
devuelven una cadena nueva y modificada. Por ejempl
nombre = “Roger”
print (nombre.lower()) #"roger"
print(nombre) #*Roger*
tps: reecodecamp orglespanalinews/elmanual-de-pythan! ‘ae/1202410212028, 1758 El Manual 6e Python
En particular, pienso en 1en() , que te da la longitud de una cadena:
nombre = "Roger"
print(len(nombre)) #5
Eloperador in te permite verificar si una cadena contiene una
subcadena:
nombre = "Roger"
print("ger” in nombre) #True
Escapar es una forma de agregar caracteres especiales a una cadena,
Por ejemplo, gcémo agregas una comilla doble en una cadena que esta
envuelta en comillas dobles?
nombre = "Roger"
“Ro"Ger” no funcionard, ya que Python pensara que la cadena
terminaen "Ro" .
El camino a seguir es hacer escapar aa las comillas dobles dentro de la
cadena, con el caracter \ (barra invertida):
tps: reecodecamp orglespanalinews/elmanual-de-pythan! 01202410212028, 1758 El Manual 6e Python
Esto también se aplica a las comillas simples \' y alos caracteres de
formateo especial como \t para tabulacién, \n para nueva lineay
\\ para la barra invertida.
Dada una cadena, puedes obtener sus caracteres usando corchetes
cuadrados para obtener un elemento especifico, dado su indice,
comenzando desde cero [@] :
nombre = "Roger"
nombre[@] #'R"
nombre[1] #0"
nombre[2] #'g"
El uso de un numero negativo comenzara a contar desde el final:
También puedes usar un rango, usando lo que llamamos
rebanar(slicing):
nombre = "Roger"
nombre[@:2] #"Ro"
tps: reecodecamp orglespanalinews/elmanual-de-pythan! 40/1202410212028, 1758 El Manual 6e Python
Booleanos en Python
Python proporciona el tipo bool , que puede tener dos valores: True
(Verdadero) y False (Falso) (capitalizado).
hecho = False
hecho = True
Los booleanos son especialmente utiles con estructuras de control
condicionales como declaraciones if :
hecho = True
if hecho:
# Ejecuta algun codigo
else:
# Ejecuta algun otro codigo
Alevaluar un valor para True 0 False ,siel valor noesun bool ,
tenemos algunas regias dependiendo del tipo que estemos
verificando:
+ losndmeros son siempre True excepto elntimero @,
* lascadenasson False solo cuando estan vacias '' ,
tps: reecodecamp orglespanalinews/elmanual-de-pythan! anniz02410212028, 1758 El Manual 6e Python
Puedes verificar si un valor es booleano de esta manera:
hecho = True
type(hecho) == bool #True
Ousando isinstance() , pasando 2 argumentos: la variable y la clase
bool :
hecho = True
isinstance(hecho, bool) #True
Lafuncién global any() también es muy util cuando se trabaja con
valores booleanos, ya que devuelve True sialguno de los valores del
iterable (lista, por ejemplo) pasado como argumentoes True
libro_1_leido = True
libro_2_leido = False
algun_libro_leido = any({1ibro_4_leido, libro_2_leido])
#True
La funcién global a11() es lamisma, pero devuelve True si todos los
valores que se le pasan son True:
tps: reecodecamp orglespanalinews/elmanual-de-pythan! 42202410212028, 1758 El Manual 6e Python
List_para_servir = all([ingredientes_comprados, comida_preparada])
False
Numeros en Python
Los numeros en Python pueden ser de 3 tipos: int , float y complex.
Numeros enteros en Python
Los numeros enteros se representan mediante laclase int . Puedes
definir un entero mediante un valor literal:
edad = 8
También puedes definir un numero entero usando el constructor
int():
edad = int(s)
Para comprobar si una variable es de tipo int , puedes utilizar la
funcién global type() :
type(edad) == int #True
tps: reecodecamp orglespanalinews/elmanual-de-pythan! aani202410212028, 1758 El Manual 6e Python
Los ntimeros flotantes (fracciones, decimales) son de tipo float .
Puedes definir un entero usando un valor literal:
fraccion = @.1
Ousando el constructor float() :
fraccion = float(@.1)
Para comprobar si una variable es de tipo float , puede utilizar la
funcién global type() :
type(fraccion) == float #True
Numeros complejos en Python
Los nimeros complejos son de tipo complex .
Puedes definirlos usando un valor literal:
numeroComplejo = 2+35
tps: reecodecamp orglespanalinews/elmanual-de-pythan! aaniz02410212028, 1758 El Manual 6e Python
numeroComplejo = complex(2, 3)
Una vez que tengas un ntimero complejo, puedes obtener su parte real
eimaginaria:
numeroComplejo.real #2.@
numeroComplejo. imag #3.0
Nuevamente, para verificar si una variable es de tipo complex , puedes
usar la funcién global type() :
‘type(numeroComplejo)
complex #True
Operaciones aritméticas con numeros en
Python
Puedes realizar operaciones aritméticas con nimeros, utilizando los
operadores aritméticos: +, -, *, / (divisién), % (resto), **
(exponenciacién) y // (division de piso):
+142
aa
284
y242
tps: reecodecamp orglespanalinews/elmanual-de-pythan! 4/1202410212028, 1758 El Manual 6e Python
y puedes utilizar los operadores de asignacién compuesta
oo
oof
© %
* yasi..
para realizar rapidamente operaciones en variables, también:
edad = 8
edad += 1
Funciones integradas en Python
Hay 2 funciones integradas que ayudan con los nimeros:
abs() devuelve el valor absoluto de un nimero.
round() dado un numero, devuelve su valor redondeado al entero
mas cercano:
tps: reecodecamp orglespanalinews/elmanual-de-pythan! 4/1202410212028, 1758 El Manual 6e Python
Puedes especificar un segundo pardmetro para establecer la precision
del punto decimal:
round(@.12, 1) #0.1
Varias otras funciones de utilidad matematica y constantes son
proporcionadas por la biblioteca estandar de Python:
* elpaquete math proporciona funciones y constantes
matematicas generales.
* elpaquete cmath proporciona utilidades para trabajar con
numeros complejos.
* elpaquete decimal proporciona utilidades para trabajar con
decimales y numeros decimales.
* elpaquete fractions proporciona utilidades para trabajar con
nlimeros racionales.
Exploraremos algunos de ellos por separado mas adelante.
Constantes en Python
Python no tiene forma de exigir que una variable sea una constante.
Lo mas cercano que puedes obtener es usar una enumeracién:
tps: reecodecamp orglespanalinews/elmanual-de-pythan! arn202410212028, 1758 El Manual 6e Python
Y obtener cada valor usando, por ejemplo,
Constantes .ANCHURA. value .
Nadie puede reasignar ese valor.
De lo contrario, si deseas confiar en las convenciones de
nomenclatura, puedes adherirte a esta: declara las variables que
nunca deben cambiar, en mayusculas:
ANCHURA = 1024
Nadie evitard que sobrescribas este valor, y Python no lo detendra.
Eso es lo que hace la mayoria del codigo Python que veras.
Enums en Python
Los Enums son nombres legibles que estan vinculados a un valor
constante.
Parausar Enums ,importa Enum desde el médulo de biblioteca
estandar enum:
tps: reecodecamp orglespanalinews/elmanual-de-pythan! e1202410212028, 1758 El Manual 6e Python
Luego puedes inicializar un nuevo Enum de esta manera:
class Estado(Enum):
INACTIVO = @
ACTIVO = 1
Una vez que lo hagas, puedes hacer referenciaa Estado. INACTIVO y
Estado. ACTIVO , y sirven como constantes.
Ahora, si intentas imprimir Estado. ACTIVO , por ejemplo:
print (Estado. ACTIVo)
no devolverd 1,sino Estado. ACTIVO.
El mismo valor puede ser alcanzado por el numero asignado en el
enum: print(Estado(1)) devolvera Estado. ACTIVO .Lo mismo para
usar la notacién de corchetes Estado['ACTIVO' ] .
Sin embargo, puedes obtener el valor mediante
Estado. ACTIVO. value .
Puedes enlistar todos los valores posibles de un enum:
tps: reecodecamp orglespanalinews/elmanual-de-pythan! 49/1202410212028, 1758 El Manual 6e Python
Puedes contarlos:
len(Estado) # 2
Entradas de usuario en Python
En una aplicacién de linea de comandos de Python, puedes mostrar
informacién al usuario mediante la funcién print() :
nombre
Roger"
print (nombre)
También podemos aceptar la entrada del usuario, usando input() :
print('gCual es tu edad?')
edad = input()
print('Tu edad es ' + edad)
Este enfoque recibe entradas en tiempo de ejecucidn, lo que significa
que el programa detendrd la ejecucién y esperara hasta que el usuario
escriba algo y presione la tecla Enter .
tps: reecodecamp orglespanalinews/elmanual-de-pythan!
0/1202410212028, 1758 El Manual 6e Python
Esto funciona para aplicaciones de linea de comandos. Otros tipos de
aplicaciones necesitardn una forma diferente de aceptar la entrada.
Declaraciones de control en
Python
Cuando se trata de valores booleanos y expresiones que devuelven un
valor booleano en particular, podemos tomar decisiones y diferentes
caminos en funcion de sus valores True 0 False.
En Python lo hacemos usando la declaraci6n if :
condicion = True
if condicion == True:
# Hace algo
Cuando la prueba de condicion se resuelve en True ,como en el caso
anterior, el bloque se ejecuta.
éQué es un bloque? Un bloque es la parte que tiene una indentacién de
un nivel (normalmente 4 espacios) a la derecha.
condicion = True
if condicion == True:
tps: reecodecamp orglespanalinews/elmanual-de-pythan! sui202410212028, 1758 El Manual 6e Python
El bloque puede estar formado por una sola linea, o también por varias
lineas, y termina cuando regresa al nivel de indentacion anterior:
condicion = True
if condicion == True:
print("La condicion"
print("era VEROADERA")
print("Fuera del IF")
En combinacién con if , puedes tener un bloque else que se ejecute
sila prueba de condiciénde if dacomo resultado False :
condicion = True
if condicion == True
print(La condicion")
print(“era VERDADERA")
else:
print(“La condicion”)
print(“era FALSA")
Y puedes tener diferentes verificaciones vinculadas if con elif que
se ejecutan sila verificacién anterior fue falsa:
condicion = True
nombre = "Roger"
tps: reecodecamp orglespanalinews/elmanual-de-pythan! 2/1202410212028, 1758 El Manual 6e Python
elif nombre == “Roger”:
print("Hola Roger")
else:
print("La condicion")
print(*era FALSA")
En este caso, el segundo bloque se ejecuta si condicion es False yel
valor dela variable nombre es "Roger".
Enuna declaracién if , puedes tener solo una verificacién if y else,
pero varias series de verificaciones elif :
condicion = True
Roger"
nombre =
if condicion == True:
print("La condicion"
ra. VERDADERI
"Roger":
jola Roger")
Cy
print("Hola Syd")
“Flavio’
print(
elif nombre
print(
elif nombre
elif nombre
print("Hola Flavio")
else:
print("La condicion")
print("era FALSA")
if y else también se pueden usar en un formato en-linea, lo que nos
permite devolver un valor u otro en funcién de una condicién.
Ejemplo:
tps: reecodecamp orglespanalinews/elmanual-de-pythan! sa1202410212028, 1758 El Manual 6e Python
print(resultado) # 3
Listas en Python
Las listas son una estructura de datos esencial de Python.
Te permiten agrupar varios valores y hacer referencia a todos ellos
con un nombre comtn.
Por ejemplo:
perros = ["Roger", "syd"]
Una lista puede contener valores de diferentes tipos:
items = ["Roger", 1, "Syd", True]
Puedes verificar si un elemento esta contenido en una lista con el
operador in:
print("Roger" in items) # True
tps: reecodecamp orglespanalinews/elmanual-de-pythan! ani202410212028, 1758 El Manual 6e Python
items = []
Puedes hacer referencia a los elementos en una lista por su indice,
comenzando desde cero:
items[@] # "Roger"
items[1] #1
items[3] # True
Usando la misma notacién, puedes cambiar el valor almacenado en un
indice especifico:
items(@] =
También puedes utilizar el método index() :
items. index(@) # "Roger"
items. index(1) # 1
Al igual que con las cadenas, el uso de un indice negativo comenzaré a
buscar desde el final:
tps: reecodecamp orglespanalinews/elmanual-de-pythan! ‘55/1202410212028, 1758 El Manual 6e Python
También puedes extraer una parte de una lista, utilizando
porciones(slices):
items[@:2] # ["Roger", 1]
items[(2:] # ["syd", True]
Obtén el numero de elementos contenidos en una lista usando la
funcidn global 1en() ,la misma que usamos para obtener la longitud
de una cadena:
len(items) #4
Puedes agregar elementos ala lista mediante el método append() :
items. append("Prueba")
oelmétodo extend()
items. extend(["Prueba"])
También puedes utilizar el operador +=:
tps: reecodecamp orglespanalinews/elmanual-de-pythan! 5/1202410212028, 1758 El Manual 6e Python
# los items son ['Roger', 1, ‘Syd’, True, ‘Prueba']
Consejo: con extend() 0 += no olvides los corchetes. No
hagas items += "Prueba" or items.extend("Prueba") 0
Python agregard 6 caracteres individuales ala lista, lo que dard
como resultado [‘Roger’, 1, ‘Syd', True,
, bt, fa")
Elimina un elemento usando el método remove() :
items. remove("Prueba")
Puedes agregar varios elementos usando
items += ["Prueba 1", “Prueba 2"]
Ho
items.extend(["Prueba 1", "Prueba 2"})
Estos anexan el elemento al final de la lista.
Para agregar un elemento en el medio de una lista, en un indice
especifico, usa el método insert() :
tps: reecodecamp orglespanalinews/elmanual-de-pythan! erii202410212028, 1758 El Manual 6e Python
Para agregar varios elementos en un indice especifico, debes usar
porciones(slices):
items(1:1] = ["Prueba 1", "Prueba 2")
Ordena una lista usando el método sort() :
items .sort()
Consejo: sort() solo funcionard sila lista contiene valores
que se pueden comparar. Las cadenas y los enteros, por
ejemplo, no se pueden comparar, y obtendrds un error como
TypeError: ‘<' not supported between instances of ‘int
and ‘str’ silointentas.
Elmétodo sort() ordena primero las letras maysculas y luego las
minisculas. Para solucionar este problema, utiliza:
items. sort (key=str. lower)
El orden(sort) modifica el contenido de la lista original. Para evitarlo,
puedes copiar el contenido de la lista utilizando
tps: reecodecamp orglespanalinews/elmanual-de-pythan! 58/1202410212028, 1758 El Manual 6e Python
usa la funcién global sorted() :
print(sorted(items, key-str.lower))
que devolverd una nueva lista, ordenada, en lugar de modificar la lista
original.
Tuplas en Python
Las tuplas son otra estructura de datos fundamental de Python.
Te permiten crear grupos inmutables de objetos. Esto significa que
una vez que se crea una tupla, no se puede modificar. No puedes
agregar ni quitar elementos.
Se crean de forma similar a las listas, pero utilizando paréntesis en
lugar de corchetes:
nombres = ("Roger", "Syd")
Una tupla esta ordenada, como una lista, por lo que puedes obtener
sus valores haciendo referencia a un valor de indice:
tps: reecodecamp orglespanalinews/elmanual-de-pythan! 0/1202410212028, 1758 El Manual 6e Python
También puedes usar el método index() :
nombres. index('Roger’) # @
nombres.index('syd') #1
Al igual que con las cadenas y las listas, el uso de un indice negativo
comenzard a buscar desde el final:
nombres[-1] # True
Puedes contar los elementos en una tupla con la funcién 1en() :
len(nonbres) # 2
Puedes verificar si un elemento esta contenido en una tupla con el
operador in:
print("Roger" in nombres) # True
tps: reecodecamp orglespanalinews/elmanual-de-pythan! ennt202410212028, 1758 El Manual 6e Python
nombres[@:2] # ‘Roger’, ‘Syd')
nombres [1:] # (*Syd",)
Puedes crear una versién ordenada de una tupla usando la funci6én
global sorted() :
sorted(nombres)
Puedes crear una nueva tuplaa partir de tuplas utilizando el operador
+:
nuevaTupla = nombres + ("Vanille", "Tina”)
Diccionarios en Python
Los diccionarios son una estructura de datos de Python muy
importante.
Mientras que las listas te permiten crear colecciones de valores, los
diccionarios permiten crear colecciones de pares clave/valor.
Aqui hay un ejemplo de diccionario con un par clave/valo'
tps: reecodecamp orglespanalinews/elmanual-de-pythan! ewn202410212028, 1758 El Manual 6e Python
La clave puede ser cualquier valor inmutable como una cadena, un
numero o una tupla. El valor puede ser el que desees.
Un diccionario puede contener varios pares clave/valor:
perro = { ‘nombre’: ‘Roger’, ‘edad’: 8 }
Puedes acceder a valores de claves individuales utilizando esta
notaci6n:
perro[ ‘nombre’ ] # ‘Roger’
perro[‘edad'] # 8
Usando la misma notacién, puedes cambiar el valor almacenado en un
indice especifico:
perro[ ‘nombre’] = ‘Syd’
Y otra formaes usar el método get() , que tiene una opcion para
agregar un valor predeterminado:
tps: reecodecamp orglespanalinews/elmanual-de-pythan! e2202410212028, 1758 El Manual 6e Python
Elmétodo pop() recupera el valor de una clave y, posteriormente,
elimina el elemento del diccionario.
perro.pop(‘nonbre') # "Roger
El método popitem() recupera y elimina el ultimo par clave/valor
insertado en el diccionario:
perro. popitem()
Puedes verificar si una clave est contenida en un diccionario con el
operador in:
‘nombre’ in perro # True
Obtén una lista con las claves en un diccionario usando el método
keys() , pasando su resultado al constructor list() :
list(perro.keys()) # [‘nombre', ‘edad’
tps: reecodecamp orglespanalinews/elmanual-de-pythan! eant202410212028, 1758 El Manual 6e Python
print(list(perro.values()))
# ['Roger", 8]
print (list (perro. items()))
# [(’nombre', 'Roger'), (‘edad’, 8)]
Obtén la longitud de un diccionario usando la funcién global 1en() , la
misma que usamos para obtener la longitud de una cadena o los
elementos de una lista:
len(perro) #2
Puedes agregar un nuevo par clave/valor al diccionario de esta
manera:
perro[ ‘comida favorita] = ‘Carne’
Puedes eliminar un par clave/valor de un diccionario usando la
declaracién del:
del perro['comida favorita’]
tps: reecodecamp orglespanalinews/elmanual-de-pythan! eanz02410212028, 1758 El Manual 6e Python
perroCopia = perro.copy()
Conjuntos en Python
Los conjuntos(sets) son otra estructura de datos importante de
Python.
Podemos decir que funcionan como tuplas, pero no estan ordenadas y
son mutables.
© podemos decir que funcionan como diccionarios, pero no tienen
claves.
También tienen una versién inmutable, llamada frozenset .
Puedes crear un conjunto usando esta sintaxis:
nombres =
Los conjuntos funcionan bien cuando se los considera conjuntos
matemiaticos.
Puedes intersecar dos conjuntos:
tps: reecodecamp orglespanalinews/elmanual-de-pythan! i1202410212028, 1758 El Manual 6e Python
interseccion = conjuntol & conjunto2 #{'Roger'}
Puedes crear una uni6n de dos conjuntos:
conjuntol = {"Roger", "syd"}
conjunto2 = {"Luna"}
union = conjuntoi | conjunto2
#{ "Syd", “Luna', ‘Roger*}
Puedes obtener la diferencia entre dos conjuntos:
conjuntol = {"Roger", "Syd"}
conjunto2 Roger")
diferencia = conjuntol - conjunto2 #{' Syd")
Puedes comprobar si un conjunto es un superconjunto de otro (y, por
supuesto, si un conjunto es un subconjunto de otro):
conjuntol = {"Roger", “Syd"}
conjunto2 = ("Roger")
esSuperconjunto = conjuntol > conjunto2 # True
tps: reecodecamp orglespanalinews/elmanual-de-pythan! e1202410212028, 1758 El Manual 6e Python
nombres = {"Roger", "Syd"}
len(nombres) # 2
Puedes obtener una lista de los elementos de un conjunto pasando el
conjunto al constructor list() :
nombres =
"Roger", "Syd"}
List (nombres) #["Syd', "Roger"]
Puedes verificar si un elemento esta contenido en un conjunto con el
operador in:
print("Roger” in nombres) # True
Funciones en Python
Una funcién nos permite crear un conjunto de instrucciones que
podemos ejecutar cuando sea necesario.
Las funciones son esenciales en Python y en muchos otros lenguajes
de programacién. Nos ayudan a crear programas significativos, porque
nos permiten descomponer un programa en partes manejables y
promueven la legibilidad y la reutilizacion del codigo.
tps: reecodecamp orglespanalinews/elmanual-de-pythan! ernz02410212028, 1758 El Manual 6e Python
def hola()
print (‘Hola! *)
Esta es la definicién de la funcién. Hay un nombre hola y un cuerpo,
el conjunto de instrucciones, que es la parte que sigue a los dos
puntos. Tiene una indentaci6n de un nivel a la derecha.
Para ejecutar esta funcién, debemos Ilamarla. Esta es la sintaxis para
llamar a la funcién:
hola()
Podemos ejecutar esta funcién una o varias veces.
El nombre de la funcién, hola , es muy importante. Debe ser
descriptivo, para que cualquiera que lo llame pueda imaginar lo que
hace la funci6n.
Una funcién puede aceptar uno 0 mas pardmetros:
def hola(nombre) :
print(‘Hola ‘ + nombre + ‘!")
En este caso Ilamamos ala funcién pasando el argumento
tps: reecodecamp orglespanalinews/elmanual-de-pythan! ean1202410212028, 1758 El Manual 6e Python
Llamamos pardmetros a los valores aceptados por la funcién
dentro de la definicion de la funcion, y argumentos a los
valores que pasamos a la funcién cuando la llamamos. Es
comtin confundirse con esta distinci6n.
Un argumento puede tener un valor predeterminado que se aplica si
no se especifica el argumento:
def hola(nonbre='mi amigo’):
print('Hola ' + nombre + '!')
hola()
# Hola mi amigo!
Asi es como podemos aceptar multiples parametros:
ef hola(nombre, edad):
print(‘Hola ' + nombre + ', tienes ‘ + str(edad) + ' a_os de edad!')
Eneste caso llamamos a la funcion pasando un conjunto de
argumentos:
hola( ‘Roger’, 8)
tps: reecodecamp orglespanalinews/elmanual-de-pythan! eant202410212028, 1758 El Manual 6e Python
como pardmetros y modificas su valor dentro de la funcidn, el nuevo
valor no se refleja fuera de la funcién:
def cambio(valor):
valor = 2
val = 1
cambio(val)
print (val) #1
Si pasas un objeto que no es inmutable y cambia una de sus
propiedades, el cambio se reflejard en el exterior.
Una funcién puede devolver un valor mediante la declaracién de
return . Por ejemplo, en este caso devolvemos el nombre del
pardmetro nombre :
def hola(nombre) :
print(‘Hola ' + nombre + *!')
return nombre
Cuando |a funcién cumple con la declaraci6n return ,lafuncién
finaliza.
Podemos omitir el valor:
tps: reecodecamp orglespanalinews/elmanual-de-pythan! roni202410212028, 1758 El Manual 6e Python
Podemos tener la declaracién de retorno dentro de un condicional,
que es una forma comin de finalizar una funcién sino se cumple una
condicién inicial:
def hola(nombre) :
if not nombre:
return
print( ‘Hola
+ nombre + '!')
Sillamamos ala funcion pasando un valor que se evaltia como False,
como una cadena vacia, la funcién finaliza antes de llegar ala
declaracién print() .
Puedes devolver varios valores utilizando valores separados por
comas:
def hola(nombre) :
print(‘Hola ' + nombre + *!')
return nombre, ‘Roger’, &
En este caso, al llamar a hola(‘ Syd’) , el valor de retorno es una tupla
que contiene esos 3 valores: (‘Syd', ‘Roger’, 8).
Objetos en Python
hitpssiwwreecodecamp orglespanalinews/elmanual-de-python! ranz02410212028, 1758 El Manual 6e Python
flotantes...) son objetos. Las listas son objetos, al igual que las tuplas,
los diccionarios, todo.
Los objetos tienen atributos y métodos a los que se puede acceder
mediante la sintaxis de punto.
Por ejemplo, intenta definir una nueva variable de tipo int :
edad = 8
edad ahora tiene acceso a las propiedades y métodos definidos para
todos los objetos int .
Esto incluye, por ejemplo, el acceso a la parte real e imaginaria de ese
numero:
print(edad.real) # 8
print(edad.imag) # @
print(edad.bit_length()) #4
# e1 metodo bit_length() devuelve el numero de bits necesarios para repre
Una variable que contiene un valor de lista tiene acceso a un conjunto
diferente de métodos:
tps: reecodecamp orglespanalinews/elmanual-de-pythan! ran202410212028, 1758 El Manual 6e Python
items. pop()
Los métodos dependen del tipo de valor.
La funcién global id() proporcionada por Python permite
inspeccionar la ubicacion en la memoria de un objeto en particular
id(edad) # 140170065725376
Tu valor de memoria cambiara, solo lo muestro como un
ejemplo.
Si asignas un valor diferente a la variable, su direccién cambiara,
porque el contenido de la variable ha sido reemplazado por otro valor
almacenado en otra ubicaci6n de la memoria:
edad = 8
print(id(edad)) # 149535918671808
edad = 9
print(id(edad)) # 140535918671840
Pero si modificas el objeto usando sus métodos, la direccién
permanece igual:
tps: reecodecamp orglespanalinews/elmanual-de-pythan! raniz02410212028, 1758
El Manual 6e Python
print(id(items)) # 14¢093713593920
items. append(3)
print(items) # [1, 2, 3]
print(id(items)) # 149093713593920
La direccién solo cambia si reasignas una variable a otro valor.
Algunos objetos son mutables, mientras que otros son inmutables.
Esto depende del objeto en si.
Si el objeto proporciona métodos para cambiar su contenido, entonces
es mutable. De lo contrario, es inmutable.
La mayorfa de los tipos definidos por Python son inmutables. Por
ejemplo, un int es inmutable, No hay métodos para cambiar su valor.
Siincrementas el valor usando
edad
edad = edad + 1
edad += 1
y verificas con id(edad) , encontraras que la edad apunta a una
ubicacién de memoria diferente. El valor original no ha cambiado,
simplemente cambiamos a otro valor.
tps: reecodecamp orglespanalinews/elmanual-de-pythan! ranz02410212028, 1758 El Manual 6e Python
En Python tenemos 2 tipos de bucles: bucles while y bucles for.
Bucles while en Python
Bucles while se definen utilizando la palabra clave while y repiten
su bloque hasta que la condicién se evaltia como False :
condicion = True
while condicion
print("La condicion es verdadera”)
True
Este es un bucle infinito. Nunca termina.
Detengamos el ciclo justo después de la primera iteracior
condicion
True
while condicion
rue
print("La condicion es verdadera”)
condicion = False
print("Despues del bucle")
En este caso, se ejecuta la primera iteracién, ya que la prueba de
condicién se evalia como True . En la segunda iteracién, la prueba de
condicién se evaltia como False , por lo que el control pasa ala
siguiente instruccién después del ciclo.
tps: reecodecamp orglespanalinews/elmanual-de-pythan! 711202410212028, 1758 El Manual 6e Python
contador = @
while contador < 1@
print(“La condicion es verdadera”)
contador = contador + 1
print(*Despues del bucle*)
Bucles for en Python
Usando bucles for podemos decirle a Python que ejecute un bloque
por una cantidad predeterminada de veces, por adelantado, y sin la
necesidad de una variable separada y condicional para verificar su
valor.
Por ejemplo, podemos iterar los elementos de una lista:
items = [1, 2, 3, 4]
for item in items:
print (item)
O puedes iterar una cantidad especifica de veces usando la funcién
range() :
for item in range(@4):
print (item)
tps: reecodecamp orglespanalinews/elmanual-de-pythan! 7en202410212028, 1758 El Manual 6e Python
Para obtener el indice, debes ajustar la secuencia en la funcion
enumerate() :
items = (1, 2, 3, 4]
for indice, item in enumerate(items)
print (indice, item)
Break y continue en Python
Tanto los bucles while como for pueden interrumpirse dentro del
bloque, utilizando dos palabras clave especiales:
break y continue.
continue detiene la iteracién actual y le dice a Python que ejecute la
siguiente.
break detiene el bucle por completo y continua con la siguiente
instruccién después que termina el bucle.
El primer ejemplo aqui imprime 1, 3, 4.El segundo ejemplo imprime
1:
items = (1, 2, 3, 4)
for item in items:
a
continue
print (item)
if item
tps: reecodecamp orglespanalinews/elmanual-de-pythan! rm202410212028, 1758 El Manual 6e Python
break
print (item)
Clases en Python
Ademés de usar los tipos proporcionados por Python, podemos
declarar nuestras propias clases y, a partir de las clases, podemos
crear instancias de objetos.
Un objeto es una instancia de una clase. Una clase es el tipo de objeto.
Podemos definir una clase de esta manera:
class :
# mi clase
Por ejemplo, definamos una clase Perro :
class Perro:
# la clase Perro
Una clase puede definir métodos:
tps: reecodecamp orglespanalinews/elmanual-de-pythan! rani202410212028, 1758 El Manual 6e Python
print(‘Guau! ')
self ya que el argumento del método apunta ala instancia del
objeto actual y debe especificarse al definir un método.
Creamos una instancia de una clase, un objeto, usando esta sintaxis:
roger = Perro()
Ahora roger es un nuevo objeto de tipo Perro.
Si ejecutas:
print (type(roger))
Obtendras
Un tipo especial de método, __init__() se llamaconstructor, y
podemos usarlo para inicializar una o més propiedades cuando
creamos un nuevo objeto de esa clase:
class Perro:
# la clase Perro
def _init_(self, nombre, edad)
tps: reecodecamp orglespanalinews/elmanual-de-pythan! raniz02410212028, 1758 El Manual 6e Python
print(‘Guau! ')
La usamos de esta manera:
roger = Perro('Roger', 8)
print(roger.nombre) # ‘Roger’
print(roger.edad) # 8
roger.ladrido() # ‘Guau!"
Una caracteristica importante de las clases es la herencia.
Podemos crear una clase Animal conunmétodo caminar() :
class Animal:
def caminar(self
print('Caminando..")
y laclase Perro puede heredar de Animal:
class Perro(Animal)
def ladrido(self):
print(*Guau!")
tps: reecodecamp orglespanalinews/elmanual-de-pythan! e1202410212028, 1758 El Manual 6e Python
roger = Perro()
roger.caminar() # 'Caminando..*
roger.ladrido() # ‘Guau!"
Médulos en Python
Cada archivo de Python es un médulo.
Puedes importar un médulo desde otros archivos, y esa es la base de
cualquier programa de complejidad moderada, ya que promueve una
organizacién sensata y la reutilizacién del cédigo.
Enel programa tipico de Python, un archivo acttia como punto de
entrada. Los otros archivos son médulos y exponen funciones que
podemos llamar desde otros archivos.
Elarchivo perro. py contiene este cédigo:
def ladrido():
print(‘Guau!")
Podemos importar esta funcién desde otro archivo usando import .Y
una vez que lo hagamos, podemos hacer referencia a la funcién
usando la notacién de puntos, perro. ladrido() :
tps: reecodecamp orglespanalinews/elmanual-de-pythan! ewi202410212028, 1758 El Manual 6e Python
Opodemosusar lasintaxis from ... import y llamar ala funcién
directamente:
from perro import ladrido
ladrido()
La primera estrategia nos permite cargar todo lo definido en un
archivo.
La segunda estrategia nos permite elegir las cosas que necesitamos.
Esos médulos son especificos de tu programa y la importacién
depende de la ubicacion del archivo en el sistema de archivos.
Supongamos que colocas perro.py enunasubcarpeta lib.
Enesa carpeta, debes crear un archivo vacio llamado __init__.py.
Esto le dice a Python que la carpeta contiene médulos.
Ahora puedes elegir -puedes importar perro desde lib:
from Lib import perro
perro. ladrido()
tps: reecodecamp orglespanalinews/elmanual-de-pythan! e2202410212028, 1758 El Manual 6e Python
from lib.perro import ladrido
ladrido()
Libreria estandar de Python
Python expone una gran cantidad de funciones integradas a través de
su libreria estandar.
La libreria estndar es una gran coleccién de todo tipo de utilidades,
que van desde las matematicas hasta la depuracién y la creacién de
interfaces grAficas de usuario.
Puedes encontrar la lista completa en inglés de médulos de la
biblioteca estandar aqui: https://docs.python.org/3/librar
Algunos de los médulos importantes son:
* math para utilidades matematicas
* re para expresiones regulares
* json para trabajar con JSON
* datetime para trabajar con fechas
* sqlite3 para usar SQLite
* os parautilidades de Sistemas Operativos
* random para la generacién de nuimeros aleatorios
tps: reecodecamp orglespanalinews/elmanual-de-pythan! eani202410212028, 1758 El Manual 6e Python
* http para crear servidores HTTP
* urllib para administrar URLs
Introduzcémos como usar un médulo de la biblioteca estandar. Ya
sabes cémo usar los médulos que creas, importando desde otros
archivos en la carpeta del programa.
Bueno, eso es lo mismo con los médulos proporcionados por la
biblioteca estandar:
import math
math.sqrt(4) # 2.0
from math import sqrt
sqrt(4) # 2.0
Pronto exploraremos los médulos mas importantes de forma
individual para comprender qué podemos hacer con ellos.
La guia de estilo PEP8 en Python
tps: reecodecamp orglespanalinews/elmanual-de-pythan! enzo2410212028, 1758 El Manual 6e Python
Si aprendes las convenciones correctas de nomenclatura y formato
desde el principio, sera mas facil leer el codigo escrito por otras
personas, y las personas encontraran tu cédigo més facil de leer.
Python define sus convenciones en la guia de estilo PEP8. PEP son las
siglas de Python Enhancement Proposals y es el lugar donde ocurren
todas las mejoras y discusiones del lenguaje Python.
Hay muchas propuestas de PEP, todas disponibles en
https://www.python.org/dev/peps/.
PEP8 es una de las primeras y también una de las mas importantes.
Define el formato y también algunas reglas sobre como escribir
Python de forma "pitonica"("pythonic’).
Puedes leer su contenido completo aqui:
httns:/www.python.org/dev/peps/pep-0008/ pero aqui hay un
resumen rdpido de los puntos importantes con los que puedes
comenzar:
« Aplicar indentacion mediante espacios, no tabulaciones
* Indentar usando 4 espacios.
* Los archivos de Python estan codificados en UTF-8
* Usa un maximo de 80 columnas para tu codigo
* Escribe cada declaracién en su propia linea.
* Las funciones, los nombres de las variables y los nombres de
los archivos estan en minusculas, con guiones bajos entre las
palabras (snake_case)
tps: reecodecamp orglespanalinews/elmanual-de-pythan! esi1202410212028, 1758 El Manual 6e Python
+ Los nombres de los paquetes estan en mintisculas y no tienen
guiones bajos entre las palabras.
* Las variables que no deben cambiar (constantes) se escriben en
maytisculas
+ Los nombres de las variables deben ser significativos
+ Agrega comentarios ttiles, pero evita los comentarios obvios
* Agregar espacios alrededor de los operadores
+ Nouses espacios en blanco innecesarios
+ Agregar una linea en blanco antes de una funcién
* Agregar una linea en blanco entre los métodos de una clase
* Dentro de las funciones/métodos, las Iineas en blanco se
pueden usar para separar bloques de cédigo relacionados para
ayudar a la legibilidad
Depurando en Python
La depuracién es una de las mejores habilidades que puedes aprender,
ya que te ayudar en muchas situaciones dificiles.
Cada lenguaje tiene su depurador. Python tiene pdb , disponible a
través de la biblioteca estandar.
Depura agregando un punto de interrupcién en tu cédigo:
tps: reecodecamp orglespanalinews/elmanual-de-pythan! e1202410212028, 1758 El Manual 6e Python
Puedes agregar mas puntos de interrupcidn si es necesario.
Cuando el intérprete de Python llegue a un punto de interrupcién en
tu cédigo, se detendré y te dir cual es la siguiente instruccién que
ejecutara.
Luego, puedes hacer algunas cosas.
Puedes escribir el nombre de cualquier variable para inspeccionar su
valor.
Puedes presionar n para pasar ala siguiente linea en la funcién
actual. Si el cédigo llama a funciones, el depurador no entra en ellas y
las considera "cajas negras" (black boxes).
Puedes presionar s para pasar ala siguiente linea en la funcién
actual. Si la siguiente linea es una funci6n, el depurador entra en ella y
luego puedes ejecutar una instruccién de esa funciona la vez.
Puedes presionar ¢ para continuar la ejecucién del programa con
normalidad, sin necesidad de hacerlo paso a paso
Puedes presionar q para detener la ejecucién del programa.
La depuracién es util para evaluar el resultado de una instruccién, y es
especialmente bueno saber cémo usarla cuando tienes iteraciones 0
algoritmos complejos que deseas corregir.
tps: reecodecamp orglespanalinews/elmanual-de-pythan! ernz02410212028, 1758 El Manual 6e Python
programa, dependiendo de dénde la declares.
Si la declaras fuera de cualquier funcién, la variable es visible para
cualquier codigo que se ejecute después de la declaracién, incluidas
las funciones:
edad = 8
def prueba():
print (edad)
print(edad) # 8
prueba() # 8
Lo llamamos variable global.
Si defines una variable dentro de una funci6n, esa variable es una
variable local y solo es visible dentro de esa funcin. Fuera de la
funci6n, no es accesible:
def prueba():
edad = 8
print (edad)
prueba() #8
print (edad)
#t # # NameError: name ‘edad' is not defined
# Error: el nombre ‘edad’ no esta definido
tps: reecodecamp orglespanalinews/elmanual-de-pythan! ea1202410212028, 1758 El Manual 6e Python
@uwu> Cir yuri
1@ Waca UT LY
Python ofrece varias formas de manejar los argumentos pasados
cuando invocamos el programa desde la linea de comandos.
Hasta ahora has ejecutado programas desde un REPL o usando
python .py
Puedes pasar argumentos y opciones adicionales cuando lo hagas,
como este:
python .py
python .py
Una forma basica de manejar esos argumentos es usar el médulo sys
de la biblioteca estandar.
Puedes obtener los argumentos pasados en la lista sys.argv :
import, sys
print(len(sys.argv))
print(sys.argv)
tps: reecodecamp orglespanalinews/elmanual-de-pythan! 01202410212028, 1758 El Manual 6e Python
Es una forma sencilla, pero tienes mucho trabajo por hacer. Debes
validar los argumentos, asegurarte de que su tipo sea correcto y debes
imprimir comentarios al usuario si no esta usando el programa
correctamente.
Python proporciona otro paquete en la biblioteca estandar para
ayudarlo: argparse .
Primero importa argparse yllamaa argparse.ArgumentParser() ,
pasando la descripcién de tu programa:
import argparse
parser = argparse.ArgumentParser(
description="Este programa imprime los nombres de mis perros’
Luego procedes a agregar los argumentos que deseas aceptar, por
ejemplo en este programa aceptamos una opcién -c para pasar un
color, asi:
python program.py -c red
tps: reecodecamp orglespanalinews/elmanual-de-pythan! 0/1202a)o2'2023, 17:58 El Manual 6e Python
Foro
Aprender a codificar — gratis 3,000-horas curriculo
print(args.color) # ‘red’ (rojo)
| ,
Sino se especifica el argumento, el programa genera un error:
python python programa.py
usage: programa.py [-h] -c color
programa.py: error: the following arguments are required: -c
(#programa.py: error: los siguientes argumentos son requeridos:
|
Puedes configurar una opcién para tener un conjunto especifico de
valores, usando choices (opciones):
parser.add_argument(‘-c', ‘--color’, metavar='color’, required=True, cho:
De ,
+ python python programa.py -c blue
usage: programa.py [-h] -c color
programa.py: error: argument -c/--color: invalid choice: ‘blue’ (cl
#programa.py: error: argumentp -c/--color: opcion invalida: ‘blue’
De ,
tps: reecodecamp orglespanalinews/elmanual-de-pythan! ewiz02410212028, 1758 El Manual 6e Python
como Click y Python Prompt Toolkit.
Funciones Lambda en Python
Las funciones lambda (también llamadas funciones anénimas) son
funciones diminutas que no tienen nombre y solo tienen una
expresién como cuerpo.
En Python se definen mediante la palabra clave lambda :
Landa :
El cuerpo debe ser una sola expresién -una expresion, no una
declaracién.
Esta diferencia es importante. Una expresién devuelve un
valor, una declaracién no.
El ejemplo més simple de una funcién lambda es una funcién que
duplica el valor de un numero:
lambda num : num * 2
Las funciones Lambda pueden aceptar mas argumentos:
tps: reecodecamp orglespanalinews/elmanual-de-pythan! e2202410212028, 1758 El Manual 6e Python
Las funciones de Lambda no se pueden invocar directamente, pero
puedes asignarlas a variables:
multiplicar = lambda a, b: a* b
print (multiplicar(2, 2)) # 4
La utilidad de las funciones lambda viene cuando se combina con otras
funciones de Python, por ejemplo en combinacién con map() ,
filter() y reduce().
Recursi6n en Python
Una funcién en Python puede Ilamarse a si misma. Eso es la
recursividad. Y puede ser bastante util en muchos escenarios.
La forma comtin de explicar la recursividad es mediante el calculo
factorial.
El factorial de un numero es el ntimero n multiplicado por n-1,
multiplicado por n-2 ..yasi sucesivamente, hasta llegar al nimero 1:
Bl=3*2* 75
4ls4*342
51=5*443%
24
1 = 128
n
tps: reecodecamp orglespanalinews/elmanual-de-pythan! eat202410212028, 1758 El Manual 6e Python
def factorial(n):
ifn
return n * factorial(n-1)
4: return 1
print(factorial(3)) # 6
print(factorial(4)) # 26
print (factorial(s)) # 128
Sidentro de lafuncién factorial() llamasa factorial(n) enlugar
de factorial(n-1) , vas a provocar una recursion infinita. Python, de
forma predeterminada detendra las recursiones en 1000 Ilamadas, y
cuando se alcance este limite, obtendras un error RecursionError .
La recursividad es util en muchos lugares y nos ayuda a simplificar
nuestro cédigo cuando no hay otra forma optima de hacerlo, por lo
que es bueno conocer esta técnica.
Funciones anidadas en Python
Las funciones en Python se pueden anidar dentro de otras funciones.
Una funci6n definida dentro de una funcion es visible solo dentro de
esa funcion.
Esto es conveniente para crear utilidades que sean utiles para una
funcion, pero no utiles fuera de ella.
Podrias preguntar: gpor qué deberia "ocultar" esta funcién, si no hace
daio?
tps: reecodecamp orglespanalinews/elmanual-de-pythan! ani202410212028, 1758 El Manual 6e Python
Ademas, porque podemos hacer uso de closures(sobre esto mas
adelante).
Aqui hay un ejemplo:
def hablar(frase):
def decir(palabra):
print (palabra)
palabras - frase.split(’ ')
for palabra in palabras:
decir(palabra)
hablar('Voy a comprar 1a leche*)
Si deseas acceder a una variable definida en la funcién externa desde
la funcién interna, primero debes declararla como nonlocal (no local):
def conteo():
conteo = @
def incrementar():
nonlocal conteo
conteo = conteo + 1
print (conteo)
incrementar()
conteo()
tps: reecodecamp orglespanalinews/elmanual-de-pythan! 5/1202410212028, 1758 El Manual 6e Python
Closures en Python
Si devuelves una funcién anidada de una funcion, esa funcién anidada
tiene acceso a las variables definidas en esa funci6n, incluso si esa
funcion ya no esta activa.
Aqui hay un ejemplo de contador simple.
def contador():
conteo = @
def incrementar():
nonlocal conteo
conteo = conteo + 1
return conteo
return incrementar
incrementar = contador ()
print(inerenentar()) # 2
print(increnentar()) # 2
print(inerenentar()) # 3
Devolvemos la funcién interna incrementar() , que todavia tiene
acceso al estado de la variable conteo aunque lafuncién contador()
haya finalizado.
Decoradores en Python
Los decoradores son una forma de cambiar, mejorar o alterar de
cualquier forma el funcionamiento de una funcién.
tps: reecodecamp orglespanalinews/elmanual-de-pythan! 9/1202410212028, 1758 El Manual 6e Python
Ejemplo:
@registro
def hola()
print('jhola!")
Esta funcién hola tiene asignado el decorador de registro.
Siempre que llamemos a hola() , se llamara al decorador.
Un decorador es una funcién que toma una funcién como parametro,
envuelve la funcién en una funcion interna que realiza el trabajo que
tiene que hacer y devuelve esa funcién interna. En otras palabras:
def registro(func):
def envoltura()
# hace algo antes
val = func()
# hace algo después
return val
return envoltura
Docstrings en Python
La documentacién es muy importante, no solo para comunicar a otras
personas cuales el objetivo de una funcién / clase / método / médulo,
sino que también te lo comunicas a ti mismo.
tps: reecodecamp orglespanalinews/elmanual-de-pythan! ern202410212028, 1758 El Manual 6e Python
hacer sera mucho mis dificil.
Los comentarios son una forma de ayudarte a ti mismo (y alos demas):
# esto es un comentario
num = 1 # esto es otro comentario
Otra forma es utilizar docstrings(cadenas de documentacién).
Lautilidad de las docstrings es que siguen convenciones. Como tales,
pueden procesarse automaticamente.
Asi es como se define una docstring para una funcién:
def incrementar(n):
‘Increnenta un numero’
return n+
Asi es como se define una docstring para una clase y un método:
class Perro:
Una clase que representa un perro’
def _init_(self, nombre, edad)
“"Tnicializar un nuevo perro’
self.nombre = nombre
self.edad = edad
tps: reecodecamp orglespanalinews/elmanual-de-pythan! 81202410212028, 1758 El Manual 6e Python
Documenta un médulo colocando una cadena de documentos en la
parte superior del archivo, por ejemplo, suponiendo que se trata de
perro.py:
Modulo Perro
Este modulo hace ... bla bla bla y provee las siguientes clases:
- Perro
class Perro:
Una clase que representa un perro’
def _init_(self, nombre, edad)
nicializar un nuevo perro’
self.nombre = nombre
self.edad = edad
def ladrido(selt) :
“permite ladrar al perro
print(‘WOF!")
Docstrings pueden abarcar varias lineas:
def incrementar(n):
‘Increnenta
un numero
tps: reecodecamp orglespanalinews/elmanual-de-pythan! 20/1202410212028, 1758 El Manual 6e Python
Python los procesara, y puedes usar la funcion global help() para
obtener la documentacion de una clase/método/funcién/médulo.
Por ejemplo, llamar a help(incrementar) te dard esto:
#Help on function incrementar in module __main__:
#ayuda en funcién incrementar en el modulo __main__
incrementar(n)
Incrementa
un ndmero
Hay muchos estandares diferentes para formatear docstrings, y
puedes elegir adherirte a tu favorito.
Me gusta el estandar de Google(inglés):
https://github.com/google/styleguide/blob/gh-pages/pyguide.md#38-
comments-and-docstrings
Los estandares permiten tener herramientas para extraer docstrings y
generar automaticamente documentacién para tu cédigo.
Introspeccién en Python
Las funciones, variables y objetos se pueden analizar mediante la
introspeccién.
tps: reecodecamp orglespanalinews/elmanual-de-pythan! 00/1202a)o2'2023, 17:58 El Manual 6e Python
Luego, puede usar print() para obtener informacién sobre una
funcion:
def incrementar(n):
return n+
print(incrementar)
#
oun objeto:
class Perro():
def ladrido(self):
print (‘WOF!")
roger = Perro()
print (roger)
# <_main__.Perro object at @x7F4209903340>
Lafuncién type() nos da el tipo de objeto:
print (type(incrementar))
#
print(type(roger))
#
tps: reecodecamp orglespanalinews/elmanual-de-pythan! so1202410212028, 1758 El Manual 6e Python
print(type('test'))
#
La funcién global dir() nos permite conocer todos los métodos y
atributos de un objeto:
print(dir(roger))
dict", *
# ['_class_', '_delattr,
_dir_', "doc,
La funcién global id() nos muestra la ubicacion en la memoria de
cualquier objeto:
print(id(roger)) # 14¢227518093024
print(id(1)) # 140227521172384
Puede resultar Util comprobar si dos variables apuntan al mismo
objeto.
E| médulo de biblioteca estandar para inspeccién inspect nos brinda
mas herramientas para obtener informacion sobre objetos, y puedes
consultarlo aqui:
https://docs.python.org/3/library/inspect.html(inglés)
tps: reecodecamp orglespanalinews/elmanual-de-pythan! so2/1202410212028, 1758 El Manual 6e Python
de una variable o parametro de funcién, o un valor de retorno de
funci6n.
Las anotaciones nos permiten (opcionalmente) hacer eso.
Esta es una funci6n sin anotaciones:
def incrementar(n):
return n+ 2
Esta es la misma funcion con anotaciones:
def incrementar(n: int) -> int:
return n+ 2
También puedes anotar variables:
conteo: int = @
Python ignorard esas anotaciones. Una herramienta separada llamada
mypy se puede ejecutar de forma independiente o integrada por IDE
como VS Code o PyCharm, para verificar automaticamente los errores
de tipo de forma estatica, mientras estas programando. También te
tps: reecodecamp orglespanalinews/elmanual-de-pythan! soa202410212028, 1758 El Manual 6e Python
Una gran ayuda, especialmente cuando tu software se vuelve grande y
necesitas refactorizar el codigo.
Excepciones en Python
Es importante tener una forma de manejar los errores, y Python nos
brinda un manejo de excepciones para hacerlo.
Si envuelven lineas de cédigo en un bloque try:
try:
# algunas lineas de codigo
Si ocurre un error, Python te alertara y podras determinar qué tipo de
error ocurrié usando bloques except :
try:
# algunas lineas de codigo
except :
# manejo de
except :
# manejo de
Para atrapar a todas las excepciones, puedes usar except sin ningun
tipo de error:
tps: reecodecamp orglespanalinews/elmanual-de-pythan! soan202a)o2'2023, 17:58 El Manual 6e Python
# manejo de
except:
# atrapar todas las demas excepciones
El bloque else se ejecuta si no se encontraron excepciones:
try:
# algunas lineas de codigo
except :
# manejo de
except :
# manejo de
else:
# no surgieron excepciones, el codigo se ejecuto correctamente
Un bloque finally permite realizar alguna operacin en cualquier
caso, independientemente de si se produjo un error o no:
try:
# algunas lineas de codigo
except :
# manejo de
except :
# manejo de
else:
# no surgieron excepciones, el codigo se ejecuto correctamente
finally:
# hacer algo de todos modos
tps: reecodecamp orglespanalinews/elmanual-de-pythan! 105/1202410212028, 1758 El Manual 6e Python
Por ejemplo, si estas leyendo un archivo, es posible que obtengas un
E0FError . Si divides un numero por cero obtendras un
ZeroDivisionError . Sitienes un problema de conversion de tipos, es
posible que obtengas un TypeError .
Prueba este codig
resultado = 2 / @
print (resultado)
El programa terminarA con un error:
Traceback (most recent call last):
File "main.py", line 1, in
resultado = 2 / @
ZeroDivisionError: division by zero
#Rastreo (la mas reciente Ultima llamada)
# Archivo “main.py", linea 1, en
# resultado = 2/8
#ZeroDivisionError: division por cero
Mensaje en idioma original (traduccién cercana sefialada con #)
y las lineas de cédigo después del error no se ejecutaran.
Agregar esa operacién en un bloque try: nos permite recuperarnos
con gracia y seguir adelante con el programa:
tps: reecodecamp orglespanalinews/elmanual-de-pythan! 08/1202410212028, 1758 El Manual 6e Python
except ZeroDivisionError:
print('No se puede dividir por cero!)
finally:
resultado = 2
print(resultado) # 1
También puedes generar excepciones en tu propio cédigo, utilizando
ladeclaracion raise:
raise Exception( ‘Ha ocurrido un error!')
Esto genera una excepcién general y puedes interceptarla usando:
try:
raise Exception('Ha ocurrido un error!')
except Exception as error:
print (error)
También puedes definir tu propia clase de excepcidn, desde
Exception :
class PerroNoEncontradoExcepcion (Exception) :
pass
hitpssiwwreecodecamp orglespanalinewslelmanual-de-pythan! so7202410212028, 1758 El Manual 6e Python
try:
raise PerroNoEncontradoExcepcion()
except PerroNoEncontradoExcepcion:
print( ‘Perro no encontrado! *)
Declaraci6n with en Python
Ladeclaracién with es muy util para simplificar el trabajo con el
manejo de excepciones.
Por ejemplo, cuando trabajamos con archivos, cada vez que abrimos
un archivo, debemos recordar cerrarlo.
with hace que este proceso sea transparente.
En lugar de escribir:
nombre = '/Users/flavio/prueba. txt!
try:
archivo = open(nombre, ‘r')
contenido = archivo.read()
print(contenido)
finally:
archivo.close()
Puedes escribir:
tps: reecodecamp orglespanalinews/elmanual-de-pythan! 081202410212028, 1758 El Manual 6e Python
waun openqmumure, 6) as arcnave,
contenido = archivo.read()
print (contenido)
En otras palabras, tenemos un manejo de excepciones implicito
incorporado, ya que close() se llamar automaticamente para
nosotros.
with no solo es util para trabajar con archivos. El ejemplo anterior
solo pretende presentar sus capacidades.
Como instalar paquetes de
terceros en Python usando pip
La biblioteca estandar de Python contiene una gran cantidad de
utilidades que simplifican nuestras necesidades de desarrollo de
Python, pero nada puede satisfacerlo todo.
Es por eso que las personas y las empresas crean paquetes y los ponen
a disposicién como software de cédigo abierto para toda la
comunidad.
Todos esos médulos se recopilan en un solo lugar, Python Package
Index (indice de paquetes de Python); disponible en https://py!
pueden instalar en tu sistema usando pip .
Hay més de 270.000 paquetes disponibles gratuitamente al momento
de escribir este articulo.
hitpssiwwreecodecamp orglespanalinewslelmanual-de-pythan! soar1202410212028, 1758 El Manual 6e Python
Instala cualquier paquete usando el comando pip instal:
pip install
0, sitienes problemas, también puedes ejecutarlo através de python
python -m pip install
Por ejemplo, puedes instalar el paquete requests ,una biblioteca
HTTP popular:
pip install requests
yuna vez que lo hagas, estard disponible para todos tus scripts de
Python, porque los paquetes se instalan globalmente.
Laubicacién exacta depende de tu sistema operativo.
En macOS, con Python 3.9, la ubicacién es
/Library/Frameworks/Python. framework /Versions/3.9/1ib/python3 .9/site-
packages.
tps: reecodecamp orglespanalinews/elmanual-de-pythan! 1011202410212028, 1758 El Manual 6e Python
pip install -U
Instale una versin especifica de un paquete usando:
pip install :
version>
Desinstala un paquete usando:
pip uninstall
Muestra los detalles de un paquete instalado, incluida la version, el
sitio web de documentacion y la informacion del autor mediante:
pip show
Comprensiones de lista en Python
Las comprensiones de lista son una forma de crear listas de una
manera muy concisa.
Supongamos que tienes una lista:
tps: reecodecamp orglespanalinews/elmanual-de-pythan! s101202410212028, 1758 El Manual 6e Python
Puedes crear una nueva lista usando una comprensién de lista,
compuesta por los elementos de la lista de numeros , elevados a 2:
numeros_elevados_a_2 = [n**2 for n in numeros]
#[1, 4, 9, 16, 25]
Las comprensiones de lista son una sintaxis que a veces se prefiere a
los bucles, ya que es mas legible cuando la operacién se puede escribir
enuna sola linea:
numeros_elevados_a_2 = []
for n in numeros:
numeros_elevados_a_2.append(n**2)
ysobre map() :
numeros_elevados_a_2 = list(map(lambda n : n**2, numeros))
Polimorfismo en Python
El polimorfismo generaliza una funcionalidad para que pueda
funcionar en diferentes tipos. Es un concepto importante en la
tps: reecodecamp orglespanalinews/elmanual-de-pythan! srat202410212028, 1758 El Manual 6e Python
class Perro:
def comer():
print('Comiendo comida de perro")
class Gato
def comer():
print('Comiendo comida de gato")
Luego podemos generar objetos y podemos llamar al método comer ()
independientemente de la clase ala que pertenezca el objeto, y
obtendremos resultados diferentes:
animal
erro()
animal2 = Gato()
animal1.comer()
animal2.comer()
Creamos una interfaz generalizada y ahora no necesitamos saber que
un animales un Gato oun Perro.
Sobrecarga de operador en
Python
La sobrecarga de operadores es una técnica avanzada que podemos
utilizar para hacer que las clases sean comparables y que funcionen
tps: reecodecamp orglespanalinews/elmanual-de-pythan! sra202410212028, 1758 El Manual 6e Python
class Perro:
# la clase Perro
def _init_(self, nombre, edad)
self.nombre = nombre
self.edad = edad
Creemos 2 objetos Perro:
roger = Perro('Roger', 8)
syd = Perro('syd", 7)
Podemos usar la sobrecarga de operadores para agregar una forma de
comparar esos 2 objetos, segtin la propiedad edad :
class Perro:
# la clase Perro
def _init_(self, nombre, edad)
self.nonbre = nonbre
self.edad = edad
def _gt_(self, otro):
return True if self.edad > otro.age else False
Ahora, si intentas ejecutar print(roger > syd) obtendrds el
resultado True.
tps: reecodecamp orglespanalinews/elmanual-de-pythan! s4it202470212028, 1759 El Manual 6e Python
~-eq--() para comprobar la igualdad
© lt
() para comprobar si un objeto debe considerarse
menor que otro con el operador <
_-le__() para menor o igual ( <=)
_-ge__(). para mayor o igual ( >= )
_-ne__() parano igual (
Entonces tienes métodos para interoperar con operaciones
aritméticas:
_-add__() responde al operador +
+ __sub__() responde al operador -
+ __mul__() responde al operador *
* _truediv__() responde al operador /
--floordiv._() responde al operador //
__mod__(). responde al operador %
* __pow__() responde al operador **
__rshift__() responde al operador >>
_-lshift__() responde al operador <<
_-and__() responde al operador &
_-or__() responde al operador |
* __xor__() responde al operador *
tps: reecodecamp orglespanalinews/elmanual-de-pythan! 1511202470212028, 1759 El Manual 6e Python
Entornos virtuales en Python
Es comtin tener varias aplicaciones de Python ejecutandose en tu
sistema.
Cuando las aplicaciones requieren el mismo médulo, en algun
momento llegards a una situacién complicada en la que una aplicacién
necesita una version de un médulo y otra aplicacién una version
diferente de ese mismo médulo.
Para solucionar esto, utiliza entornos virtuales.
Usaremos venv . Otras herramientas funcionan de manera similar,
como pipeny.
Crea un entorno virtual usando
python -m venv .venv
en la carpeta donde deseas iniciar el proyecto, o donde ya tienes un
proyecto existente.
Entonces ejecuta
source .venv/bin/activate
hitpssiwwreecodecamp orglespanalinewslelmanual-de-pythan! 1611202470212028, 1759 El Manual 6e Python
Dependiendo de tu configuracién, es posible que también veas un
cambio en el indicador de tu terminal.
El mio cambié de
> carpeta
(.venv) + carpeta
Ahora, la ejecucién de pip utilizara este entorno virtual en lugar del
entorno global.
Conclusi6én
Muchas gracias por leer este libro.
Espero que te inspire a aprender mas sobre Python.
Para obtener mas informacién sobre Python y los tutoriales de
programacién en general, consulta el blog flaviocopes.com.
Envia cualquier comentario, errata u opinién a mailto:
[email protected], y puedes comunicarte con Flavio en Twitter
@flaviocopes.
Nota: puedes obtener una versién PDF, ePub y Mobien inglés
de este manual de Python
tps: reecodecamp orglespanalinews/elmanual-de-pythan! sr7it202470212028, 1759 El Manual 6e Python
Cristian Sulbaran
Desarrollador Web ReactJS & Laravel | Venezolano en Argentina veas IG |
TW G@cristiansulbar
Si leiste hasta aqui, haz un tweet al autor para mostrarle que te
importa su trabajo.] Tuitea un agradecimiento
Aprende a codificar de forma gratuita. El plan de estudios de cédigo
abierto de freeCodeCamp ha ayudado a mas de 40,000 personas a
obtener trabajos como desarrolladores.| _Empezar
ANUNCIO
freeCodeCamp is a donor-supported tax-exempt 501(c)(3) charity organization (United States
Federal Tax Identification Number: 82-0779546)
tps: reecodecamp orglespanalinews/elmanual-de-pythan! start20280212023, 17:59
FreeCodeCamp alrededor el mundo.
El Manual 6e Python
Las donaciones a freeCodeCamp van dirigidas a nuestras iniciativas educativas y ayudan a pagar
servidores, servicios y personal,
Puedes hacer una donacién deducible de impuestos aqui.
Git Clone
Métodos Agile
Python Main
Callback
Debounce
URL Encode
Blink HTML
Python Tupla
JavaScript Push
Java List
Disefio Web Responsive
2Qué es un archivo SVG?
PDF Password Remover
¢Qué es un Archivo PDF?
What |s Python?
Acercade Red de ex-Alumnos
Honestidad Académica
tps: reecodecamp orglespanalinews/elmanual-de-pythan!
Cédigo de Conducta
Guias de tendencias
ux
Proceso de Disefio
Nameros Primos
Disefio de Producto
Digital Design
Juegos de Cédigo
svM
JavaScript forEach
Google BERT
Create Table SQL
eQuées TLS?
¢Qué es una red LAN?
2Qué es npm?
Ejemplos de RSyne
Random Forest
Our Charity
Cédigoabierto Tienda Soporte Patrocinadores
Politica de privacidad Términos de servicio
s191t20280212023, 17:59 El Manual 6e Python
Foro
Aprender a codificar — gratis 3,000-horas curriculo
tps: reecodecamp orglespanalinews/elmanual-de-pythan! e020