Sintaxis básica
Los fundamentos para empezar a programar
Fundamentos de Python: sintaxis y conceptos básicos
Una vez instalado Python, es el momento de familiarizarse con su sintaxis y sus conceptos fundamentales. Este tutorial te guiará por los fundamentos esenciales de Python: variables, tipos de datos, operadores y estructuras de control de flujo.
Python es conocido por su sintaxis clara y legible, que hace hincapié en la simplicidad y la coherencia. Es una de las razones por las que es un excelente primer lenguaje de programación.
La sintaxis de Python
Lo primero que hay que entender de Python es su sintaxis particular.
La indentación y los bloques de código
A diferencia de muchos lenguajes que utilizan llaves {} para delimitar los bloques de código, Python utiliza la indentación (generalmente 4 espacios):
# Ejemplo de indentación en Python
if condition:
# Este bloque está indentado con 4 espacios
instruction1
instruction2
if autre_condition:
# Bloque anidado - 8 espacios
instruction3
# Vuelta al nivel principal - sin indentación
instruction_suivante
Este enfoque hace que el código sea naturalmente más legible, pero implica que en Python los espacios son importantes.
Comentarios
Los comentarios permiten añadir notas explicativas en el código:
# Esto es un comentario de una línea
"""
Esto es un comentario
de varias líneas (docstring)
"""
Variables y tipos de datos
En Python no es necesario declarar el tipo de una variable antes de usarla. El tipo se determina automáticamente en el momento de la asignación.
Asignación de variables
# Asignación simple
nom = "Alice"
age = 30
# Asignaciones múltiples
x, y, z = 1, 2, 3
# Asignación del mismo valor a varias variables
a = b = c = 0
Convenciones de nomenclatura
- Los nombres de variables distinguen entre mayúsculas y minúsculas (
nomyNomson diferentes) - Deben empezar por una letra o un guion bajo (underscore)
- Pueden contener letras, números y guiones bajos
- Por convención, en Python se utiliza
snake_casepara las variables
# Buena nomenclatura
user_name = "Alice"
age_utilisateur = 30
_variable_privee = "secret"
# Mala nomenclatura (a evitar)
UserName = "Alice" # Estilo CamelCase (reservado a las clases)
1variable = 10 # Empieza por un número (error de sintaxis)
nom-utilisateur = "Bob" # Contiene un guion (error de sintaxis)
Tipos de datos básicos
Python incluye varios tipos de datos integrados:
1. Números
# Enteros (int)
age = 30
code_postal = 75000
# Números de coma flotante (float)
prix = 19.99
pi = 3.14159
# Números complejos
complexe = 3 + 4j
2. Cadenas de caracteres (str)
# Cadenas simples
prenom = "Marie"
nom = 'Dupont'
# Cadenas multilínea
description = """Ceci est une chaîne
qui s'étend sur plusieurs
lignes."""
# Formateo de cadenas (f-strings - Python 3.6+)
message = f"Bonjour {prenom} {nom}, vous avez {age} ans."
# Métodos de cadenas útiles
print(prenom.upper()) # MARIE
print(nom.lower()) # dupont
print(" texte ".strip()) # "texte"
print(",".join(["a", "b"])) # "a,b"
print("abc,def".split(",")) # ["abc", "def"]
3. Booleanos (bool)
# Valores booleanos
est_majeur = True
est_inscrit = False
# Expresiones condicionales que devuelven booleanos
a = 5
b = 10
print(a < b) # True
print(a == b) # False
print(a >= 5) # True
4. Valor None
None es el equivalente de null en otros lenguajes y representa la ausencia de valor:
resultat = None
# Comprobar si una variable es None
if resultat is None:
print("Aucun résultat disponible")
Comprobación de tipos
Para conocer el tipo de una variable, utiliza la función type():
x = 10
print(type(x)) # <class 'int'>
y = "bonjour"
print(type(y)) # <class 'str'>
Conversión de tipos (casting)
# Conversión a entero
age_str = "30"
age = int(age_str) # 30 (entero)
# Conversión a cadena
nombre = 42
nombre_str = str(nombre) # "42" (cadena)
# Conversión a flotante
prix = float("19.99") # 19.99 (flotante)
# Conversión a booleano
valeur = bool(0) # False (0, "", [], {}, None se evalúan como False)
Operadores
Operadores aritméticos
a = 10
b = 3
addition = a + b # 13
soustraction = a - b # 7
multiplication = a * b # 30
division = a / b # 3.3333... (siempre devuelve un float)
division_entiere = a // b # 3 (división entera)
modulo = a % b # 1 (resto de la división)
puissance = a ** b # 1000 (a elevado a la potencia b)
Operadores de comparación
a = 10
b = 5
egal = a == b # False
different = a != b # True
superieur = a > b # True
inferieur = a < b # False
superieur_ou_egal = a >= b # True
inferieur_ou_egal = a <= b # False
Operadores lógicos
x = True
y = False
et = x and y # False (ambos deben ser True)
ou = x or y # True (al menos uno debe ser True)
non = not x # False (invierte el valor)
Operadores de asignación
x = 10
x += 5 # x = x + 5 (x vale ahora 15)
x -= 3 # x = x - 3 (x vale ahora 12)
x *= 2 # x = x * 2 (x vale ahora 24)
x /= 4 # x = x / 4 (x vale ahora 6.0)
x //= 2 # x = x // 2 (x vale ahora 3.0)
x %= 2 # x = x % 2 (x vale ahora 1.0)
x **= 3 # x = x ** 3 (x vale ahora 1.0)
Operadores de pertenencia
liste = [1, 2, 3, 4, 5]
print(3 in liste) # True (3 está en la lista)
print(6 not in liste) # True (6 no está en la lista)
Operadores de identidad
a = [1, 2, 3]
b = [1, 2, 3]
c = a
print(a is c) # True (a y c hacen referencia al mismo objeto)
print(a is b) # False (a y b son objetos distintos)
print(a == b) # True (a y b tienen el mismo valor)
Estructuras de control
Las estructuras de control te permiten dirigir el flujo de ejecución de tu programa.
Estructuras condicionales (if, elif, else)
age = 18
if age < 18:
print("Mineur")
elif age == 18:
print("Tout juste majeur")
else:
print("Majeur")
Expresión condicional (operador ternario)
# estructura: valor_si_verdadero if condición else valor_si_falso
statut = "majeur" if age >= 18 else "mineur"
Bucles
Bucle for
El bucle for en Python es un bucle «para cada» que itera sobre una secuencia:
# Iteración sobre una lista
fruits = ["pomme", "banane", "cerise"]
for fruit in fruits:
print(fruit)
# Iteración sobre un rango de números
for i in range(5): # 0, 1, 2, 3, 4
print(i)
# range con inicio y fin
for i in range(2, 6): # 2, 3, 4, 5
print(i)
# range con paso
for i in range(0, 10, 2): # 0, 2, 4, 6, 8
print(i)
# Enumeración (índice y valor)
for index, fruit in enumerate(fruits):
print(f"Index {index}: {fruit}")
Bucle while
El bucle while continúa mientras la condición sea verdadera:
compteur = 0
while compteur < 5:
print(compteur)
compteur += 1
Control de los bucles
# break - sale del bucle
for i in range(10):
if i == 5:
break # Salir del bucle cuando i llega a 5
print(i) # Muestra 0, 1, 2, 3, 4
# continue - pasa a la siguiente iteración
for i in range(10):
if i % 2 == 0:
continue # Saltar los números pares
print(i) # Muestra 1, 3, 5, 7, 9
# else en los bucles - se ejecuta si el bucle termina con normalidad (sin break)
for i in range(5):
print(i)
else:
print("Boucle terminée sans break")
Entradas y salidas básicas
Visualización (salida estándar)
# Visualización simple
print("Bonjour, monde!")
# Visualización con variables
nom = "Alice"
print("Bonjour,", nom)
# Formateo con f-strings (Python 3.6+)
age = 30
print(f"{nom} a {age} ans.")
# Varios argumentos
print("Nom:", nom, "Age:", age)
# Control del separador y del final de línea
print("a", "b", "c", sep="-", end="!\n") # Muestra "a-b-c!"
Lectura de entradas del usuario
# Leer una entrada del usuario (siempre devuelve una cadena)
nom = input("Entrez votre nom: ")
print(f"Bonjour, {nom}!")
# Convertir la entrada en número
age_str = input("Entrez votre âge: ")
age = int(age_str) # Conversión a entero
Ejemplo completo
Este es un ejemplo que utiliza varios de los conceptos que hemos aprendido:
# Programa que calcula la media de una lista de números
def calculer_moyenne(nombres):
"""Calcule la moyenne d'une liste de nombres."""
if not nombres: # Si la lista está vacía
return 0
return sum(nombres) / len(nombres)
# Pedir el número de valores
try:
n = int(input("Combien de nombres voulez-vous entrer? "))
# Recopilar los números
nombres = []
for i in range(n):
valeur = float(input(f"Entrez le nombre {i+1}: "))
nombres.append(valeur)
# Calcular y mostrar la media
moyenne = calculer_moyenne(nombres)
print(f"La moyenne des nombres entrés est: {moyenne:.2f}")
# Mostrar si cada número es superior o inferior a la media
print("\nComparaison avec la moyenne:")
for i, nombre in enumerate(nombres):
if nombre > moyenne:
relation = "supérieur à"
elif nombre < moyenne:
relation = "inférieur à"
else:
relation = "égal à"
print(f"Nombre {i+1} ({nombre}) est {relation} la moyenne.")
except ValueError:
print("Erreur: Veuillez entrer un nombre valide.")
Este programa:
- Define una función para calcular la media
- Pregunta al usuario cuántos números desea introducir
- Recopila esos números
- Calcula y muestra su media
- Compara cada número con la media
Buenas prácticas y consejos
Para escribir código Python limpio y legible, sigue estas directrices:
-
Indentación coherente: utiliza siempre 4 espacios para la indentación (nada de tabuladores).
-
Nombres descriptivos: elige nombres que expliquen claramente para qué sirven tus variables.
-
Docstrings: documenta tus funciones con cadenas de documentación.
-
DRY (Don’t Repeat Yourself): evita la repetición utilizando funciones y bucles.
-
KISS (Keep It Simple, Stupid): prioriza la simplicidad y la claridad frente a la ocurrencia ingeniosa.
-
Una línea, una instrucción: evita poner varias instrucciones en una misma línea.
-
Gestión de errores: utiliza try/except para gestionar los posibles errores.
-
PEP 8: sigue las convenciones de estilo de Python (PEP 8) para mantener la coherencia.
Ejercicios prácticos
Para consolidar tus conocimientos, prueba estos ejercicios:
-
Escribe un programa que convierta una temperatura de Celsius a Fahrenheit (fórmula: F = C * 9/5 + 32).
-
Crea un programa que determine si un número introducido por el usuario es par o impar.
-
Escribe un programa que muestre la tabla de multiplicar de un número introducido por el usuario.
-
Crea un programa que haga una cuenta atrás de 10 a 1 y luego muestre «Décollage !».
-
Escribe un programa que pregunte la edad del usuario y muestre un mensaje diferente según el rango de edad.
Conclusión
En este tutorial hemos cubierto los fundamentos de Python:
- La sintaxis y la indentación
- Las variables y los tipos de datos
- Los operadores (aritméticos, de comparación, lógicos)
- Las estructuras de control (if/elif/else, for, while)
- Las entradas/salidas básicas
Estos conceptos constituyen la base sobre la que construirás tu comprensión de Python. A medida que avances, descubrirás cómo se combinan estos elementos para crear programas más complejos y potentes.
En el próximo tutorial exploraremos las estructuras de datos en Python: listas, tuplas, diccionarios y conjuntos, que te permitirán organizar y manipular tus datos de forma eficaz.
¿Necesitas repasar la instalación de Python? Consulta nuestra guía de instalación.
Comentarios
Los comentarios funcionan con GitHub Discussions
Inicia sesión con GitHub para participar en la discusión