¿Cómo funciona Python?
Clase 2 de 21 • Curso Profesional de Python
Contenido del curso
Clase 2 de 21 • Curso Profesional de Python
Contenido del curso
Alonso Cangalaya
Antonio Velazquez
Jorge Andrés Robledo Ariza
Cristian Camilo Hernández Ramirez
Esmeralda Palacios
Ricardo José Vera Febres
Enzo Venturi
HERNAN DARIO VELASQUEZ ORTIZ
Mauricio Gonzalez Falcon
Neidys Betancourt
Giovanni Osorio
Omar D
Rodrigo Ramos Xochiteotzin
María Jimena Rodríguez Contreras
Mauricio Gonzalez Falcon
ALDO MATUS MARTINEZ
Carlos Damián Loaiza Artunduaga
Wilson Jerez
Esmeralda Palacios
Alfonso Morán
Sebastián Pineda Duque
Kenyi Julberht Hancco Quispe
Facundo Nicolás García Martoni
Jesús Velázquez Jiménez
Luis Fernandez
Luis Fernandez
Gabriel Missael Barco
Pedro Alvarado Garcia
Kevin Zavala
Esmeralda Palacios
Julian Castro Pulgarin
Pedro Alvarado Garcia
Juan Jacobo Arias Ramirez
Juan Carlos Ortiz Romero
Fernando Garcia de la Cruz
Gary Torres Martínez
Rodrigo Ramos Xochiteotzin
Giovanni Osorio
Miguel Angel Reyes Moreno
Miguel Angel Reyes Moreno
mi aporte
Excelente!
Que buena forma de explicación
Like por el gato 😂😂
minuto 5:00 por si alguién no lo notó xD jajaja como yo que tuve que volver a ver con detalle
¿Los marcadores son privados o públicos? 😅 Lástima que las marcas de tiempo no redirigan el instante que se apunta, sería muy útil; para esta y muchas otras cosas más.
jajaj, pediste permiso para usar esa infografia?
Amo que Platzi no menciona nada cuando publicamos infografías externas.
Prioridad el aprendizaje!
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.
Como se tiene acceso al recolector de basura y como puedo saber cuanta memoria ocupa mi código?
Puedes verificar los objetos recolectados por el garbage collector con el módulo gc:
# importa el módulo import gc # retorna el número de objetos colectados y liberados collected = gc.collect() # imprime los objetos en el garbage collector print("Objetos dentro de Garbage collector: ", collected)
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.
gracuas
Gracias!
Compliated vs interpreted :snake:
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:
seria genial si facundo renueva el curso de git y github
o que el mismo freddy lo renueve, su enseñanza también es dinámica , me cae bien
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.
Cierto, falta ese fondo verde, pero la explicación del profe hace que estos detalles pasen por alto
Estoy de acuerdo Sebastián. Les prometo una calidad audiovisual de Netflix en mis próximos cursos, justo en este unos días antes de grabar se robaron la clásica pantalla verde de mi casa, así que tuve que improvisar el fondo
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.
Muy buen aporte!!, gracias!!
Tienes razon, Python es un lenguaje de alto nivel, gracias por aclararlo
¿Cómo funciona Python?
Tenemos una clasificación de los lenguajes de programación:
Algunas preguntas frecuentes:
__pycache__ contiene el bytecode que es leído por la maquina virtual, y funciona como una especie de recuperación.⚠️ 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.
Minuto 5:00, tras la cortina, mano izquierda de Facundo, está un gato :3
owww no lo había notado, que genial!!!
El profe habla de que al principio de la carrera no deberíamos preocuparnos si el lenguaje es compilado o interpretado.
¿Qué cosas son las suficientemente avanzadas dentro de la carrera como programador para preocuparnos por la velocidad del código?
Una parte podrían ser los algoritmos, como los de búsqueda y ordenamiento. Dependiendo el algoritmo, cada uno tiene una complejidad algorítmica diferente lo que influye en el tiempo en que se tarda en completar la tarea.
Te recomiendo que después de este curso tomes los de pensamiento computacional que incluyen los siguientes:
Curso de Introducción al Pensamiento Computacional con Python Curso de POO y Algoritmos con Python Curso de Estadística Computacional con Python Curso de Introducción al Pensamiento Probabilístico
Particularmente en el curso de POO y Algoritmos con Python se ven algunos algoritmos de búsqueda y ordenamiento. Algunos compañeros compararon mismos algoritmos en diferentes lenguajes, por ejemplo en Python y C. C es un lenguaje muy veloz, por lo que terminaba las búsquedas y ordenamiento más rápido que Python.
La verdad no te sabría decir bien, ya que en los tiempos que vivimos con las potencias de procesamiento actual no se vería una gran diferencia, tendría que ser un caso puntual que aún no conozco.
Lo que si te puedo decir que más importante que el lenguaje es el código, entender bien el problema y saber encontrar la mejor solución, que sea entendible y lo más óptima posible
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
Agunos easter eggs de Python, ¿conoces algún otro?
import this
Mis dos favoritas son:
Explicit is better than implicit. Simple is better than complex.
>>> 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
import antigravity
¿Podrías dar algunos ejemplos de cuando se necesita esa decisión por velocidad de lenguaje C vs Python? :)
Yo encontré un ejemplo en una clase del curso de pensamiento computacional, específicamente en este comentario. Un estudiante hizo el mismo código, lo corrió con distintos lenguajes y midió el tiempo que tardaron en ejecutarse. . Este tipo de detalles se tomará en cuenta con cómputos muy pesados y para definir la forma más óptima para su performance.
No solo por velocidad de ejecución, también por memoria. Si se usa python se debe sumar el espacio que ocupa la maquina virtual. En lenguajes como C tienes mas control sobre el espacio que ocupa el código en memoria.
¿Cómo funciona Python?
void main() { cout<<"Hola mundo"; }
Esto se transforma en binario.
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.