================
== Pythonisas ==
================
Brujas del teclado. Alquimistas de los bits.

Práctica 1.1 — Academia Pythonisa I: Tus primeros hechizos

prácticas

Misión: Despertar a la serpiente

Contexto mágico: Bienvenida, bienvenido a la Academia de las Pythonisas. Hasta hoy has escrito HTML y CSS: le describías al navegador cómo tenía que verse una página. Aquí vas a aprender otra magia: dar órdenes. Tú escribes instrucciones, y la serpiente —el intérprete de Python— las ejecuta una tras otra, al pie de la letra.

Tu primera lección tiene tres partes: hablar con la serpiente (la consola interactiva), guardar cosas en cajas (las variables) y escribir tu primer pergamino (un programa .py que se puede guardar y volver a ejecutar).

Basado en los Capítulos 1 y 2 de Inventa tus propios juegos de computadora con Python – Al Sweigart (Cap. 1: La consola interactiva · Cap. 2: Escribiendo programas)


Los problemas a resolver

  1. Hablar con la consola — ¿Cuánto da 2 + 3 * 4? ¿Y 7 / 2 frente a 7 // 2? La consola evalúa expresiones (valores + operadores) y te devuelve un resultado. Tienes que aprender a predecir qué va a responder

  2. Guardar valores — Una variable es una caja con una etiqueta: guardas un valor y lo recuperas por su nombre. Pero si guardas algo nuevo en la misma caja, el valor anterior desaparece

  3. Del eco al pergamino — Lo que escribes en la consola se olvida al cerrarla. Para que tu magia perdure, la escribes en el editor, la guardas como fichero .py y la ejecutas cuantas veces quieras

  4. Nombrar bien las cosas — Python acepta casi cualquier nombre, pero la Academia tiene sus reglas (y el resto del mundo Python también: la guía de estilo PEP 8)


Tu taller: la consola de Python

En clase usaremos Python 3.11. Para empezar a programar más allá 1 o 2 líneas, más adelante, recomendaremos usar el sencillo Sublime como editor o Thonny (o los clásicos editores Nano, Emacs… o Vim).

En esta primera práctica no necesitas nada de eso: te basta con una terminal y un editor de texto cualquiera.

Orden / teclaPara qué sirve
python3Arranca la consola interactiva: aparece el símbolo >>>
>>>Python espera una orden: la escribes, pulsas Enter y te responde
Flecha ↑Recupera la última orden que escribiste (para no repetirla a mano)
exit() o Ctrl+DSale de la consola y vuelve al terminal
python3 fichero.pyEjecuta un programa que has guardado

💡 ¿Qué versión de Python tienes? Escribe en la consola import sys y después sys.version.


Herramientas a tu disposición

HerramientaPara qué sirve
+ - * /Sumar, restar, multiplicar, dividir (/ siempre da decimales)
// y %División entera y resto
**Potencia: 2 ** 3 → 8
( )Cambiar el orden de evaluación: (2 + 3) * 4
variable = valorGuardar un valor en una caja con nombre
'texto' o "texto"Una cadena (string)
+ entre cadenasConcatenar: 'Hola' + 'Mundo' → 'HolaMundo' (¡sin espacio!)
print(...)Mostrar algo por pantalla
input()Esperar a que la persona escriba algo y pulse Enter
#Comentario: Python ignora el resto de la línea

Desafío 1: La calculadora de la serpiente

Abre una terminal, escribe python3 y trabaja en la consola interactiva. Para cada expresión, primero apunta en papel lo que crees que dará, y después compruébalo.

>>> 2 + 2
>>> 2 + 3 * 4
>>> (2 + 3) * 4
>>> 8 * 3 / 2 + 2 + 7 - 9
>>> 7 / 2
>>> 7 // 2
>>> 7 % 2
>>> 2 ** 10
>>> 5 +

La última está mal a propósito. Lee el mensaje de error: ¿qué te está diciendo Python? ¿Dónde pone las marcas ^?

Diagnóstico: si alguna predicción ha fallado, pregúntate en qué orden ha hecho Python las operaciones. Igual que en matemáticas: primero **, luego * / // %, y por último + -.


Desafío 2: Cajas mágicas

Sigue en la Shell. Ahora vas a guardar valores en variables:

>>> pociones = 15
>>> pociones
>>> pociones + 5
>>> pociones
>>> pociones = pociones + 5
>>> pociones
>>> pociones = 'ninguna'
>>> pociones
>>> hechizos + 1

Fíjate en tres cosas:

  • pociones + 5 calcula un valor, pero no lo guarda. pociones = pociones + 5 sí lo guarda
  • Una misma caja puede cambiar de número a texto: guardar un valor nuevo borra el anterior
  • hechizos no existe: ¿qué error te da?

Diagnóstico: para mirar dentro de una caja en cualquier momento, escribe su nombre y pulsa Enter. La consola te responde con lo que guarda.

Copia toda tu sesión de la consola (desafíos 1 y 2) en un fichero consola.txt.


Desafío 3: ¡Hola, Academia!

Ahora sí: tu primer programa. Sal de la consola (exit()), abre tu editor de texto, escribe esto y guárdalo como hola_academia.py. Después ejecútalo desde la terminal con python3 hola_academia.py:

