0%
Fundamentos de Python: sintaxis y conceptos básicos

Sintaxis básica

Los fundamentos para empezar a programar

10-15 min

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 (nom y Nom son 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_case para 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:

  1. Define una función para calcular la media
  2. Pregunta al usuario cuántos números desea introducir
  3. Recopila esos números
  4. Calcula y muestra su media
  5. Compara cada número con la media

Buenas prácticas y consejos

Para escribir código Python limpio y legible, sigue estas directrices:

  1. Indentación coherente: utiliza siempre 4 espacios para la indentación (nada de tabuladores).

  2. Nombres descriptivos: elige nombres que expliquen claramente para qué sirven tus variables.

  3. Docstrings: documenta tus funciones con cadenas de documentación.

  4. DRY (Don’t Repeat Yourself): evita la repetición utilizando funciones y bucles.

  5. KISS (Keep It Simple, Stupid): prioriza la simplicidad y la claridad frente a la ocurrencia ingeniosa.

  6. Una línea, una instrucción: evita poner varias instrucciones en una misma línea.

  7. Gestión de errores: utiliza try/except para gestionar los posibles errores.

  8. 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:

  1. Escribe un programa que convierta una temperatura de Celsius a Fahrenheit (fórmula: F = C * 9/5 + 32).

  2. Crea un programa que determine si un número introducido por el usuario es par o impar.

  3. Escribe un programa que muestre la tabla de multiplicar de un número introducido por el usuario.

  4. Crea un programa que haga una cuenta atrás de 10 a 1 y luego muestre «Décollage !».

  5. 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

¡Enlace copiado!