4Geeks logo
Sobre Nosotros

Catálogo de contenidos

Para los geeks autodidactas, este es nuestro extenso catálogo de contenido con todos los materiales y tutoriales que hemos desarrollado hasta el día de hoy.

Tiene sentido comenzar a aprender leyendo y viendo videos sobre los fundamentos y cómo funcionan las cosas.

Data Science and Machine Learning - 16 wks

Full-Stack Software Developer - 16w

Buscar en lecciones

Aprendizaje social y en vivo

La forma más eficiente de aprender: Únete a una cohorte con compañeros, transmisiones en vivo, sesiones improvisadas de codificación, tutorías en vivo con expertos reales y mantenga la motivación.

← Regresar a lecciones
Editar en Github

Entendiendo la Sintaxis de Python vs Javascript

¿Por qué Python?
Sintaxis de Javascript vs Python
  • Tipos de Datos

El título de esta lección debería ser "De Python a JS", porque así es como evolucionó la historia. Python nació primero y es mucho más maduro. Con Python, eres capaz de hacer muchas más cosas porque es un lenguaje de backend y tiene librerías y herramientas para cualquier cosa que puedas imaginar.

Python y Javascript son amigos. Juntos forman el mejor equipo posible para realizar cualquier desarrollo importante que puedas imaginar.



¿Por qué Python?

Con Javascript, estabas vinculado y limitado al navegador, no puedes acceder al computador del cliente y es básicamente un lenguaje de renderización. Pero Python es diferente, al ser un lenguaje de backend, se ejecuta en tu propio servidor, lo que significa que tiene acceso y puedes controlar toda la computadora con él. Tienes acceso a cualquier aplicación que se ejecute en la misma computadora. Tienes acceso a la consola. Tiene acceso a la red a la que está conectada la computadora y mucho más.

Por otro lado, Python es el lenguaje de back-end de más rápido crecimiento en el mundo. Es el lenguaje más versátil y fácil de codificar con una de las comunidades más sólidas.

Cuando lo comparas con otros lenguajes de back-end, Python lidera en casi todas las funciones que ofrece: Data Science, AI, desarrollos de API, desarrollos web, etc.

Estas son algunas de las razones por las cuales Python ha llegado hasta este punto:

SimplicidadRendimiento
Python estaba destinado a ser simple y fácil. Aquí está el manifiesto de Python:
https://en.wikipedia.org/wiki/Zen_of_Python

Nota: Ya no hay más punto y coma o corchetes, o declarar variables, o la confusa funcionalidad del "this".
Python es más rápido que Java, PHP, Ruby y el 90% de los otros lenguajes backend. Solo los lenguajes de bajo nivel como C ++ (difícil de usar) o muy especializados como Node.js pueden superarlo.

