A tu propio ritmo

Explora nuestra extensa colección de cursos diseñados para ayudarte a dominar varios temas y habilidades. Ya seas un principiante o un aprendiz avanzado, aquí hay algo para todos.

Bootcamp

Aprende en vivo

Únete a nosotros en nuestros talleres gratuitos, webinars y otros eventos para aprender más sobre nuestros programas y comenzar tu camino para convertirte en desarrollador.

Próximos eventos en vivo

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.

Buscar en lecciones


IngresarEmpezar
← 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 back-end 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 back-end, 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, acceso a la consola, 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://es.wikipedia.org/wiki/Zen_de_Python

Nota: Ya no hay más punto y coma, corchetes, 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 back-end. 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 lenguaje oficial de Google. También es uno de los lenguajes más antiguos con comunidades enormes alrededor de cada una de sus librerías/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 librerías de Python son las mejores en lo que hacen: MatLab (para procesamiento de datos) , Pandas (big data), Web.py (servidor web), Django (web framework), PyBrain (AI), TensorFlow (Machine Learning), etc. ¡Podríamos estar aquí todo el día! Lo más sorprendente es que estas librerías solo 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: bucles, uso de condicionales, variables, clases, funciones y objetos.

Tipos de Datos

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

En JavaScriptEn Python
NumberPython tiene el mismo tipo de datos "Number" pero puede aceptar más opciones que JS, como fracciones (float) o números complejos.
myNumber = 23.23 # Float
myNumber = 54 # Entero
myNumber = 12.00 # Float (incluso con 00 como decimales)
Undefined/Null ahora es: NoneEl tipo de dato undefined no está disponible en Python. Aquí undefined y null son el mismo tipo de datos: None
myNumber # es 'None' porque no está definido
ArrayEn Python, los array se denominan "List" y son similares a los array de JS, pero son mucho más flexibles y fáciles de utilizar.
myArray = ['Juan','John','Steven'] # Lista con índices numéricos
ObjectEn JavaScript, los objetos y los diccionarios son casi lo mismo. Puedes hacer lo que quieras con un objeto porque no tienes que declarar primero su Clase y atenerse a su definición.
let 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 = color
myCar = Car('blue')
Sets y TuplesJavaScript no tiene nada similar, pueden ser muy útiles: las tuplas se ordenan; los conjuntos (Sets) 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 export 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.

Con Python

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

Gestores de Paquetes

Lo que es NPM para JavaScript equivale a PIP 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.

Con JavaScript

1let result = '5' - '2'; 2// Ahora "result" es igual a 3

Con Python

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

Imprimir Valores

Python tiene print() para escribir 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.

Con JavaScript

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

Con Python

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

Función Lambda vs Función 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.

Con JavaScript

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

Con Python

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

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

Bucles en listas (similar a arrays)

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(let i = 0; i < myArray.length; i++){ 8 console.log(myArray[i]); 9}

Con Python

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

Adición y Eliminación de Elementos

Con JavaScript

1let myArray = ['Academy', 'Coding']; 2myArray.push('4Geeks'); // Añadiendo un item 3 4// Para eliminar el elemento en la posición 1 5myArray.splice(1, 1);

Con Python

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

Funciones para clasificar Listas

Con Python

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

📺 Llamemos a Socratica de nuevo para entender el sorting en Python: https://www.youtube.com/watch?v=QtwhlHP_tqc

La Declaración switch

Ahora no 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 alto rendimiento liviana y rápida. 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

Con JavaScript

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

Con Python

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

📺 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

PEP 8: constantes

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

1MI_CONSTANTE = 12

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

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.

1edad = 15 # Edad de María

PEP 8: indentación

Una indentación de 4 (cuatro) espacios en blanco indica que las instrucciones indentadas 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')