Fundamentos de Python

PythonBeginner
Practicar Ahora

Introducción

¡Bienvenidos a los conceptos básicos de Python! Todos necesitamos empezar en algún lugar, y este laboratorio es el lugar perfecto para hacerlo. Python es un lenguaje de programación potente y fácil de aprender, conocido por su sintaxis elegante y tipado dinámico, lo que lo convierte en un lenguaje ideal para scripting y desarrollo rápido de aplicaciones.

En este laboratorio, aprenderá sobre algunos de los conceptos más fundamentales en Python. Cubriremos:

  • Operadores matemáticos y su orden de precedencia.
  • Operadores de asignación aumentada (Augmented assignment operators) para un código más conciso.
  • El Operador Morsa (:=) (Walrus Operator) para asignar variables dentro de expresiones.
  • Tipos de datos principales (core data types) de Python.
  • Operaciones básicas con cadenas (strings), como concatenación y replicación.

¡Empecemos!

Operadores Matemáticos

En este paso, aprenderás sobre los operadores matemáticos de Python y su precedencia. La precedencia de operadores determina el orden en que se realizan las operaciones en una expresión.

Aquí están los operadores matemáticos comunes, de mayor a menor precedencia:

Operadores Operación Ejemplo
** Exponenciación 2 ** 3 = 8
% Módulo/Resto 22 % 8 = 6
// División entera 22 // 8 = 2
/ División 22 / 8 = 2.75
* Multiplicación 3 * 3 = 9
- Resta 5 - 2 = 3
+ Suma 2 + 2 = 4

Nota: Si no estás familiarizado con el uso de WebIDE (similar a VS Code), por favor, apréndelo primero en este laboratorio.

Practiquemos su uso. Abre el archivo main.py desde el explorador de archivos de la izquierda. Borra cualquier contenido existente y añade el siguiente código. Usaremos la función print() para ver el resultado de cada expresión.

## La multiplicación tiene mayor precedencia que la suma
## Así que esto se evalúa como: 2 + (3 * 6) = 2 + 18 = 20
print(2 + 3 * 6)

## Los paréntesis anulan la precedencia de operadores
## Esto se evalúa como: 5 * 6 = 30
print((2 + 3) * 6)

## Exponenciación
print(2 ** 8)