La escalabilidad de Python se ha demostrado una y otra vez con aplicaciones como el motor de búsqueda de Google, Youtube, Google Apps, etc.
ComunidadHerramientas
Python es el idioma oficial de Google. También es uno de los idiomas más antiguos con comunidades enormes alrededor de cada una de sus librerias\herramientas. MIT lo usa para enseñar código. La NASA para construir cohetes. Quora, Facebook, Yahoo, Amazon, etc. ¡Casi todas las grandes empresas del mundo tienen que usarlo!La mayoría de las librerias de Python son las mejores en lo que hacen: [MathLab] (https://www.mathworks.com/help/matlab/matlab-engine-for-python.html?requestedDomain=true) (para procesamiento de datos) , [Pandas] (https://pandas.pydata.org/) (big data), [Web.py] (http://webpy.org/) (servidor web), [Django] (https: // www .djangoproject.com /) (web framework), [PyBrain] (http://pybrain.org/) (AI), [TensorFlow] (https://www.tensorflow.org/) (Machine Learning), etc. ¡Podríamos estar aquí todo el día! Lo más sorprendente es que estas librerías sólo están a una "pip install" (como cuando usamos NPM con JS).


Sintaxis de Javascript vs Python

Python y Javascript se complementan entre sí, pero en cuanto a funcionalidad, no tienen NADA en común, no tienen el mismo propósito, no hacen las mismas cosas, provienen de diferentes orígenes, etc.

Lo único que recordarás de Javascript es lo básico de cualquier lenguaje de programación: bucle, uso de condicionales, variables, clases, funciones y objetos.



Tipos de Datos

Solo hay unas pocas diferencias; aquí está la explicación:

En JavascriptEn Python
NúmeroPython tiene el mismo tipo de datos "Número" pero puede aceptar más opciones que JS, como fracciones (2/3) o números complejos.
myNumber = 23.23; //decimal
myNumber = 54; //entero
myNumber = 12.00; //decimal (incluso con 00 como decimales).
Undefined/Null ahora es: NoneEl tipo de datos undefined no está disponible en Python. Aquí "undefined" y "null" son el mismo tipo de datos: None.
myNumber; // None no está definido
ArrayEn Python, los array se denominan "List o listas" y son similares a los array de JS, pero son mucho más flexibles y fáciles de utilizar..
myArray = ['Juan','John','Steven']; //array de índices numéricos
ObjetoEn Javascript, los objetos y los diccionarios son casi lo mismo. Puede hacer lo que quiera con un objeto porque no tienes que declarar primero su Clase y atenerse a su definición.
var myCar = {}
myCar.color = 'blue';

Python, por otro lado, separa el tipo de datos Diccionario del tipo de datos Objeto. Los objetos no pueden ser declarados informalmente. Primero debes definir su clase antes de poder crear una instancia de ellos.

class Car(object):
def __init__(self, color):
self.color = i
myCar = Car('blue')
Conjunto y TuplaJavascript no tiene nada similar, pueden ser muy útiles: las tuplas se ordenan; los conjuntos son secuencias inmutables de valores.
StringEs lo mismo en Python.


Paquetes (Importando desde otros archivos)

En Javascript, puedes importar variables de otros archivos con el comando import o require, pero tienes que exportar los archivos de las variables primero.

En Python, puedes hacer de cualquier carpeta un paquete creando un archivo _init_.py dentro de ella. Luego, puedes importar lo que quieras en esa carpeta sin tener que exportar explícitamente nada.



python syntax Con Python

1from package1 import module1 2 3from package1.module2 import function1 4


Gestores de Paquetes

Lo que es NPM es para Javascript, PIP es para Python. Ambas bestias son increíbles pero muy diferentes por dentro. La mayor diferencia es que los paquetes NPM se descargan localmente a una carpeta "node_modules" mientras que los paquetes PIP se instalan en toda la máquina, fuera de la carpeta del proyecto. Otra pequeña diferencia es que NPM usa package.json y PIP usa un archivo requirements.txt.



Analizando tipos de datos

Javascript es tan flexible que no tienes que prestar mucha atención a los tipos de datos. A Python no le gusta eso... en Python, te acostumbrarás a declarar variables y convertirlas entre tipos de datos.

python syntax Con JavaScript

1var result = '5' - '2'; 2//el resultado ahora es igual a 3

python syntax Con Python

1# En Python sustraer strings producirá un error, en lugar de eso debes hacer esto: 2 3result = int('5') - int('2') # el resultado ahora es igual a 3 4


Valores de Impresión

Python tiene "print" para escribir en un documento o en la consola. Recuerda que, dado que Python, como cualquier otro lenguaje de back-end, se ejecuta antes del evento de preload, no tiene acceso a la consola de Javascript.



python syntax Con JavaScript

1var simpleValue = ‘hello’; 2console.log(simpleValue); 3//Esto imprimirá el contenido de la variable. 4var arrayValue = [‘Hello’,23, 76, ‘World’,43]; 5console.log(arrayValue); 6//Esto imprimirá el contenido del array y sus elementos.

python syntax Con Python

1simple_value = ‘Hello’ 2print(simple_value) # Esto imprimirá el contenido. 3list_value = [‘Hello’, 23, 76, ’World’, 43] 4print(list_value) # Esto funcionará, imprimiendo el contenido de la lista en un formato como este: [‘Hello’, 23, 76, ’World’, 43] 5




Función Lambda vs Función de flecha

Finalmente, en ES2015, Javascript incluye las "funciones flecha". Esa es una manera muy fácil y liviana de declarar y usar funciones. Python, por otro lado, tiene algo similar llamado funciones "lambda" que básicamente te permiten usar pequeñas funciones anónimas en línea como accesos directos.



python syntax Con JavaScript

1 2# Usando una función flecha (arrow function) para mapear una lista 3 4var peopleArray = [{ name: "Mario Peres" },{ name: "Emilio Peres" },{ name: "Yusaiba Peres" }]; 5var returningMapObject = peopleArray.map(person => person.name); 6console.log(returningMapObject); 7


python syntax Con Python

1 2# Usando lambda para mapear una lista 3 4people_list = [{"name": "Mario Peres"}, {"name": "Emilio Peres"}, {"name": "Yusaiba Peres"}] 5returning_map_object = map(lambda obj: obj['name'], people_array) 6names_list = list(returning_map_object) 7print(names_list) 8 9# ahora names_list es una lista de nombres como ["Mario Peres", "Emilio Peres", "Yusaiba Peres"] 10

📺 Aquí hay un video extraño pero sorprendente que explica las funciones lambda: https://www.youtube.com/watch?v=25ovCm9jKfA



Lista de bucles (similar a arrays)

python syntax Con JavaScript

1//haciendo un bucle foreach en js 2myArray.forEach(function(item,index,array) { 3 console.log(item); 4}); 5 6//haciendo un bucle for en js 7for(var i = 0; i < myArray.length; i++){ 8 console.log(myArray[i]); 9}


python syntax Con Python

1colors = ["red", "green", "blue", "purple"] 2for color in colors: 3 print(color) 4


Adición y Eliminación de Elementos



python syntax Con JavaScript

1var myArray = [‘Academy’, ‘Coding’]; 2myArray.push(‘4Geeks’); //Añadiendo un item 3//para eliminar el elemento en la posición INDEX 4myArray.splice(index, 1);

python syntax Con Python

1my_list = ['The', 'earth', 'revolves', 'around', 'sun'] 2my_list.insert(0,"Yes") 3print(my_list) # Salida: ['Yes', 'The', 'earth', 'revolves', 'around', 'sun'] 4 5my_list.remove("Yes") 6print(my_list) # Salida: ['The', 'earth', 'revolves', 'around', 'sun'] 7

Funciones para clasificar Listas

python syntax Con Python

1# Orden ascendente 2number_list = [5, 2, 3, 1, 4] 3number_list.sort() 4 5# Ordenar la lista de objetos usando un parámetro "key" 6my_list = [{"name": "Mario Peres"}, {"name": "Emilio Peres"}, {"name": "Yusaiba Peres"}] 7my_list.sort(key=lambda person: person['name']) 8

📺 Llamemos a Socratica de nuevo para entender la clasificación en Python: https://www.youtube.com/watch?v=QtwhlHP_tqc

La Declaración switch

Ahora hay una manera de hacer "switch"… pero ¿a quién le importa? 🙂

Listas vs Tuplas

Python trae un nuevo tipo de datos llamado "Tupla". Piensa en ello como una lista de rendimiento super delgado y rápido. Pero, como siempre, para aumentar el rendimiento necesitamos disminuir la funcionalidad.

📺 Este es un video obligatorio que explica la diferencia entre ellos: https://www.youtube.com/watch?v=NI26dqhs2Rk

Objetos

python syntax Con JavaScript

1//Hay dos maneras de declarar un objeto 2 3//Como un objeto literal 4var obj = { "name": "Mario", "lastname": "Perez" }; 5 6//Como una Clase 7class Person{ 8 constructor(){ 9 this.name = ""; 10 this.lastname = ""; 11 } 12} 13 14var obj = new Person(); 15obj.name = "Mario"; 16obj.lastname = "Perez";

python syntax Con Python

1# En Python tenemos Clases y Diccionarios. 2 3# Así es como tu declaras y usas un diccionario. 4my_dict = {} 5my_dict['name'] = "Mario" 6my_dict['lastname'] = "Perez" 7 8# Así es como declaras y usas una clase. 9class Person: 10 def __init__(self): 11 name = '' 12 lastname = '' 13 14my_person = Person() 15my_person.name = "Mario" 16my_person.lastname = "Perez" 17

📺 Socratica, nuestro gran espécimen y amigo evolucionado, explica Objetos de una manera excelente: https://www.youtube.com/watch?v=apACNr7DC_s



PEPs - Python Enhancement Proposals

Las PEPs son “propuestas de mejora de Python” desarrolladas, aprobadas y publicadas por la comunidad de Python y no son opcionales.

Hay algunas que debemos conocer desde el inicio de nuestro aprendizaje.

PEPs

PEP 8 - Style Guide for Python Code

Una en particular es la PEP8. La PEP8 es la "Guía de estilo de código para Python". Si bien es una guía, en la comunidad Python es muy, pero muy utilizada y si no la utilizas adecuadamente, quien lea tu código lo sabrá inmediatamente.

A continuación vamos a listar algunos ejemplos (no todos):

PEP 8: variables

Utilizar nombres descriptivos (siempre) y en minúsculas. Para nombres compuestos, separar las palabras con guiones bajos.

1mi_variable = 12 2 3

PEP 8: constantes

Utilizar nombres descriptivos y en mayúsculas separando palabras con guiones bajos.

1MI_CONSTANTE = 12 2

PEP 8: operadores

Siempre colocar un espacio en blanco, antes y después de un operador

1monto_bruto = 175 2tasa_interes = 12 3monto_interes = monto_bruto * tasa_interes / 100 4tasa_bonificacion = 5 5importe_bonificacion = monto_bruto * tasa_bonificacion / 100 6monto_neto = (monto_bruto - importe_bonificacion) + monto_interes 7

PEP 8: comentarios

Los comentarios en la misma línea del código deben separarse con dos espacios en blanco y luego del símbolo # debe ir un solo espacio en blanco.

1age = 15 # edad de María 2

PEP 8: indentación

Una indentación de 4 (cuatro) espacios en blanco indica que las instrucciones identadas forman parte de una misma estructura de control o bloque.

1numero = 50 2if numero < 100: 3 print('Hola') 4 print('Menor que 100') 5elif numero < 200: 6 print('Chao') 7 print('Mayor a 200') 8else: 9 print('Adiós') 10 print('mayor o igual a 100 y menor o igual que 200') 11