Curso Profesional de Python

Curso Profesional de Python

Facundo García Martoni

Facundo García Martoni

¿Cómo funciona Python?

2/21
Recursos

Aportes 58

Preguntas 6

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

mi aporte

Like por el gato 😂😂

El recolector de basura (Garbage Collector) sirve como administrador de memoria automático. El recolector de basura administra la asignación y liberación de memoria para una aplicación.

Resumen

Python es un lenguaje interpretado

lo que significa que tu código es transformado por el intérprete (máquina virtual de Python) a bytecode antes de ser ejecutado por un ordenador con x sistema operativo. El bytecodees un lenguaje de programación de más bajo nivel (si esto no te es claro, te recomiendo que vayas a tomar los cursos sobre lenguajes y paradigmas de programación y el de fundamentos de ing. de software. (Básicamente desde que corres tu programa hasta que la PC lo ejecuta hay una carrera de relevos de lenguajes o protocolos hasta llegar al transistor y la señal eléctrica)
.

Garbage collector

Recuerda que el garbage collector toma los objetos y variables que no están en uso y los elimina.
.

pycache

_pycache _ es el directorio (carpeta) que contiene el bytecode (el código intermedio) que crea Python para que lo pueda leer la máquina virtual.

Compliated vs interpreted 🐍

  • Tanto compiladores como interpretadores son programas que convierten el código que escribes a lenguaje de máquina.
    Compilado: Aquel lenguaje que tiene que ser traducido al código de máquina para producir un programa ejecutable
    .

  • Interpretado: es un lenguaje de programación para el que la mayoría de sus implementaciones ejecuta las instrucciones directamente, sin una previa compilación del programa a instrucciones en lenguaje máquina.
    .

  • Garbage collector: Es una sección especial de python que se encarga de tomar los objetos y las variables que no están en uso y eliminarlas.
    .

  • ¿Qué es la carpeta pycache? Dentro de la carpeta tenemos el bytecode que es el código intermedio que crea python al ser un lenguaje interpretado para que pueda ser leido por la máquina virtual, la ventaja es que funiona como una especie de recuperacion del código que ya hemos trabajado, para que la proxima vez que ejecutes el programa se ejecutará más rápido porque no tiene que convertirse a bytecode de nuevo.

Tambien podemos verlo de esta forma:

  1. Los lenguajes compilados convierten el código a binario que es el que lee la computadora.
  2. Los interpretados requieren de un programa que lee las instrucciones en tiempo real y las ejecuta, por lo que el programa interpreta el código escrito y lo traduce en lenguaje de máquina en tiempo real. Esto también explicaría porque en los notebook escritos en collab o jupyter podemos ejecutar nuestro código de python por partes.

seria genial si facundo renueva el curso de git y github

Aquí dejo los apuntes de la clase:
👨‍💻 Compilado: Un código en un lenguaje compilado transforma, mediante el compilador, las instrucciones directamente a 1 y 0, que son los pulsos de energía. Ejemplo de esto tenemos en lenguaje C++.
🐍Interpretado: Este tipo de lenguajes tiene una maquina virtual, el intérprete. Tenemos el caso de Python, quién crea el bytecode que lee la maquina virtual para traducirlo para que lo entienda la computadora.


Python tiene una sección llamada 🚮 Garbage Collector, que toma las variables y objetos que no son usados y los elimina.

pycache es una carpeta que se crea y funciona como un respaldo del bytecode 👍.

El único “pero” que le veo este curso es al “set” de grabación. Me parece que para un curso en Platzi es inadmisible tener de fondo una cortina y unas cajas. La explicación de Facundo sigue siendo impecable.

Python es un lenguaje de bajo nivel, interpretado por una Virtual Machine la cuál traduce nuestro código a código maquina.

Maquina virtual se encarga de pasar el Bytecode a codeMachine.

¿Interpretado es más lento? No es importante hasta un punto avanzado en cual necesites optimizar.

Garbage Collector: elimina aquellos objetos y variables que ya no son necesarios.

La carpeta** pycache** contiene el byte code. Recuperar código. hacer más rápido nuestro code.

⚠️ Python no es un lenguaje compilado, ya que no se traduce el código a lenguaje de máquina a partir del código fuente, Python es un lenguaje interpretado ✔.

En un intérprete, mientras corre el programa la computadora va traduciendo al lenguaje máquina. En un compilador, traducimos el programa (en el código del lenguaje de programación), antes de entregarselo a la computadora, a un lenguaje máquina.

🐍 Funcionamiento del intérprete de Python. Al hacerse la traducción del código fuente este no se pasa a código máquina directamente. Lo que sucede es que pasamos a un estado intermedio con instrucciones que son legibles, a esto se le denomina Bytecode. Bytecode es un lenguaje especial de bajo nivel (no tan de bajo nivel como el binario) que puede ser leido por un interprete (particularmente el interprete de Python). El Bytecode es leido por una máquina virtual, el intérprete de Python.

🗑️ El Garbage Collector de Python identifica las variables en desuso y las elimina.

📂 La carpeta pycache contiene el Bytecode.

¿Cómo funciona Python?

Tenemos una clasificación de los lenguajes de programación:

  • Compilado: En C++, por ejemplo, el código pasa directamente, mediante el compilador, a lenguaje binario. Se comunica directamente con la computadora a través de la compilación. 🤖
  • Interpretados: Python es interpretado, por lo que no se pasa a código maquina, si no que se pasa a un estado intermedio en bytecode, que es un lenguaje de más bajo nivel que puede ser leído por un interprete, por una máquina virtual, que puede funcionar en diferentes SO. 🧠

Algunas preguntas frecuentes:

  • Los lenguajes interpretados son normalmente más lentos. “C cuando se debe, Python cuando se puede”. 👀 Pero no es realmente importante en la mayoría de las aplicaciones.
  • El garbage collector es una sección especial de Python, el cual se encarga de tomar los objetos y variables que no están en uso y las elimina. 🧻
  • La carpeta __pycache__ contiene el bytecode que es leído por la maquina virtual, y funciona como una especie de recuperación.

Minuto 5:00, tras la cortina, mano izquierda de Facundo, está un gato :3

Agunos easter eggs de Python, ¿conoces algún otro?

  1. El Zen de Python
import this 

Mis dos favoritas son:

Explicit is better than implicit.
Simple is better than complex.

  1. Lección de vida 😃
>>> import this
...
>>> love = this
>>> this is love
True
>>> love is True
False
>>> love is False
False
>>> love is not True or False
True
>>> love is not True or False; love is love  # don't you think??
True
  1. Web-comics 😄
import antigravity

¿Podrías dar algunos ejemplos de cuando se necesita esa decisión por velocidad de lenguaje C vs Python? 😃

¿Cómo funciona Python?

  • Compilado; ejemplo C++
void main() {
  cout<<"Hola mundo";
}

Esto se transforma en binario.

  • Interpretado; ejemplo Python
def my_func():
  print("Hola mundo")

Esto es leido por un intérprete y luego por una máquina virtual. Esta puede ser ejecutada en diferentes sistemas operativos.

¿Los lenguajes interpretados son más lentos? Todos dicen que sí, pero no es importante hasta que intentes codificar un programa para Dios.

Python tiene algo llamado “Garbage Collector” que elimina las variables que no se usan.

¿Qué es la carpeta pycache? Es el bytecode de Python.

En general, un lenguaje compilado está optimizado para el momento de la ejecución, aunque esto signifique una carga adicional para el programador. Por otro lado, un lenguaje interpretado está optimizado para hacerle la vida más fácil al programador, aunque eso signifique una carga adicional para la máquina.

Python es interpretado

Siempre eliminaba la carpeta de _pycache me producía ansiedad. Bueno saberlo.

Mi aporte gente, lo hago en ingles para ir practicando.
Si ven algo mal escrito disculpen.

¿how is work python?

  • Interpreted language:
    It is an interpreted language, there is virtual machine who communicate python code with the operating system. to make more simple python gives a “bity code” to the virtual machine which speaks with the system code.

  • Garbage collector:
    This is the part that take objects and variables unusefull and delete these.

  • pychache folder:
    This is the folder when de ‘byte code’ is stored. The first once that python code is created, byte code also is created in pychache, but next times python use again the same byte code.

De forma general, la diferencia entre los lenguajes compilados e interpretados es que los primeros usan un compilador para poder traducirlo y ejecutar el programa, mientras que los segundos requieren de un intérprete que traduzca el código al momento de la ejecución.

¿Cómo funciona python

Una manera de clasificar a los lenguajes es.

  • Compilado vs interpretado

El lenguaje compilado se transforma mediante el compilador(herramienta del lenguaje) en lenguaje binario, por eso es compilación.

Python es un lenguaje interpretado. al hacer la conversión no se hace a código binario, sino a bytecode. Es un lenguaje leído por un interprete. La característica especial es que puede ser leído por una máquina virtual.

Los lenguajes compilados se comunican con la computadora por medio de la compilación.
Las máquinas virtuales puede ser ejecutada en diferentes sistemas operativos.

compilado interpretado
Traducen a código máquina, creando un archivo traducido para una ejecución rápida Las instrucciones se traducen una a una, cada vez que se ejecute el programa
Requiere que las instrucciones sean traducidas, esto lo hace ás eficiente son típicamente unas 10 veces más lentos que los programas compilados
el procesador sólo entiende un lenguaje que se denomina “lenguaje máquina” Facilidad para lograr independencia de plataformas y menor tamaño de programa

¿Los lenguajes interpretados son más lentos?

Sí, C cuando se debe y python cuando se puede.

no se es importante por otro por su velocidad al ser compilado o interpretado.

¿Qué es el “Garbage Collector”?

En python tenemos una sección especial del lenguaje de programación. Una de las partes del motor de python es el recolector de basura.

Toma los objetos y las variables que no están en uso y los elimina de la memoria.

¿Qué es la carpeta pycache?

Dentro de esta carpeta esta el bytecode. El cuál se usa para que sea leído por la máquina virtual.

Funciona como una especie derecuperación del código con el que has trabajado.

Nos sirve para ahorrarnos tiempo y hacer más veloz nuestro desarrollo.

Como Funciona Python

Lenguaje Interpretado

Python es un lenguaje interpretado, tiene una Virtual Machine que comunica el código Python con el Sistema Operativo para hacer esto mas simple Python le da un Byte Code a la Virtual Machine que habla el sistema del código

Garbage Collector

Es la parte que toma objetos y variables que sean inútiles y los elimina. Aquellas variables que ya no estén en uso

Pycache Folder

Esta es la carpeta en la que se guarda el Byte Code. Asi si no modifico el programa la proxima vez que lo ejecute, utilizara el mismo Byte Code para correr mas rápido y no tener que interpretar el programa de nuevo

Interesante dato que no conocía, antes me habían dicho que Python funciona distinto a JS y que JS era un lenguaje interpretado. Por eso pensaba que Python era compilado.
Empezamos bien el curso, corrigiendo conceptos y aprendiendo nuevos 😉

GARBAGE COLLECTOR DE PYTHON:

esperemos que sea mas sensato XD

![](

  • Python es un lenguaje interpretado
  • En la carpeta __pycache__ se guarda el bytecode generado por python.
  • Python, cuenta con un garbage collector que le permite liberar recursos de memoria, cuando no están en uso.

Justo hace unos días vi una discusión en Twitter donde decían que Python era bastante lento vs otros lenguajes de programación pero no entendí bien por qué, ahora con esta clase me queda más claro por donde va la cosa. Que lindo aprender algo nuevo cada día 😃 gracias profe.

A Python se le suele llamar un lenguaje interpretado, sin embargo, combina la compilación y la interpretación. Cuando ejecutamos un código fuente (un archivo con extensión .py), Python lo compila primero en un bytecode. El bytecode es una representación de bajo nivel e independiente de la plataforma de su código fuente, sin embargo, no es el código binario de la máquina y no puede ser ejecutado por la máquina de destino directamente. De hecho, es un conjunto de instrucciones para una máquina virtual que se llama Máquina Virtual Python (PVM).

ja! el gato en la ventana y tras la cortina

dios platzi por que haces las cosas asi si uno paga por esto es por que uno espera que todo este completo cuanto tiempo esperamos esta tercera parte me decepcionan cada dia mas

El bytecode se convierte en lenguaje binario al ser procesado por la máquina virtual, así lo podrá entender la computadora.

Preguntas de examen:

La carpeta pycache se crea con el bytecode (código intermedio) que nos ayuda para recuperar el código que ya hemos trabajado para no volver a ser convertido para su interpretación.

El Garbage Collector es la sección que toma los objetos y las variables que no están en uso y las elimina.

Lenguajes Compilados
Los que se escriben en código y se compilan a “0” y “1” para que la computadora pueda comprenderlo.

Lenguajes Interpretados
La conversión se hace del lenguaje de programación al bytecode, que es un lenguaje especial que puede ser leido por un intérprete (una máquina virtual de Python , por ejemplo). Esta máquina puede ser ejecutada en diferentes sistemas operativos y esa es una de sus ventajas.

¿Cómo funciona?

Compilado
Convierte el código a binarios que lee el S.O.

Interpretado

convierte a byte code y el interprete de maquina virtual lo ejecuta.

C cuando se debe y Python cuando se puede

En el momento de principio de la carrero no se debe preocupar si se elige un lenguaje compilado o interpretado, ya que los requrimentos de hoy en dia, yo soficientes hasta que no se profundize en alguna area.

__pychache__: es un directorio que contiene archivos de caché de bytecode que son generados automáticamente por python, es decir, python compilado, o . pyc , archivos - recuperación del codigo que hemos trabajado.

Profesor Facundo, de verdad tienes un don, te entiendo muy bien, espero que haya más cursos

Yo solía eliminar el pycache 😄

Excelente explicación, muy clara.

Muy bueno, solo una observación, al inicio dices que con “void” se crean funciones en C++ cuando en realidad es el tipo que retorna la función.

Mi aporte de la clase.

Curso profesional:
Tema 1 del modulo 1:
Como funciona python.
Existen dos maneras de ver los lenguajes de programacion.
Interpretes y compilado.
Entonces, estas dos categorias nos ayuda a identificar el modo de funcionamiento de cada lenguaje:
en este tema usamos el ejemplo de C++
Entonces, Python vs C++, por ejemplo.
C++ es un lenguaje compilado, por que las lineas de codigos son interpretadas directamente por un motor de interpretacion integrado del lenguaje, algo que hace que C++ transforme la informacion en codigo maquina.
C++, codigo, intepretado en el mismo lenguaje a lenguaje maquina, la maquina recibe esa informacion ya interpretada y lo imprime.
Es como si yo que hablo ingles y hablo con un nativo.
Por otro lado Python es interpretado por que:
Cuando se escribe la linea de codigo, esta va directo a otro lenguaje integrado en el lenguaje de python. Este lenguaje se llama Bytecode, que es un lenguaje mas bajo que python que puede ser leido por un interprete virtual, este interprete virtual que transforma mi codigo a lenguaje maquina.
Python es como si necesitase 2 interpretadores para enviar el mensaje.
Una persona que habla con señas, otro interpreta las señas y habla en ingles, este que habla ingles lo interpreta a español y yo que hablo español ejecuto.
Señas,ingles,español, ejecuto
Python > bytecode > maquina virtual > lenguaje maquina.
Garbage Collector: Es una funcion de python que elimina variables,objetos que ya no se utilizan en nuestro codigo, Python automaticamente las elimina.
Son variables sin sentido y objetos, y que python es su motor integrado ejecuta este comportamiento, para aliviar el codigo.
pycache: Es una carpeta que almacena mis datos en lenguaje bytecode, osea que no se elimina, al no hacer ninguna modificacion en mi codigo, todo fluye naturalmente sin que hayan quiebres o interrupciones.
Es como word que guarda la informacion en su historial

Python

Sienot yo, digo yo, mi humilde opinión. debería ser esta clase en Python básico

Esta es la diferencia de dos lenguajes de programación, C++ que es compilado y Python que es interpretado.

En el caso de C++, al ser un lenguaje compilado, este código va a traducir su respuesta a assembly que es un lenguaje que va a entender mucho mejor la maquina y que maneja los recursos según el sistema operativo, en este caso Linux.

#include <stdio.h>

int main(void)
{
    printf("Hello, world!\n");
    return 0;
}
File Type: COFF OBJECT

main:
  0000000000000000: 48 83 EC 28        sub         rsp,28h
  0000000000000016: C3                 ret

__local_stdio_printf_options:
  0000000000000000: 48 8D 05 00 00 00  lea         rax,[[email protected]?1[email protected]@9@9]
                    00
  0000000000000007: C3                 ret

_vfprintf_l:
  0000000000000000: 4C 89 4C 24 20     mov         qword ptr [rsp+20h],r9
  0000000000000014: 48 83 EC 38        sub         rsp,38h
  0000000000000018: E8 00 00 00 00     call        __local_stdio_printf_options
  0000000000000039: E8 00 00 00 00     call        __stdio_common_vfprintf
  000000000000003E: 48 83 C4 38        add         rsp,38h
  0000000000000042: C3                 ret

printf:
  0000000000000000: 48 89 4C 24 08     mov         qword ptr [rsp+8],rcx
  0000000000000027: E8 00 00 00 00     call        __acrt_iob_func
  000000000000002C: 4C 8B 4C 24 28     mov         r9,qword ptr [rsp+28h]
  000000000000003C: E8 00 00 00 00     call        _vfprintf_l
  0000000000000041: 89 44 24 20        mov         dword ptr [rsp+20h],eax
  000000000000004E: 8B 44 24 20        mov         eax,dword ptr [rsp+20h]
  0000000000000056: C3                 ret

Para el caso de Python, el bytecode tiene la siguiente apariencia.

def hello()
    print("Hello, World!")
2           0 LOAD_GLOBAL              0 (print)
            2 LOAD_CONST               1 ('Hello, World!')
            4 CALL_FUNCTION            1

Como funciona Python?

Clasificacion de los lenguajes

  • Lenguajes compilados
    Sucede que el lenguaje se transforma a lenguaje maquina 0s y 1s, que son introducciones, esto se llama compilacion

  • Lenguajes interpretados
    Pasamos a otro lenguaje de mas bajo nivel pero no codigo maquina, el interprete de python, el cual es leido en una maquina virtual, lo que lo hace multiplataforma, Linux, Windows, macOS

Velocidad

Por eso se suele decir que C es mas rapido que Python, C cuando se debe y Python cuando se puede pero con el nivel de hardware actual, esto no es importante hasta cierto nivel.

Recolector de basura

Toma los objetos y variables que no estan en uso y las elimina.

Carpeta pycache

Esto funciona como recuperacion del codigo.

En cuanto a la velocidad de ejecución de un programa de Python, es inferior a otros lenguajes no solamente porque sea interpretado, sino porque también es débilmente tipado. Es decir, no se puede ahorrar el tiempo de saber que tipo de dato almacena una variable, por lo que tiene que calcularse en tiempo de ejecución.

michi infaltable 😃

la maquina virtual de python hace que este sea un gran lenguaje interpretado por poderse utilizar en diferentes plataformas

bytecode: lenguaje de bajo nivel (sin llegar a ser código máquina) que puede ser interpretado por python

Gracias por decir que es la carpeta pycache, solía eliminarla de mis proyectos de python y ahora entiendo que no es necesario.

Me pregunto que pasaria si python no fuera interpretado sino compilado, pero creo que el hecho que sea interpretado es precisamente esa la clave de su exito y uso extendido en la comunidad desarrolladora

LENGUAJE COMPILADO
Convierte el código a binario que lee el SO mediante el compilador del lenguaje; se comunica directamente con el PC.
Ejm: C++

LENGUAJE INTERPRETADO
Necesita de un intérprete (Máquina Virtual=MV ) para poder comunicarse con el PC, este lee las instrucciones del código en tiempo real y la ejecuta.
Ejm: Python

GARBAGE COLLECTOR
Recolector de basura -> Recoge los objetos y variables que no están en uso y las elimina.

CARPETA PYCACHE
Lo que está dentro de esta carpeta es el bytecode que es el código intermedio que crea Python para que pueda ser leído por una MV

La verdad, no me había dado cuenta de la carpeta pycache 😅

El michi!!!

Python que aunque se considera mas lento con la parte el colector y el cache aumenta su velocidad

Facu el gato esta tramando un plan en tu contra detrás de la cortina.

Python es un lenguaje Interpretado ==> Byte Code, leído por un intérprete (Virtual Machine), que se aloja en el pycache.

A seguir aprendiendo…

La verdad nunca me tope con la carpeta pycache XD,