Teoría correspondiente al apartado A.1.1 (Fundamentos de Lenguajes y Python) del currículo de 2.º de Bachillerato:
1. Tipos de Lenguajes de Programación
Un lenguaje de programación es un conjunto de reglas y símbolos que permiten a un ser humano dar instrucciones a una computadora. Se clasifican principalmente según su nivel de abstracción y su forma de ejecución:
- Según la abstracción:
- Bajo nivel (Código máquina y Ensamblador): Dependen directamente del hardware. Trabajan con instrucciones binarias o mnemotécnicos. Son muy rápidos, pero extremadamente complejos de programar.
- Alto nivel (Python, C++, Java): Utilizan una estructura cercana al lenguaje humano y a la matemática. Son portables (ejecutables en diferentes sistemas operativos) y facilitan la resolución de problemas abstractos.
- Según la ejecución:
- Compilados (C, C++, Rust): Un programa traducen todo el código fuente de una vez y genera un archivo ejecutable antes del uso.
- Interpretados (Python, JavaScript): Un intérprete lee y ejecuta el programa instrucción por instrucción en tiempo real. Esto permite mayor flexibilidad durante el desarrollo.
2. Estructura de un Programa en Python y Elementos Básicos
Un programa estructurado en Python recibe datos (Entrada), realiza operaciones con ellos (Procesamiento) y devuelve un resultado (Salida).
- Palabras reservadas: Términos propios del lenguaje con un significado técnico fijo que no pueden emplearse como nombres de variables (ej.
if,while,def,return,import). - Indentación (sangrado): A diferencia de otros lenguajes que utilizan llaves
{}para delimitar bloques de código, Python utiliza el sangrado de líneas obligatorio (habitualmente 4 espacios) para definir la estructura sintáctica. - Identificadores: Nombres asignados a variables, funciones y objetos. Deben comenzar por una letra o guion bajo (
_) y no contener espacios ni caracteres especiales.
3. Tipos Básicos de Datos en Python
Python utiliza un tipado dinámico: no requiere declarar explícitamente el tipo de dato de una variable, ya que el intérprete lo deduce automáticamente según el valor asignado.
| Tipo de Dato | Identificador (type) | Ejemplo | Descripción |
| Entero | int | 25, -8 | Números enteros positivos o negativos sin decimales. |
| Coma flotante | float | 3.1416, -0.5 | Números reales con parte decimal. |
| Cadena de texto | str | "Hola", 'Python' | Secuencia de caracteres delimitada por comillas. |
| Booleano | bool | True, False | Valores lógicos de verdad. |
4. Variables y Constantes
- Variables: Espacios reservables en la memoria RAM cuya información asignada puede modificarse durante la ejecución del programa. Se asignan con el operador
=.- Ejemplo:
edad = 17
- Ejemplo:
- Constantes: Valores que deben mantenerse inmutables durante toda la ejecución. Python no tiene una restricción técnica formal para constantes, por lo que se adopta la convención internacional de escribirlas totalmente en MAYÚSCULAS.
- Ejemplo:
PI = 3.14159
- Ejemplo:
5. Operadores y Expresiones
Una expresión es la combinación de variables, constantes, literales y operadores que, al evaluarse, devuelven un único resultado.
- Operadores Aritméticos: Suma (
+), Resta (-), Multiplicación (*), División real (/), División entera (//), Módulo/Resto (%), Potenciación (**). - Operadores Relacionales (Comparación): Igual a (
==), Distinto de (!=), Mayor que (>), Menor que (<), Mayor o igual (>=), Menor o igual (<=). Devuelven siempre un valor de tipobool(TrueoFalse). - Operadores Lógicos:
and: DevuelveTruesolo si ambas expresiones son verdaderas.or: DevuelveTruesi al menos una de las expresiones es verdadera.not: Invierte el valor booleano de la expresión.
6. Comentarios en el Código
Líneas de texto que el intérprete ignora por completo. Se utilizan para documentar la lógica interna del programa y facilitar el trabajo colaborativo:
- Comentario de una línea: Comienza con el carácter almohadilla
#. - Comentario multilínea / Docstring: Se delimita entre tres comillas dobles (
""" Texto del comentario """). Se utiliza habitualmente para documentar módulos y funciones.
💻 Ejemplos Resueltos (Para aprender la sintaxis)
Ejemplo 1: Calculadora de Calificación Final con Constantes
Este programa calcula la nota final de un alumno aplicando ponderaciones. Muestra la conversión de datos introducidos por teclado (str a float), uso de constantes, operadores aritméticos y formateo de cadenas (f-strings).
Python
# ============================================
# PROGRAMA: Calculadora de Nota Final
# CURSO: 2º Bachillerato - PyC
# ============================================
# CONSTANTES (Nombre en mayúsculas por convención)
PORCENTAJE_EXAMEN = 0.60
PORCENTAJE_PRACTICAS = 0.40
# ENTRADA DE DATOS (input siempre devuelve una cadena de texto 'str')
nota_examen_raw = input("Introduce la nota del examen (0-10): ")
nota_practicas_raw = input("Introduce la nota de prácticas (0-10): ")
# CONVERSIÓN DE TIPOS (Casting a flotante)
nota_examen = float(nota_examen_raw)
nota_practicas = float(nota_practicas_raw)
# PROCESAMIENTO (Expresión aritmética)
nota_final = (nota_examen * PORCENTAJE_EXAMEN) + (nota_practicas * PORCENTAJE_PRACTICAS)
# SALIDA DE DATOS
print("\n--- RESUMEN DE NOTAS ---")
print(f"Examen (60%): {nota_examen}")
print(f"Prácticas (40%): {nota_practicas}")
print(f"Nota Final Calculada: {nota_final:.2f}") # :.2f redondea a 2 decimales
Ejemplo 2: Evaluador Lógico y Descomposición Numérica
Este programa toma una cantidad total de segundos y la descompone en minutos y segundos usando división entera y módulo. Además, evalúa una condición lógica sin usar condicionales if (solo con operadores booleanos).
Python
# ============================================
# PROGRAMA: Descomposición de Tiempo y Evaluación Lógica
# ============================================
# 1. ENTRADA Y CONVERSIÓN
segundos_totales = int(input("Introduce una cantidad total de segundos: "))
# 2. PROCESAMIENTO ARITMÉTICO
# // calcula la división entera (minutos completos)
# % calcula el resto de la división (segundos sobrantes)
minutos = segundos_totales // 60
segundos_restantes = segundos_totales % 60
# 3. EVALUACIÓN DE EXPRESIÓN BOOLEANA
# ¿El tiempo ingresado es mayor a 5 minutos Y los segundos restantes son pares?
es_mayor_5_min = minutos >= 5
es_resto_par = (segundos_restantes % 2) == 0
# Operador lógico AND
cumple_condicion_especial = es_mayor_5_min and es_resto_par
# 4. SALIDA
print(f"\nResultado: {minutos} min y {segundos_restantes} s.")
print(f"¿Cumple la condición especial?: {cumple_condicion_especial}")
🏋️ Ejercicios Propuestos para los Alumnos
Nota pedagógica: En este bloque NO se deben usar estructuras de control como
if,elseo buclesfor/while, ya que corresponden al apartado A.1.2. Todos los ejercicios se resuelven de forma secuencial mediante expresiones aritméticas y lógicas.
Nivel Básico
- Conversor de Temperatura (Fahrenheit a Celsius):Crea un programa que pida al usuario una temperatura en grados Fahrenheit (
float), la convierta a Celsius mediante la fórmula: $\text{Celsius} = (\text{Fahrenheit} – 32) \times \frac{5}{9}$ y muestre el resultado formateado a 1 decimal. - Calculadora de IVA y Descuento:Un comercio aplica un IVA del 21% y un descuento fijo del 5% sobre el precio de lista de un producto. Solicita el precio base del producto y muestra en pantalla:
- El importe del IVA.
- El importe del descuento.
- El precio final a pagar.
Nivel Intermedio
- Desglose de Monedas:Escribe un programa que reciba una cantidad entera de euros (sin decimales) e indique cuántos billetes de 20 € y cuántos billetes de 5 € se necesitan para cubrirla, así como las monedas de 1 € restantes.
- Pista: Utiliza división entera (
//) y resto (%).
- Pista: Utiliza división entera (
- Validación de Becas (Expresiones Booleanas):Una beca escolar se concede si la renta familiar es inferior a 18.000 € Y la nota media del alumno es igual o superior a 8.0, O BIEN si la familia es numerosa (el usuario responderá con
TrueoFalse).Pide estos datos por teclado, evalúa la condición en una única expresión booleana y muestra por pantalla:¿Tiene derecho a beca?: True/False.
Nivel Reto
- Inversión de Número de 3 Cifras:Pide al usuario un número entero positivo de exactamente tres dígitos (por ejemplo,
479). Mediante el uso exclusivo de operaciones matemáticas (//y%), extrae la centena, la decena y la unidad, y muestra el número invertido (974). (Queda prohibido tratar el número como texto/cadena).