## División entera
print(23 // 7)

## Módulo/Resto
print(23 % 7)

## Una expresión más compleja
print((5 - 1) * ((7 + 1) / (3 - 1)))

Ahora, ejecuta el script abriendo una terminal y ejecutando el siguiente comando:

python3 main.py

Deberías ver la siguiente salida, con cada resultado en una nueva línea:

20
30
256
3
2
16.0

Operadores de Asignación Aumentada

En este paso, explorará los operadores de asignación aumentada (augmented assignment operators). Estos proporcionan una forma concisa de realizar una operación en una variable y reasignarle el nuevo valor.

Aquí hay una tabla de estos operadores y sus equivalentes:

Operador Equivalente
var += 1 var = var + 1
var -= 1 var = var - 1
var *= 1 var = var * 1
var /= 1 var = var / 1
var //= 1 var = var // 1
var %= 1 var = var % 1
var **= 1 var = var ** 1

Practiquemos su uso. Borre el archivo main.py y añada el siguiente código para ver cómo funcionan con cadenas (strings), números y listas.

## Asignación aumentada con una cadena (string)
greeting = 'Hello'
greeting += ' world!'
print(greeting)

## Incrementar un número en 1
number = 1
number += 1
print(number)

## Replicar elementos de una lista
my_list = ['item']
my_list *= 3
print(my_list)

Ejecute el script desde la terminal:

python3 main.py

La salida mostrará los resultados de las asignaciones aumentadas:

Hello world!
2
['item', 'item', 'item']

Operador Walrus

En este paso, aprenderá sobre el Operador Morsa (:=), conocido oficialmente como el Operador de Expresión de Asignación (Assignment Expression Operator). Este operador, introducido en Python 3.8, le permite asignar un valor a una variable como parte de una expresión más grande.

Es útil para simplificar código donde necesita usar un valor justo después de calcularlo.

Veámoslo en acción. Borre el archivo main.py y añada el siguiente código:

## El operador morsa asigna "Hello World!" a my_var
## y devuelve el valor, que luego se imprime.
print(my_var := "Hello World!")

## La variable my_var ahora está disponible para su uso
print(my_var)

## También puede usarlo para reasignar una variable dentro de una expresión
print(my_var := "Hello")
print(my_var)

Ejecute el script:

python3 main.py

Verá la siguiente salida, que demuestra que la variable fue asignada y su valor fue devuelto en la misma expresión:

Hello World!
Hello World!
Hello
Hello

Tipos de Datos

En este paso, obtendremos una visión general de los nueve tipos de datos incorporados (built-in) principales de Python. Comprender los tipos de datos es crucial ya que definen el tipo de valores que una variable puede contener y las operaciones que se pueden realizar sobre ella.

Tipo de Dato Ejemplos Descripción
Números
int -2, 0, 5 Números enteros
float -1.25, 0.0, 1.0 Números con puntos decimales
complex 2+3j Números con partes real e imaginaria
Texto
str 'a', "Hello!" Texto y caracteres
Booleano
bool True, False Valores Verdadero o Falso
Ninguno
NoneType None Representa "ningún valor" o "nada"
Colecciones
list [1, 2, 3] Colecciones ordenadas y modificables
dict {'name': 'Alice', 'age': 30} Pares clave-valor
tuple (1, 2, 3) Colecciones ordenadas e inmutables
set {1, 2, 3} Colecciones desordenadas de elementos únicos

Para ver estos tipos de datos en la práctica, borre su archivo main.py y añada el siguiente código. Definiremos variables de diferentes tipos y luego imprimiremos su tipo usando la función incorporada type().

## Números
age = 25                    ## int
price = 19.99               ## float
coordinate = 2 + 3j         ## complex

## Texto
name = "Alice"              ## str

## Booleano
is_student = True           ## bool

## Ninguno
result = None               ## NoneType

## Colecciones
scores = [85, 92, 78]       ## list
person = {'name': 'Bob', 'age': 30}  ## dict
coordinates = (10, 20)      ## tuple
unique_ids = {1, 2, 3}      ## set

print(type(age))
print(type(price))
print(type(name))
print(type(is_student))
print(type(scores))
print(type(person))
print(type(coordinates))
print(type(unique_ids))

Ejecute el script para ver el tipo de cada variable:

python3 main.py

Su salida debería verse así:

<class 'int'>
<class 'float'>
<class 'str'>
<class 'bool'>
<class 'list'>
<class 'dict'>
<class 'tuple'>
<class 'set'>

Concatenación y Replicación

En este paso final, aprenderá dos operaciones fundamentales con cadenas de texto (strings): concatenación y replicación.

La concatenación de cadenas es el proceso de unir cadenas de texto. En Python, los literales de cadena adyacentes se concatenan automáticamente.

La replicación de cadenas utiliza el operador * para crear una nueva cadena repitiendo una existente varias veces.

Probemos estas operaciones. Borre el archivo main.py y añada el siguiente código:

## Concatenación de cadenas: los literales de cadena adyacentes se unen automáticamente.
## Usamos print() para mostrar el resultado.
concatenated_string = 'Alice' 'Bob'
print(concatenated_string)

## Replicación de cadenas: repita una cadena varias veces usando el operador *.
replicated_string = 'Alice' * 5
print(replicated_string)

Ahora, ejecute el script desde la terminal:

python3 main.py

Verá los resultados de las dos operaciones:

AliceBob
AliceAliceAliceAliceAlice

Esto demuestra la facilidad con la que puede manipular cadenas de texto en Python.

Resumen

¡Felicidades por completar este laboratorio! Ha dado sus primeros pasos en el mundo de la programación en Python.

En este laboratorio, aprendió sobre varios conceptos fundamentales:

  • Operadores Matemáticos: Practicó el uso de operadores como +, *, / y ** y comprendió su precedencia.
  • Operadores de Asignación Aumentada (Augmented Assignment Operators): Descubrió atajos como += y *= para escribir código más conciso.
  • Operador Walrus (Walrus Operator): Se le introdujo al operador := para asignar variables dentro de expresiones.
  • Tipos de Datos (Data Types): Obtuvo una visión general de los tipos de datos principales de Python, incluyendo números, cadenas de texto, booleanos y colecciones.
  • Concatenación y Replicación de Cadenas (String Concatenation and Replication): Aprendió a unir y repetir cadenas de texto.

Estos conceptos son los bloques de construcción para escribir programas en Python más complejos y potentes. ¡Siga practicando y explorando lo que Python tiene para ofrecer!