# Este programa saluda y pregunta por tu nombre.
print('¡Hola, Academia!')
print('¿Cómo te llamas?')
mi_nombre = input()
print('Es un placer conocerte, ' + mi_nombre)

Cuando funcione, amplíalo. El programa debe preguntar también:

  • el nombre de tu familiar (tu mascota mágica: gato, cuervo, dragón de bolsillo…)
  • tu elemento favorito (fuego, agua, tierra, aire, bits…)

Y al final debe anunciar tu nombre de Pythonisa, uniendo todo con +. Por ejemplo:

Desde hoy serás conocida como: Ada del Fuego, guardiana del cuervo Pixel

Diagnóstico: si te sale Adadel Fuego todo junto, recuerda que + pega las cadenas tal cual: los espacios tienes que ponerlos tú dentro de las comillas.


Las reglas de los nombres

¿Te has fijado en que escribimos mi_nombre y no miNombre ni mi_nómbre? En la Academia seguimos la guía de estilo oficial de Python (PEP 8):

  • ✅ snake_case: minúsculas y palabras separadas por _ → mi_nombre, nombre_familiar
  • ✅ Sin tildes ni eñes en los nombres de variables y de ficheros
  • ✅ Nombres que se entiendan → elemento_favorito mejor que ef

¿Por qué sin tildes, si Python 3 las admite? Por portabilidad. Tus programas viajarán entre Windows (en casa) y Linux (en el servidor del aula): un fichero llamado adivinaElNúmero.py puede aparecer como adivinaElN├║mero.py al copiarlo de un sistema a otro, y una variable con tilde es fácil de escribir mal en otro teclado. Los nombres simples, en minúscula y sin tildes funcionan igual en todas partes. Los textos entre comillas sí pueden llevar todas las tildes que quieras.


Entrega

PRACTICA1.1/
+-- consola.txt          <-- sesión de la Shell (desafíos 1 y 2)
+-- hola_academia.py     <-- tu primer programa, ampliado
+-- explicacion.md       <-- tus respuestas a "Explica tu código"

Súbela al servidor SFTP del aula (usuario y servidor: los que te indique tu profe):

$ sftp tu_usuario@servidor-del-aula
sftp> put -r PRACTICA1.1
sftp> ls
sftp> bye

También puedes usar FileZilla con el protocolo SFTP.

Requisitos funcionales:

  • consola.txt incluye todas las expresiones de los desafíos 1 y 2, incluidos los errores
  • hola_academia.py se ejecuta sin errores con python3 hola_academia.py
  • El programa pide al menos 3 datos con input() y compone el nombre de Pythonisa
  • Los nombres de variables siguen snake_case, sin tildes
  • El programa lleva al menos un comentario # explicando qué hace

Explica tu código

En explicacion.md responde con tus palabras (no hace falta que sea largo):

  1. ¿Por qué 7 / 2 y 7 // 2 dan resultados distintos?
  2. En tu programa, ¿qué hay guardado en mi_nombre justo después de ejecutarse input()?
  3. ¿Qué pasa con el valor viejo de una variable cuando le guardas uno nuevo?

Rúbrica por competencias

CriterioHechicería (9-10)Aprendizaje (6-8)Iniciación (0-5)Peso
Consola y expresionesTodas las expresiones probadas, errores incluidos y comentadosCasi todas probadas, sin comentar los erroresFaltan muchas o no hay consola.txt25%
VariablesGuarda, recupera y sobrescribe valores; entiende la diferenciaUsa variables pero confunde calcular con guardarNo usa variables20%
Programa hola_academia.pyAmpliado, 3+ input(), concatenación con espacios correctosFunciona pero sin ampliar o con espacios que faltanNo ejecuta30%
Nombres y estilosnake_case sin tildes, nombres claros, comentarios útilesNombres correctos pero poco claros o sin comentarioscamelCase, tildes o nombres de una letra15%
Explica tu códigoRespuestas claras, con sus palabras y ejemplos propiosRespuestas correctas pero copiadas del enunciadoSin explicacion.md o respuestas vacías10%

Bonus (hasta +2)

BonusDescripciónPuntos
Firma en arte ASCIIEl programa termina mostrando tu nombre o un dibujo con caracteres+0.5
Multiplicar cadenasDescubre qué hace 'ja' * 3 y úsalo en tu programa+0.5
Cazadora de erroresProvoca a propósito un TypeError ('5' + 5) y explica por qué ocurre+0.5
Nombre aleatorio (pista: import random)Investiga cómo elegir el elemento al azar+0.5

Conceptos clave

ConceptoDónde lo ves
Expresión2 + 3 * 4: valores y operadores que se evalúan a un único valor
Precedencia* se calcula antes que +; los paréntesis mandan
Entero vs decimal7 // 2 → 3 (int), 7 / 2 → 3.5 (float)
Variablepociones = 15: una caja con etiqueta
Sobrescribirpociones = 'ninguna' borra el 15 anterior
Cadena (string)'¡Hola, Academia!': texto entre comillas
Concatenación'Es un placer, ' + mi_nombre
Llamada a funciónprint(...), input(): nombre + paréntesis
ProgramaUn fichero .py con instrucciones que se ejecutan de arriba abajo

“Toda gran hechicera empezó escribiendo 2 + 2 y esperando, nerviosa, a que la serpiente respondiera 4.”