2021 Curso Phyton para Educadores
2021 Curso Phyton para Educadores
2021 Curso Phyton para Educadores
Raspberry Pi Foundation
https://www.futurelearn.com/courses/programming-101/13/steps/1157523
Bienvenido al curso
1.1 Hola y bienvenidos a Programación 101!
Soy Martín, y voy a ayudarte a dar tus primeros pasos para convertirte en un programador
informático.
Si eres un educador con tus propios alumnos, puede que quieras reutilizar las actividades en
tus propias clases.
Me he pasado toda mi carrera creando tecnología: desde algunos de los primeros sitios de
banca por Internet hasta dispositivos que vigilan tu casa (¡de una manera no misteriosa!).
Ahora trabajo para la Fundación Raspberry Pi, apoyando a otras personas para que realicen sus
propios viajes a la informática. La capacidad de programar no sólo es una habilidad clave y muy
divertida: también te enseña a pensar de forma crítica, a analizar problemas y a ser creativo.
Aprenderás junto a personas de todo el mundo. Asegúrate de participar en los debates que
aparecen al final de cada página haciendo preguntas y ayudándose mutuamente. Nuestros
animadores del curso también estarán presentes para responder a las preguntas de los
participantes.
¡Buena suerte!
Nota importante para los profesores de Inglaterra: Para obtener acceso gratuito a este curso y
utilizarlo para obtener la certificación del National Centre for Computing Education, debes
haberte unido al curso a través de un enlace del sitio web de Teach Computing. Si no lo ha
hecho, únase al curso en esta página y acepte la invitación de la página siguiente. Si no lo hace,
perderá el acceso al curso y éste no se tendrá en cuenta para la certificación. Su derecho a
recibir una beca también puede verse afectado.
El apoyo y los materiales para la enseñanza de los temas cubiertos en este curso se pueden
encontrar en una serie de unidades del plan de estudios de Teach Computing.
Parte 1.
Parte 2.
KS4 - Algoritmos
Parte 1.
KS4 - Programación
Parte 1.
Parte 2.
Parte 3.
Los contenidos de este curso son de libre acceso para su reutilización. A menos que se
especifique lo contrario, puedes copiar y adaptar el texto, las imágenes y los vídeos para
utilizarlos en tus clases bajo la Licencia de Gobierno Abierto v3.0., siempre que atribuyas a la
Fundación Raspberry Pi lo siguiente: Este texto/imagen/vídeo ha sido creado por la Fundación
Raspberry Pi y está licenciado bajo la Licencia de Gobierno Abierto v3.0.
Somos una organización benéfica que trabaja para poner el poder de la informática y la
creación digital en manos de personas de todo el mundo. Lo hacemos para que más personas
puedan aprovechar el poder de las tecnologías digitales para trabajar, para resolver problemas
que les importan y para expresarse de forma creativa.
Nuestro equipo está formado por antiguos y actuales educadores informáticos que han
utilizado su experiencia para crear estos cursos.
Martin O'Hanlon, nuestro educador principal en este curso, ama la tecnología y crea proyectos
y recursos de aprendizaje para Raspberry Pi. De niño quería ser informático, astronauta o
instructor de snowboard.
Martin O'Hanlon
Nos importa apoyar a los profesores para que alcancen sus objetivos, por lo que nos hemos
propuesto ofrecerles la mejor experiencia de aprendizaje digital posible, de forma gratuita. Eso
significa estar disponibles para responder a sus preguntas y darle retroalimentación a lo largo
del curso. Nuestros educadores harán todo lo posible por responder a las preguntas durante el
periodo de facilitación del curso, pero es posible que no puedan responder a todos los
comentarios.
Preséntese
Tú: sin el programador (tú), el ordenador es inútil. Hace lo que tú le dices que haga.
Resolver problemas: los ordenadores son herramientas. Son herramientas complejas,
es cierto, pero no son misteriosas ni mágicas: existen para facilitar las tareas.
Los programas informáticos (o software) son los que hacen que los ordenadores funcionen. Sin
el software, los ordenadores modernos no son más que complicadas máquinas para convertir
la electricidad en calor. El software de tu ordenador es lo que hace funcionar el sistema
operativo, el navegador, el correo electrónico, los juegos, el reproductor de películas... casi
todo.
La programación es una tarea creativa: no hay una forma correcta o incorrecta de resolver un
problema, del mismo modo que no hay una forma correcta o incorrecta de pintar un cuadro.
Hay que elegir, y una forma puede parecer mejor que otra, pero eso no significa que la otra
esté mal. Con los conocimientos y la experiencia adecuados, un programador puede crear un
software que resuelva un número ilimitado de problemas, desde decirle cuándo llegará su
próximo tren hasta reproducir su música favorita. Las posibilidades sólo están limitadas por tu
imaginación. Por eso me encanta la programación.
Cuando creas un programa para un ordenador, le das una serie de instrucciones, que ejecutará
de una en una y en orden, exactamente como se le ha dado. Si le dices a un ordenador que
salte por un acantilado, lo hará
Para evitar que los ordenadores se caigan constantemente por el acantilado, también pueden
tomar decisiones sobre qué hacer a continuación:
Los ordenadores nunca se aburren y son muy buenos haciendo lo mismo una y otra vez. La
instrucción 2 anterior podría ser más detallada, así
2c. volver a 2a
Estos tres conceptos son las estructuras lógicas básicas de la programación informática:
Lenguajes de programación
Por desgracia, los ordenadores no entienden idiomas como el inglés o el español, así que
tenemos que utilizar un lenguaje de programación que entiendan para darles instrucciones.
Hay muchos lenguajes de programación diferentes, todos ellos con sus propios méritos, y
algunos lenguajes son más adecuados para determinados tipos de tareas, pero no hay ningún
lenguaje que sea el "mejor".
En este curso se programará con un lenguaje llamado Python. Python pertenece a un grupo de
lenguajes llamados "lenguajes de programación de propósito general", que pueden utilizarse
para resolver una gran variedad de problemas. Otros lenguajes populares de esta categoría
son C, Ruby, Java y BASIC.
Este es un pequeño programa en Python que pide al usuario que introduzca su nombre y le
dice "Hola":
if name == "Martin":
No hace falta ser un programador informático para poder leer este código. Contiene palabras
en inglés y es legible (aunque quizás no comprensible). Sin embargo, al final de este curso
entenderás este código, lo que hace y los conceptos que utiliza.
Los programas suelen denominarse código y, por tanto, la programación también se conoce
como codificación.
1.4 lo que se necesita
Para completar las actividades de este curso, necesitarás ser capaz de crear y ejecutar
programas en Python 3.
Todos los recursos necesarios para completar este curso se pueden utilizar de forma gratuita.
Python
Para crear programas en Python, necesitas un editor de texto para escribir tu código y un
intérprete de Python. Usted escribe el código en el editor de texto y el intérprete ejecuta su
código en el ordenador.
Utilizarás un IDE para crear, ejecutar y probar tus programas de Python. Puedes instalar un IDE
en tu ordenador, o puedes utilizar un navegador de Internet para acceder a un IDE online. Un
IDE instalado tiene la ventaja de poder trabajar cuando no estás conectado a Internet. Por otro
lado, un editor en línea no requiere que se instale nada.
A continuación se ofrecen instrucciones para un IDE instalado llamado Mu y para el IDE online
Trinket.
Si necesitas consejo sobre las opciones para usar Python, o instrucciones para instalarlo, por
favor revisa nuestra guía sobre Aplicaciones para crear programas en Python.
Archivos: aquí es donde se almacenarán todos tus programas. Cada nombre de archivo
terminará en .py lo que significa que el archivo es un archivo Python.
Editor: aquí es donde crearás tus programas.
REPL significa "Read-Eval-Print Loop" (por razones que se aclararán). Tu programa se
ejecutará en el REPL, que es donde verás cualquier salida y proporcionarás cualquier
entrada.
Si tienes permiso para instalar software en tu ordenador, te recomiendo que descargues e
instales el IDE Mu.
Si no puedes instalar software en tu ordenador pero puedes acceder a Internet, puedes utilizar
el IDE Trinket en línea.
Prepararse para empezar puede ser a menudo la tarea más difícil. Tómate un tiempo para
encontrar una solución que te funcione. Asegúrate de que tienes Python listo para empezar
antes de continuar con este curso.
Mu
Mu está disponible para su descarga en el sitio web codewith.mu, donde también encontrarás
instrucciones completas de instalación.
Aquí encontrará instrucciones fáciles de seguir para descargar, instalar y poner en marcha Mu:
Windows
macOS
Raspbian
Los usuarios de Linux (que no sean de Raspbian) deben seguir las instrucciones de instalación
con el paquete de Python.
Cuando Mu se inicie por primera vez, selecciona el modo Python 3 y haz clic en OK
Si experimentas problemas o simplemente quieres saber más sobre Mu, echa un vistazo a la
guía de Raspberry Pi Getting started with Mu.
Trinket
Abre trinket.io y regístrate para obtener una cuenta gratuita o inicia sesión si ya tienes una
cuenta
Completa el formulario de registro
Los programadores suelen crear un programa "Hola mundo" para probar que todo funciona
antes de empezar algo nuevo, y esto es lo que vas a hacer.
Hay instrucciones separadas a continuación para los IDEs Mu y Trinket; sigue las instrucciones
para el IDE que hayas elegido, no necesitas completar ambos.
Mu
print("hola mundo")
Si obtiene un error, revise el código cuidadosamente para asegurarse de que todo es correcto.
El código distingue entre mayúsculas y minúsculas, por lo que las mayúsculas son
importantes: print no es lo mismo que Imprimir
El texto, como el mensaje que se va a imprimir, tiene que estar entre marcas de voz,
así que asegúrese de poner el mensaje "hola mundo" entre " "
print espera que el mensaje esté entre paréntesis (corchetes)
Si necesita cambiar su programa, deténgalo y ejecútelo de nuevo haciendo clic en
Detener y luego en Ejecutar
Trinket
Crea un nuevo proyecto Python haciendo clic en Nuevo Trinket > Python
print("hola mundo")
Una página web de trinket, con el nombre de archivo "helloworld" y el botón "Save" resaltado
Si obtienes un error, revisa el código cuidadosamente para asegurarte de que todo es correcto.
El código distingue entre mayúsculas y minúsculas, por lo que las mayúsculas son
importantes: print no es lo mismo que Print
El texto, como los mensajes que se imprimen, tiene que estar entre marcas de voz, así
que asegúrese de poner el mensaje "hola mundo" entre " "
print espera que el mensaje esté entre paréntesis (corchetes)
Consejo: Los nuevos alumnos suelen pensar que el comando imprimir hará que el texto
aparezca en el papel de la impresora en lugar de en la pantalla.
1.6 Enhorabuena
¡Enhorabuena! Has hecho lo más difícil. Configurar tu ordenador y ejecutar tu primer
programa es un hito importante que hay que celebrar. Comparte tu experiencia en los
comentarios, las dificultades y los éxitos.
Choca los cinco con alguien que esté cerca, haz una foto y compártela: ya eres un programador
informático.
Entradas y salidas
En esta actividad:
Tu programa sólo tiene una instrucción en este momento: print("hola mundo"). Lo que está
entre las marcas de discurso ("") es lo que se muestra (se imprime) en la pantalla.
print("Hi")
Para añadir más mensajes, puede utilizar instrucciones de impresión adicionales en las líneas
siguientes diciendo otras cosas.
print("Hi")
Consejo: Es posible que tengas que detener tu programa antes de poder ejecutarlo de nuevo,
haciendo clic en el icono de Stop.
El IDE Mu, con las dos sentencias de impresión de arriba mostradas en el editor, y el texto
resultante "Hola" en una línea y "Soy un programa de ordenador" en una segunda línea
mostrada en el REPL
Hi
I am a computer program
Para crear una variable en Python le das un nombre y la haces igual a un valor. Esto se conoce
como asignación. Por ejemplo
A continuación vas a modificar tu programa para que almacene su nombre en una variable y
luego lo muestre.
Añade el siguiente código al final de tu programa para crear una nueva variable
llamada mi_nombre para guardar tu nombre
my_name = "Martin"
Debes poner tu nombre (¡o cualquier otro nombre que te guste!) entre los signos de
puntuación: "Martín".
Cuando tu ordenador ejecute esta instrucción, se creará una variable llamada mi_nombre y se
almacenará el texto de tu nombre.
Una vez que se ha creado una variable, ésta puede ser utilizada en tu programa.
Usa print para mostrar tu nombre en la pantalla añadiendo este código al final de tu
programa
print(my_name)
Fíjate en que al usar print pones el nombre de la variable entre el () en lugar de texto. La
instrucción print recuperará el valor de la variable mi_nombre y lo mostrará.
Ejecuta tu programa para ver que tu nombre aparece debajo de las dos primeras
instrucciones print
Puedes mejorar el mensaje poniendo el texto "Mi nombre es " delante de tu nombre.
Modifica el código para añadir el texto "Mi nombre es " antes de la variable
mi_nombre:
Observa el uso del signo + para añadir el primer trozo de texto al texto de la variable. La
adición de trozos de texto de esta manera se conoce como concatenación.
Ejecute su programa
Reflexione: ¿Qué línea de código cambiarías si quisieras que la última línea impresa dijera "Me
llamo Robin"? (¡Puede haber más de una respuesta!)
Print(“hello world”)
print(hello world)
my_message = “bye”
Pregunta 2
¿Qué línea de código crearía una variable llamada mi_mensaje y le daría el valor "adiós"?
my_message(“bye”)
Pregunta 3
En esta sección usarás input para pedir al usuario que introduzca algunos datos.
input pondrá un mensaje en la pantalla, esperará a que el usuario dé una respuesta y presione
Enter, y luego almacenará la respuesta como texto en una variable para que puedas usarla en
tu programa.
print y input son ejemplos de funciones. Las funciones son programas prefabricados que
suelen crearse para realizar una única tarea. Python tiene muchas funciones incorporadas que
le permiten realizar una gran variedad de tareas.
Añade el siguiente código al final de tu programa para utilizar input para capturar el
nombre del usuario y almacenarlo en una variable:
Desglosando esta línea de código puedes ver lo que hace cada elemento:
input() utiliza la función input para mostrar una pregunta y capturar la respuesta del
usuario
print(users_name)
1.11 Sintaxis
Ahora que empiezas a crear instrucciones más complejas, es el momento de hablar de la
sintaxis, los inevitables "errores de sintaxis" y los consejos para resolverlos.
La sintaxis es un conjunto de reglas que describen cómo debe estar dispuesto el código. Los
ordenadores son muy precisos, y si te saltas las reglas te lo dirán de la única manera que
saben: con errores. No tienen la imaginación necesaria para enfrentarse a algo inusual.
user_name - este es el nombre de la variable y hay reglas de sintaxis sobre cómo se pueden
nombrar las variables, siendo una de ellas que los nombres de las variables no pueden
contener un espacio.
En este fragmento de código, se está utilizando la función de entrada. Debemos darle un aviso
al usuario, y las reglas de sintaxis dicen que debemos encerrar este aviso entre corchetes (). La
omisión de uno o ambos paréntesis dará lugar a un error.
Nuestros educadores tienen una variedad de métodos para evitar que los estudiantes se
limiten a copiar y pegar el código que no entienden, en lugar de añadir o remezclar el código.
He aquí algunos de ellos:
El profesor de secundaria Joe Mazzone evita dar a los alumnos código copiado y
pegado:
"Hago que escriban todo el código, así que nunca hay que copiar y pegar (utiliza imágenes de
código para tus tareas en lugar de texto plano). Todas mis actividades fomentan las
habilidades y conducen a un proyecto en el que los alumnos escriben su propio código".
El profesor de 5º a 8º grado, Bob Irving, también evita el copiar y pegar, esta vez
utilizando folletos impresos:
Laurel Bleich, antigua profesora de la escuela, utiliza la copia de código como un acto
de enseñanza:
"Dedico mucho tiempo a esto porque es un tema muy delicado. Enseñé en la escuela media, y
los alumnos todavía están tratando de entender lo que es el plagio. Así que mi primera regla es
que si toman código de otro lugar (a menos que sea un código que hayamos desarrollado en
clase) deben citar la fuente en los comentarios de su código. El segundo problema es que
muchas veces los niños no entienden lo que están copiando y acabo teniendo que ayudarles a
depurar el código. Me di cuenta de que puedo utilizar esto para presionar un poco al
estudiante y tener una conversación sobre no copiar ciegamente el código. Una de las formas
en que trabajé esto fue haciendo que los estudiantes usaran comentarios en el código copiado
para explicar lo que estaba pasando".
¿Cómo vas a animar a los alumnos a utilizar el código de otras personas como punto de partida
para sus propias creaciones, en lugar de una solución acabada? Como siempre, comparte tus
sugerencias en los comentarios.
Crear un bot
1.13 Crear un nuevo proyecto
Ahora vas a crear un proyecto en el que trabajarás a lo largo del curso. Va a ser un bot, que te
ayudará en las tareas del día a día.
Primero tendrás que crear un nuevo programa para tu bot. A continuación te explicamos cómo
hacerlo en Mu y Trinket.
Mu
Haz clic en Guardar para guardar tu programa con el nombre de archivo "bot"
Trinket
Crea un nuevo proyecto Python haciendo clic en tu perfil, Nuevo Trinket, Python
Guarde su proyecto haciendo clic en el nombre "Sin título", cambiándolo por "bot" y
haciendo clic en Guardar
Presentaciones
Cuando tu programa se inicie, tu bot debería presentarse usando print para poner un mensaje
en la pantalla.
Puedes utilizar el mensaje que quieras. Tal vez quieras mostrar unos cuantos mensajes, como
"Vamos a empezar".
Desafío
1. Utiliza input para preguntar el nombre del usuario y guárdalo en una variable llamada
users_name.
2. Utiliza print y la variable nombre_usuario para mostrar un mensaje "Bienvenido
[nombre]".
Para incluir el código en los comentarios, tendrás que utilizar tres caracteres de tilde (~~~)
antes y después de tu código, como en este ejemplo de texto de comentario:
~~~
print("This is my code")
~~~
Consulte nuestra guía "Compartir código en FutureLearn" para obtener más información.
1.14 Cálculos
Ahora vas a programar tu bot para que te ayude a sumar números. Le pedirá al usuario dos
números, los sumará y mostrará el resultado.
Para hacer esto, tu programa necesitará crear variables para los siguientes datos:
Crea una nueva variable para almacenar la suma de los dos números introducidos
print(result)
print(result)
Ejecute su programa, introduzca dos números y vea cuál es el resultado
En lugar de sumar los dos números, su programa ha concatenado las dos entradas como si
fueran texto.
Para resolver este problema necesitas decirle a la computadora cómo interpretar los datos que
se le han dado. Ha interpretado la entrada como un trozo de texto como "1", pero queremos
que lo interprete como un número como el 1.
Los problemas en los programas de ordenador se conocen como bugs, y es habitual que al
programar nos encontremos con bugs que hay que arreglar. En el siguiente paso, se realizará
el proceso de corrección de este problema, que se conoce como depuración.
Reflexiona: Antes de pasar al siguiente paso, explícate qué hace cada línea de tu código y por
qué el programa no da el resultado esperado.
Las variables en Python no sólo almacenan datos, sino que también tienen un tipo de datos
que indica qué tipo de datos contiene la variable.
Las variables que almacenan datos de texto tienen el tipo de datos string, mientras que las
variables que contienen números enteros tienen el tipo de datos integer.
Cuando el usuario escribe una entrada, ésta se almacena como una cadena. Para que Python
sume los números, necesitas convertir las variables input1 y input2 de cadenas a enteros. La
conversión de variables de un tipo de datos a otro se conoce como casting.
Para convertir tus variables de cadena input1 y input2 en enteros puedes utilizar la función int
(el nombre es la abreviatura de 'integer').
Después de haber obtenido los dos números usando input con estas líneas
Añade el siguiente código para crear dos nuevas variables number1 y number2, y
utiliza int para convertir las cadenas de entrada
number1 = int(input1)
number2 = int(input2)
Modifica tu programa para que la variable resultado sea la suma de las variables
number1 y number2
number1 = int(input1)
number2 = int(input2)
print(result)
Ahora ejecuta de nuevo tu programa... oh, vaya, el cambio ha dado lugar a un error:
De la misma manera que has tenido que convertir las cadenas en enteros para hacer cálculos
sobre ellas, también tienes que convertir la variable resultado, que es un entero, en una
cadena para poder concatenarla.
Añade una nueva línea de código para crear una nueva variable llamada resultado y
utiliza la función str para convertir la variable resultado en una cadena, así
output = str(result)
Cambia la última línea de tu programa que imprime la variable resultado para utilizar
la variable salida:
print(input1 + " + " + input2 + " = " + output)
Has aprendido sobre los tipos de datos variables string y integer que se utilizan para almacenar
texto y números enteros. Python también tiene muchos otros tipos de datos. Estos son
algunos de los más utilizados.
A lo largo de este curso tendrás la oportunidad de utilizar muchos de estos tipos de datos a
medida que vayas creando tu bot.
Desafío
Crea un nuevo programa que resuelva un problema matemático diferente, como por ejemplo
Recuerda utilizar tres caracteres de tilde (~~~) al principio y al final de tu código, como en este
ejemplo de texto de comentario:
print("This is my code")
~~~
Consulte nuestra guía "Compartir código en FutureLearn" para obtener más información.
Elige todos los valores enteros de esta lista: Selecciona todas las respuestas que consideres
correctas.
1011001 (x)
one
12 (x)
7.8
Pregunta 2
Cadena (X)
entero
float
booleano
Pregunta 3
mi_integro = str(mi_cadena)
mi_integro = print(mi_cadena)
mi_integro = mi_cadena
1.17 Resumen de la primera semana
Esta semana, has creado tu primer programa Hola Mundo y lo has llevado adelante para crear
un programa interactivo para hacer sumas.
Has aprendido a mostrar la pantalla, a recibir entradas del usuario, a crear variables y a
convertirlas en diferentes tipos de datos.
Esta semana se ha centrado en la secuencia, las entradas, las salidas, las variables y los tipos de
datos. La próxima semana aprenderás cómo hacer que tu programa tome decisiones utilizando
la selección.
Discusión
¿Qué tipo de programas podrías crear utilizando las habilidades que has aprendido esta
semana?
Glosario
Semana 2
2.1 Cómo toman decisiones los ordenadores
La semana pasada creaste tus primeros programas de ordenador que seguían instrucciones,
manejaban entradas y salidas y utilizaban variables para almacenar datos.
Los programas que creaste la semana pasada seguían siempre el mismo camino. Eran
secuenciales: cada instrucción se ejecutaba en secuencia, por lo que siempre hacían lo mismo.
Para sacar a los ordenadores de este patrón secuencial de falta de sentido, hay que darles la
capacidad de tomar decisiones.
Por ejemplo:
"¿La altura del acantilado es menor que la altura a la que puedo caer?"
Evaluación
2.2 Verdadero o falso
Cómo toman decisiones los ordenadores
8 comentarios
La semana pasada creaste tus primeros programas de ordenador que seguían instrucciones,
manejaban entradas y salidas y utilizaban variables para almacenar datos.
Los programas que creaste la semana pasada seguían siempre el mismo camino. Eran
secuenciales: cada instrucción se ejecutaba en secuencia, por lo que siempre hacían lo mismo.
Para sacar a los ordenadores de este patrón secuencial de falta de sentido, hay que darles la
capacidad de tomar decisiones.
¿Puedo saltar con seguridad por el acantilado? Si no es así, ¡quédate donde estás!
"¿La altura del acantilado es menor que la altura a la que puedo caer?"
Falso: no saltes
2 == 1
True
False (x)
Pregunta 2
True (x)
False
Pregunta 3
12 != 27
True(x)
False
Pregunta 4
32 > 32
True
False (x)
Haciendo elecciones
2.4 Si es esto, entonces hazlo
Ahora que ya sabes cómo hacer que los ordenadores comprueben si algo es verdadero o falso,
puedes usarlo en tus programas usando if.
Cuando se le pide a un ordenador que haga una elección, lleva a cabo un proceso como éste:
if statement == True:
print("do this")
Entre el if y el : está el código que será evaluado, esto se conoce como la condición, es decir,
declaración == True.
Debajo del : está el código que se ejecutará si la declaración es igual a True, por ejemplo,
print("haz esto").
Mu
Si estás usando Mu, sigue estas instrucciones para crear un nuevo programa:
Si estás usando Trinket, sigue estas instrucciones para crear un nuevo programa:
Añade el siguiente código, que utilizará el input para obtener algún texto del usuario y lo
almacenará en una variable llamada frase
Utiliza una sentencia if para comprobar si la frase tecleada por el usuario es igual a "hola"
if phrase == "hi":
Nota: Recuerde que se utiliza un doble signo de igualdad (==) cuando se comprueba si dos
cosas son iguales.
if phrase == "hi":
print("hello")
Nota: La sangría (espacio) antes de la impresión es muy importante. Así es como Python sabe
qué código ejecutar si la sentencia es True. Cuando presione enter después de los dos puntos :
su IDE puede haber sangrado automáticamente el cursor por usted, si no puede usar la tecla
de tabulación para crear una sangría.
Ejecute su programa e introduzca "hi" cuando se le pida; debería ver el mensaje
"hello"
Si pones un espacio antes de "hola", no verás el mensaje "hola". ¿A qué crees que se debe
esto? Pon un comentario en la discusión con tus ideas.
Ejecute su programa de nuevo pero introduzca un mensaje diferente; debería notar que no ve
el mensaje "hola" - sólo se mostrará si introduce "hola"
A continuación, cambiarás tu programa para que siempre diga "adiós" cuando el programa
termine. Para que el código se ejecute después del if, necesitas escribirlo sin sangría, de lo
contrario Python seguirá pensando que es parte del if.
print("bye")
if phrase == "hi":
print("hello")
print("bye")
Ejecute su programa unas cuantas veces; experimente introduciendo la frase "hola" y luego
diferentes saludos - ¿obtiene los resultados que espera?
Tu programa sólo debería decir "hola" si dices "hola", pero siempre debería decir "adiós".
Reflexiona: ¿Qué situaciones del mundo real crees que podrían representarse con una
sentencia "si-entonces"? Comparte tus ideas en la sección de comentarios.
"Si esta declaración es verdadera, entonces ejecutaré este código, si no, ejecutaré este
otro código".
if statement == True:
print("do this")
else:
Nota: El else no tiene sangría y está alineado con el if. Al alinearlos, le dices a Python que este
else pertenece a ese if.
Ahora vas a cambiar tu programa para que si el usuario introduce cualquier cosa que no sea
"hola", responda con "lo siento, no entiendo esto".
else:
if phrase == "hi":
print("hello")
else:
print("bye")
Nota: El else no tiene sangría y está en línea con el if. Esto es muy importante, ya que el nivel
de sangría le dice a Python que este else pertenece a este if.
Los problemas de indentación son algo que casi todo el mundo experimenta la primera vez
que usa Python. Sin embargo, si entiendes y sigues las reglas son muy fáciles de arreglar. Así
que tomemos un tiempo para hablar de:
¿Identar?
if phrase == "hi":
print("hello")
print("bye")
Este pequeño programa contiene una sangría: está antes del código print("hola") y está debajo
de if phrase == "hola":
if phrase == "hi":
print("hello")
La sangría indica a Python que el código print("hola") sólo debe ejecutarse si la frase == "hola"
es verdadera. Cualquier código que esté indentado bajo el if formará parte del ámbito de esa
sentencia if.
if phrase == "hi":
print("hello")
Mira el programa de abajo, donde hay otra sangría, después del else, antes de print("sorry I
dont understand this").
if phrase == "hi":
print("hello")
else:
print("bye")
Utilizando las mismas reglas de alcance que la sentencia if, la sentencia print indentada bajo el
else es parte del alcance de esa sentencia else.
else:
Sin el uso de la sangría, Python no sería capaz de determinar qué código ejecutar como parte
del if o del else. Este es un tema común en todo Python y uno que usarás mucho en las
próximas semanas.
Cómo funciona
Para crear una sangría usando Mu o Trinket, usa la tecla de tabulación del teclado. Esto creará
un espacio y sangrará el cursor. Mu y Trinket (y la mayoría de los editores de código) también
tratarán de ayudarte a sangrar tu código, poniendo automáticamente sangrías cuando pulses
Enter después de un :.
Zoom en el editor en trinket, con la sangría después de una sentencia 'else' resaltada con una
caja roja, y etiquetada como '2 espacios'
A Python no le importa si usas dos espacios o cuatro espacios (o cualquier otro número de
espacios) mientras seas consistente. Por ejemplo, si empiezas usando cuatro espacios para una
sangría, entonces siempre debes usar cuatro espacios.
En el ejemplo siguiente, se han utilizado cuatro espacios para la primera sangría, pero sólo dos
para la segunda, y puede ver que como resultado el código no se "alinea".
if phrase == "hi":
print("hello")
La ejecución de este programa dará lugar a un error que indica IndentationError: unindent no
coincide con ningún nivel de sangría exterior.
1. Utilice la tecla de tabulación de su teclado. Esto asegurará que está usando el mismo
número de espacios por sangría.
2. No te pelees con tu editor: deja que indente el código por ti cuando sea posible, y
utiliza el número de espacios que te da.
3. Mantén el código ordenado. Si no está alineado, no va a funcionar.
Has aprendido a hacer que tu programa pruebe una declaración y ejecute algún código
dependiendo de si es verdadera o falsa, utilizando una declaración if-then-else. ¿Qué pasa si
quieres probar más de dos posibilidades, como por ejemplo si has introducido "hola", o
"adiós", o "ni hablar"? Para estos escenarios puede utilizar un else if.
if statement == 1:
print("do this")
elif statement == 2:
else:
print("do the other")
Cambiemos su programa para que utilice un elif para comprobar si la frase es "cuál es tu
nombre", y para responder a esa frase con "Marvin".
print("Marvin")
if phrase == "hi":
print("hello")
print("Marvin")
else:
La frase que has probado es "whats your name" no "what's your name", así que cuando
pruebes el programa, no incluyas el apóstrofe porque si no parecerá que no funciona. En un
paso posterior, aprenderás cómo probar múltiples evaluaciones.
2.8 Desafío
¿Puedes usar las lecciones que aprendiste la semana pasada para cambiar tu programa de
manera que en lugar de decir:
Nota: El código en los comentarios debe ir encerrado entre caracteres de tilde (~~~): tres tildes
antes y después del código. Consulte nuestra guía "Compartir código en FutureLearn" para
obtener más información.
2.9 Estudios de caso: ayudar a los estudiantes cuando están atascados
Quedarse atascado mientras se trabaja en un problema es algo común en las Ciencias de la
Computación (y en la vida en general), por lo que es importante tener formas de desatascarse.
He aquí algunas de las que algunos educadores encuentran útiles en sus aulas:
"Hablar del problema con otra persona (real o de la variedad lego/pato de plástico)
también ayuda".
"Hago que compartan su código con otra persona y que vean si otra persona puede
explicar lo que debería ocurrir y dónde podría estar el problema".
"Hago que los alumnos lean su código y expliquen qué hace cada paso".
"Hago que los alumnos hablen en voz alta de lo que hace cada línea de código. Es una
gran estrategia de depuración y permite a los alumnos descubrir lo que les falta o lo
que está mal."
"Les doy una lista de comprobación de las cosas que deben hacer antes de hacerme
una pregunta a mí o a otro, como por ejemplo 1) ¿Es este error similar a otro que he
tenido antes y qué hice al respecto? 2) Si es diferente, ¿dónde está el problema?
(Intento subrayar que, aunque los IDEs intentan ser útiles para resaltar algunos
errores, el fallo real suele estar en otra parte). ¿Hay un problema con mi lógica? 3)
¿Hay algún otro programa que conozca que haga algo similar a lo que quiero hacer? Si
es así, ¿cómo es el código? ¿Similitudes? ¿Diferencias? 4) Intentar siempre buscar en
Google o consultar la página web de la clase donde tengo MUCHOS recursos online. Y
finalmente 5) Preguntar al profesor o a otro alumno".
¿Qué piensas hacer para ayudar a tus alumnos a desatascarse? Comparte los consejos que
tengas en los comentarios.
phrase == "hi"
Utilizando and y or, puede construir evaluaciones compuestas que comprueben varias
sentencias, por ejemplo
Si la frase 1 es Verdadera y
la frase 2 es Verdadera
Entonces toda la declaración es Verdadera
En caso contrario es Falso
Utilicemos este ejemplo para cambiar tu programa para que utilice una or, de forma que
responda con "Hola" si das la frase "hola" o "hey".
Consejo: Un error común es escribir if phrase == "hi" o "hey", ya que así es como lo diríamos
en inglés, pero en Python hay que indicar la condición completa cada vez. Este código se
ejecutará, pero no tendrá el resultado que usted espera, ya que no importa qué frase se
introduzca, la declaración if siempre será verdadera.
Ejecute su programa; si da la respuesta "hi" o "hey" entonces su programa debería
responder con "Hello"
2.11 Práctica
Es muy importante que te familiarices con la evaluación, la selección y el uso de if, y deberías
dedicar tiempo a practicar añadiendo instrucciones adicionales, jugando con el código y
probando cosas nuevas.
Deja que tu imaginación te guíe y tómate un tiempo para crear tu propio programa que utilice
la evaluación y la selección. Aquí tienes algunas ideas para empezar:
Modifica tu programa para que pueda responder a más frases añadiendo instrucciones
elif adicionales
Haz que tu programa haga preguntas añadiendo instrucciones de entrada y if
adicionales
Crea un cuestionario en el que tu ordenador haga una pregunta y te haga saber si has
acertado
Recuerda compartir lo que creas en la sección de comentarios.
Nota: El código en los comentarios debe estar encerrado entre caracteres de tilde (~~~) - tres
tildes antes y después del código. Consulte nuestra sección 'Shari
De momento, tu bot sólo sirve para sumar números. Vamos a cambiarlo para que también
pueda restar números.
Obtener una orden del usuario usando input; ¿el usuario quiere sumar o restar?
Usar un if, then, elif, else para elegir si el bot está sumando o restando
Añadir el código para obtener dos números del usuario, y el código para restarlos
(cuando sea necesario)
El primer paso es utilizar la entrada para obtener un comando del usuario cuando se inicia tu
bot. Si se introduce el comando "add", tu bot sumará dos números, utilizando el código que ya
has escrito.
Vuelve al código de tu bot abriendo el programa "bot" que creaste la semana pasada.
Mu
Trinket
Después de obtener el comando del usuario, utiliza una sentencia if para ver si es "add"
if command == "add":
Debajo de esta sentencia if, debe sangrar todo el código para añadir números, de modo que
sea parte del if y por lo tanto sólo se ejecute cuando el usuario introduzca el comando "add"
if command == "add":
number1 = int(input1)
number2 = int(input2)
output = str(result)
Ejecuta tu programa para probarlo; si introduces el comando "add" tu bot debería pedirte dos
números y sumarlos; si introduces cualquier otra cosa, el programa debería terminar
Reflexiona: ¿Cómo cambiarías tu bot para que también acepte "más" como comando?
A continuación añadirás el código para dividir números y aprenderás sobre el tipo de datos
float.
2.13 División
Ahora que tu bot tiene una forma de entender los comandos, puedes cambiar tu programa
para que pueda hacer algo más que sumar números.
En el siguiente paso, añadirás el código para que tu bot pueda dividir números. Después de
esto tendrás la oportunidad y el reto de añadir más código para realizar otras tareas.
Indentado debajo del elif, añade el código para restar dos números; es muy similar al código
para sumar
Consejo: Está bien copiar y pegar cuando tengas que repetir algún código.
print("Let's divide some numbers")
number1 = int(input1)
number2 = int(input2)
output = str(result)
Ahora mismo hay mucho código duplicado en tu programa. En la cuarta semana, veremos
cómo podemos cambiar la lógica de tu programa para hacer el código más eficiente, pero por
ahora, es una buena idea mantenerlo simple.
Como último paso, añade un mensaje para que si el bot no reconoce el comando introducido,
responda con sorry I dont understand.
else:
if command == "add":
number1 = int(input1)
number2 = int(input2)
output = str(result)
number1 = int(input1)
number2 = int(input2)
output = str(result)
else:
Flotantes
Habrás notado que al dividir un número entre otro, el resultado es un número con decimales,
por ejemplo
9 / 3 = 3.0
Esto se debe a que el valor resultante de la división de dos números es del tipo de datos float.
Una cadena se puede convertir en un flotador utilizando la función float(), por ejemplo
decimal_number1 = float(input1)
Predice cuál crees que sería el resultado de 67 / 7 si cambiaras tu programa para utilizar la
función round() después de calcular el resultado:
result = round(result, 2)
output = str(result)
Actualiza tu programa para utilizar la función round() y comprueba si tu predicción era
correcta.
2.14 Comentarios
A medida que tus programas se vuelven más complejos, puede que te resulte más difícil seguir
la pista de lo que hace cada parte de tu código.
Una forma de ayudarte a recordar lo que hacen las diferentes partes de tu código es incluir
comentarios dentro del mismo.
Los comentarios son texto dentro del código que son notas para el programador u otra
persona que utilice el código. El ordenador ignora todos los comentarios cuando ejecuta el
código.
En Python, se crea un comentario poniendo un carácter hash # antes de algún texto. Por
ejemplo:
# esto es un comentario
En Python, puedes hacer que un comentario abarque varias líneas poniendo un # al principio
de cada línea.
# multiple lines
2.15 Desafío
Tu reto es actualizar tu programa para que pueda
Resolver otro problema que hayas elegido; puede ser el cálculo de un área, el coste de tu
compra semanal o cualquier otra cosa que te guste
Nota: El código en los comentarios debe ir entre caracteres de tilde (~~~) - tres tildes antes y
después del código. Consulte nuestra guía "Compartir código en FutureLearn" para obtener
más información.
Para que los alumnos se impliquen en lo que están aprendiendo, puede ser útil establecer
tareas que les permitan tener un sentido de propiedad de su trabajo. He aquí cómo lo
consiguen algunos de nuestros educadores.
"Hago que los alumnos elijan un proyecto final con algunas directrices (se les da una
rúbrica). En general, insisto en que si el alumno tiene una idea diferente que no se
ajusta a las directrices generales, estoy abierto a escuchar su idea y podemos crear
juntos una rúbrica específica para su idea. En el pasado he tenido algunos estudiantes
que han hecho esto".
"Hacer todos los retos de remezcla correctamente les hace ganar un 90%. Para
conseguir más, deben demostrar lo que yo llamo 'extra awesomeness': hacer algo
original, creativo y nuevo con las habilidades que acaban de aprender".
Aprendiste a crear sentencias que se evalúan como Verdadero o Falso, y cómo esto se utiliza
para permitir que las computadoras tomen decisiones.
La próxima semana, aprenderás cómo hacer que los ordenadores repitan el mismo código
muchas veces, y sobre el uso de listas de datos.
Glosario
Semana 3
Lo que mejor saben hacer los ordenadores
3.1 Lo que mejor hacen los ordenadores
Iterables
3.2 Iterables
Puede que estés pensando... ¿Iterables qué?
No pasa nada. Un iterable es simplemente algo que puede ser "iterado", o recorrido de a poco,
como una lista de números o palabras. Antes de profundizar en el tema de la iteración en
Python, nos tomaremos un tiempo para explorar los iterables y su funcionamiento.
Aunque no te hayas dado cuenta, ya has utilizado un iterable durante este curso: una cadena.
Conceptualmente una cadena es una lista de caracteres en un orden: por ejemplo, "hola" es
una lista de 5 caracteres en el orden "h" "e" "l" "l" "o".
Entender cómo funcionan las listas y los iterables es importante porque así es como Python
itera: ejecutando el mismo código para cada elemento de una lista.
Primero vamos a explorar las cadenas como iterables en el REPL para ver cómo funcionan.
phrase = "hello"
Puedes acceder a elementos individuales (o ítems) de una lista o dividirlos en partes utilizando
índices, siendo un índice una posición en una lista.
La cadena hola tiene cinco caracteres, el primer elemento es h que tiene un índice de 0, el
segundo elemento e tiene un índice de 1 y así sucesivamente:
0 1 2 3 4
h e l l o
Para acceder a los elementos de una lista se utilizan corchetes [] después del nombre de la
variable, añadiendo el índice del elemento que se desea obtener:
variable[index]
frase[0]
Reto: repite el paso anterior, cambiando el índice para obtener el cuarto carácter ("l") de la
cadena.
Los índices no tienen que ser números positivos. También puedes utilizar índices negativos
para obtener elementos del final de la lista. Por ejemplo, el último elemento de una lista
tendría el índice -1:
-5 -4 -3 -2 -1
h e l l o
phrase[-1]
¿Cuál crees que es la ventaja de utilizar la frase[-1] sobre la frase[4] para obtener el último
elemento? Pon tu opinión en la sección de comentarios.
3.3 Índices y cortes (slices)
Además de obtener elementos individuales de un iterable, también puede utilizar los índices
para obtener "trozos" de una lista, como los tres primeros caracteres o los caracteres 3 y 4.
Para obtener una porción, debe proporcionar dos índices (el inicio y el final de la porción que
desea), separados por dos puntos : dentro de corchetes:
variable[start_index:end_index]
phrase[1:4]
Nota: Para obtener los 3 caracteres centrales ell de hello ha utilizado phrase[1:4]. El elemento
en el índice 4 es "o", pero "o" no sale. El end_index en un rango es hasta, pero no incluye.
0 1 2 3 4
h e l l o
- - - >
Reto: Obtener los dos últimos caracteres de la variable frase.
Consejo: Si desea obtener un rango que vaya desde el principio o hasta el final de una lista,
puede dejar en blanco el índice de inicio o de fin, por ejemplo
phrase[:3]
phrase[3:]
Practique el uso de rangos, cree algunas cadenas más largas y vea cómo puede trocearlas
3.4 Listas
Python tiene un tipo de datos para almacenar listas, imaginativamente llamado Lista. Una lista
puede almacenar una secuencia de cualquier pieza de datos de cualquier tipo (enteros,
cadenas, booleanos, etc.).
Nota: Otros lenguajes de programación pueden referirse a las listas como arrays. Aunque
tienen un nombre diferente y su uso también puede ser diferente, conceptualmente son lo
mismo.
Puedes crear una variable de lista en Python de la misma manera que cualquier otra variable:
dándole un nombre y asignándole un valor. En el caso de una lista, el valor será una secuencia
de elementos que se pondrán en la lista, escritos entre corchetes [] y separados por comas:
my_list = [1, 2, 3, 4, 5]
Si quieres crear una lista vacía, a la que añadirás elementos más adelante en tu programa,
puedes utilizar corchetes vacíos: [].
my_list = []
Nota: Las listas pueden contener todo tipo de datos: enteros, cadenas y cualquier otra cosa.
Incluso pueden contener otras listas. (Las listas de listas son muy útiles para almacenar tablas
de datos, pero eso es un tema para otro curso).
Usando un índice, como hiciste con una cadena, obtén el segundo nombre (índice 1) de la lista
names[1]
Una característica de las listas en Python es que pueden ser modificadas después de haber sido
creadas: puedes añadir nuevos elementos al final de la lista, insertarlos en el medio, o
eliminarlos completamente usando las tres funciones append, insert y remove. (Como se trata
de funciones especiales de lista, se unen con un punto al nombre de la lista a la que se aplican,
como en los ejemplos siguientes. Técnicamente las funciones de este tipo se llaman
"métodos").
names.append("lauren")
names
names.insert(2, "dan")
names.remove("martin")
Las listas son realmente poderosas y son la piedra angular de cómo se hace la iteración en
Python, por lo que vale la pena explorarlas para asegurarse de que tienes una buena
comprensión de cómo funcionan. Asegúrate de que puedes explicar cómo funcionan los
comandos append, insert y remove con tus propias palabras.
A continuación vamos a juntar todas estas ideas y crear un nuevo programa que utilice listas
para crear un bucle.
mylist = 0
my_list = [] (x)
my_list = [None]
Pregunta 2
my_list(0)
my_list[0] (x)
my_list[1]
Pregunta 3
my_list.add("new item")
my_list.insert("new item")
Pregunta 4
my_list[1:2:3]
my_list[2:5]
my_list[1:4] (x)
my_list[1:3]
Nota: El end_index es hasta pero no incluido, por lo que para obtener el 4º elemento de la lista
hay que leer hasta el 5º elemento en el índice 4.
Iteración
3.6 Recorrer una lista en bucle
Vas a utilizar la iteración y las listas para crear un programa que cree y muestre una lista de la
compra. Crearás este programa en dos partes: una para mostrar la lista de la compra y otra
para crearla. Tu reto será combinar estos dos programas juntos.
Empezaremos con el código para mostrar los artículos de la compra. El primer paso es crear un
programa que recorra todos los artículos de una lista y los imprima en la pantalla.
Nota: Si no estás seguro de cómo hacer esto, echa un vistazo al paso "Si es esto, entonces haz
aquello" de la segunda semana.
Cree una variable de lista para sus compras y llénela con algunos artículos.
print("do this")
Utiliza un bucle for para imprimir cada uno de los elementos de tu lista de la compra
print(item)
Nota: La sentencia print está indentada bajo el bucle for. La sangría en un bucle for funciona
exactamente igual que en una sentencia if; cualquier código sangrado bajo el for se ejecuta
como parte de ese bucle.
Ejecute su programa
Desglosemos esto y consideremos los pasos que da el ordenador para llevar a cabo este
programa.
print(item)
bread
print(item)
Esta vez, item contiene el valor "cheese", por lo que se imprime "cheese".
cheese
Esto continúa hasta que no hay más elementos en la lista; cada elemento ha sido impreso a su
vez, y entonces el bucle for se detiene.
Errores en el código
Te encontrarás con errores en casi todos los fragmentos de código que escribas. Todo
programador, independientemente de su experiencia, tendrá que resolver errores y depurar
su código. Es parte del proceso de programación.
Hay miles de mensajes de error específicos, pero todos ellos caen en una de las siguientes
categorías:
Errores de sintaxis
Errores de tiempo de ejecución
Errores de lógica
Errores de sintaxis
Como ya hemos visto en este curso, la sintaxis es un conjunto de reglas que describen cómo
debe estar dispuesto el código.
Echa un vistazo a la línea de código de abajo. Le falta una sintaxis vital. Puedes ver el mensaje
de error que produce a continuación.
print("hello world
Mensaje de error:
print("hello world
Falta de los dos puntos al final de una sentencia if, for, o bucle while
Un corchete adicional al final de una función
Falta un corchete al final de una función
Errores de tiempo de ejecución
Los errores de ejecución ocurren cuando tu programa encuentra un error mientras se está
ejecutando. Con los errores de ejecución, Python no puede determinar que el programa fallará
antes de que se ejecute. Tu programa comenzará a ejecutarse pero luego se detendrá y
mostrará un mensaje de error.
Un error en tiempo de ejecución ocurriría, por ejemplo, si tu programa intentara convertir una
cadena que no fuera un símbolo numérico en un entero.
Aquí hay un ejemplo de tal error, junto con el mensaje de error que produce.
my_number = "two"
my_integer_number = int(my_number)
Mensaje de error:
my_integer_number = int(my_number)
Errores lógicos
Un error lógico ocurre cuando tu código se ejecuta pero no se comporta de la manera que
esperas. Python no emitirá un error, pero tu programa no producirá la salida que esperabas.
Esto puede ser el resultado de una condición "if" incorrecta, o una función u operador que se
utiliza incorrectamente, por ejemplo, utilizando el operador equivocado en una sentencia de
selección. El código de abajo está usando el operador mayor que, pero debería tener un
símbolo menor que:
my_age = 13
Piensa en los errores que has corregido en este curso hasta ahora; ¿de qué tipo eran?
Comparte tus ejemplos en los comentarios. A medida que vayas avanzando en el curso, intenta
aplicar estas etiquetas a los errores que encuentres.
3.8 Contar
Una técnica de codificación muy útil es contar a medida que se ejecuta el bucle. De este modo,
sabrás cuántas veces se ha ejecutado el bucle.
En tu programa de lista de compras, puedes usar esto para imprimir cuántos artículos hay en
tu lista al final de tu programa.
Para llevar la cuenta de cuántos artículos hay en tu lista, necesitarás crear una variable que
contenga un total continuo del número de artículos.
Crea una variable llamada count en la parte superior del programa display_shopping y
ponla a cero
count = 0
count = count + 1
Vale la pena mirar esta línea de código con un poco más de detalle, ya que hay un nuevo
concepto aquí. Recuerda que = es una asignación: pide a la computadora que asigne un nuevo
valor a la variable llamada count. Cuando el ordenador ejecuta esta línea de código, lo hace en
el siguiente orden
Conceptualmente esto puede ser difícil de entender, pero es muy común en la programación
de ordenadores.
print(count)
count = 0
print(item)
count = count + 1
print(count)
Ejecuta tu programa y comprueba que el recuento es el mismo que el número de
artículos de la lista de la compra
Reflexione: ¿En qué otras situaciones sería útil mantener un total actualizado?
Consejo: Contar es una técnica muy utilizada y realmente útil, pero en este caso hay una forma
más sencilla de averiguar cuántos elementos hay en una lista, utilizando la función len,
abreviatura de "longitud":
len(shopping)
Por ejemplo: para enseñar la secuencia, muestro una breve animación en Scratch en la que dos
sprites (personajes) se cuentan un chiste. Explico que cada sprites sigue una secuencia de
instrucciones, y utilizo a dos alumnos para que recorran el programa, incluido el comando
"wait". Al principio, los alumnos suelen intentar juntar sus trozos de papel (yo escribo cada
etapa del chiste en un trozo de papel) y rápidamente nos damos cuenta de que esta secuencia
no funciona.
Laurel Bleich, antigua profesora de escuela, utiliza las sesiones de educación física, en
particular la carrera de una milla cronometrada alrededor de la pista de atletismo de la
escuela:
"En cuanto al bucle, hago hincapié sobre todo en el recuento de vueltas alrededor de la
pista. Dentro del cuerpo del bucle, suelo imprimir cuántas vueltas se han corrido o
faltan por correr, dependiendo de si contamos hacia arriba o hacia abajo. Suelo dibujar
una pista en la pizarra y modelar la carrera alrededor de la pista, por lo que podría
añadir las diferentes vueltas en el cuerpo del bucle, ya que es algo que se hace siempre.
Según mi experiencia, los alumnos entienden que el conjunto de instrucciones del bucle
while se ejecuta un determinado número de veces; el problema parece ser cómo
establecer a qué inicializar la variable de conteo y qué condicional establecer. O bien
ejecutan el bucle demasiadas veces, o no las suficientes, o consiguen un bucle infinito.
Así que utilizo este ejemplo para que cambien el valor inicial de la variable de recuento
y lo relacionen con la forma en que pueden pensar en el recuento de vueltas al correr
su milla".
"Algoritmos - hacer que los alumnos den instrucciones paso a paso sobre cómo jugar
(reglas y juego).
Repetición - decir los pasos individualmente y luego hacer que los alumnos me digan
cómo codificar la secuencia de una manera más eficiente.
La secuencia funciona bien en la gimnasia o en los circuitos, para describir en qué zona
deben empezar y progresar los alumnos, y cómo saben que deben avanzar (por
ejemplo, cuando suene el silbato, pasar al siguiente circuito). Otro ejemplo sería:
'Lanza las pelotas hasta que no haya más pelotas en la caja'".
Para hacer algo cinco veces, puedes crear un bucle for que haga un bucle para todos los
números entre 0 y 4 creando una lista de esos números, por ejemplo
numbers = [0,1,2,3,4]
print(number)
Sin embargo, esto es muy restrictivo. Sólo podrá hacer un bucle cinco veces, ¿y qué pasa si
quieres hacer algo un millón de veces? No sería factible crear una lista con todos los números
hasta 1.000.000.
Para superar este problema, Python tiene una función llamada range que creará una lista de
números por ti.
print(number)
Nota: La función range(5) creará una lista de cinco números del 0 al 4, no de seis números del
0 al 5.
Ahora utilizarás un bucle for con rango para crear un programa que hará un bucle durante un
número determinado de veces, preguntando al usuario por un artículo de la compra y
añadiéndolo a la variable de la lista de la compra.
shopping = []
Añade un bucle for con un rango para hacer un bucle cinco veces
Debajo del bucle for, utiliza el input para pedir al usuario algo que añadir a la lista de la
compra
shopping.append(item)
Por último, después del bucle for, imprimamos la lista de la compra, para que
podamos ver lo que hay en ella
print(shopping)
shopping = []
shopping.append(item)
print(shopping)
Ejecuta tu programa y comprueba que puedes introducir cinco artículos de compras, y que se
muestran al final
Cambia tu programa para que incluya cada item_number en las correspondientes preguntas al
usuario sobre los artículos de la compra
item = input("what is item number " + str(item_number) + "? ")
Ejecute su programa para que pueda ver esto mostrando cada item_number
Reflexiona: Asegúrate de que puedes explicar con tus propias palabras lo que hace cada línea
de código aquí. Puedes repasar en papel lo que ocurre en el programa, asegurándote de
aumentar item_number en cada iteración del bucle for.
Por el momento, tu programa sólo recogerá cinco artículos de la compra. ¿Qué pasa si tienes
más artículos, o menos? En el siguiente paso cambiarás el programa para que empiece
preguntando al usuario cuántos artículos de compra necesita, y utilice ese número en el bucle
for.
La variable how_many será una cadena, así que usa int para convertirla en un entero
how_many = int(how_many)
Nota: En lugar de crear una nueva variable para mantener el número entero how_many,
llamada, por ejemplo, how_many_number, has convertido la variable how_many en ella
misma. Ya no necesitas la variable de cadena how_many, así que puedes sobrescribirla con
una variable entera.
Ahora cambia el bucle for para que la variable how_many sea utilizada por range
shopping = []
how_many = int(how_many)
shopping.append(item)
print(shopping
Una función es un bloque de código prefabricado que normalmente se utiliza para realizar una
única y pequeña tarea. Algunas funciones en Python requieren datos para actuar, que se pasan
como parámetros.
Por ejemplo
print("hello")
La función print requiere que pases los datos (la cadena "hola" en este caso) que quieres que
salgan en la pantalla.
A menudo puedes simplificar tus programas utilizando la salida de una función como entrada
de otra.
Si quiere imprimir en la pantalla lo que el usuario acaba de introducir, puede utilizar la salida
de input() como entrada de print():
En el último paso, viste cómo hacer un bucle un número determinado de veces y creaste un
programa que añadía artículos de la compra a una lista. Tu programa tenía el siguiente aspecto
shopping = []
how_many = int(how_many)
shopping.append(item)
print(shopping)
Vas a cambiar el código anterior para encadenar funciones, y así reducir el número de líneas
de código en el programa.
how_many = int(how_many)
La primera línea hace una pregunta al usuario y recoge los datos de entrada. La función input()
devuelve los datos que el usuario introduce; se almacenan en la variable how_many.
En la siguiente línea, el programa toma el valor de la variable how_many y crea un nuevo
entero a partir de él, que sustituye al valor contenido en la variable how_many.
Cuando el programa se ejecute, el usuario no verá ninguna diferencia, pero el programa está
ahora tomando la salida de la función input() y utilizándola como entrada de la función int().
Hay otro caso en el que se puede utilizar la salida de una función como entrada de otra. Es en
el bucle for, donde se introduce cada elemento y luego se añade a la lista.
shopping.append(item)
La función input() devuelve un valor a nuestro programa principal, y luego el programa pasa
inmediatamente este valor a la función shopping.append().
Python ejecutará primero la función más interna, por lo que input() hará la pregunta y luego
tomará la entrada del usuario. Lo que se introduzca se añadirá al final de la lista de la compra.
Problemas potenciales
Encadenar funciones reduce la cantidad de código que necesitas, pero debes pensar
cuidadosamente antes de hacerlo, ya que puede tener algunas consecuencias no deseadas.
Piensa en el primer ejemplo, en el que convertiste la entrada del usuario en un número entero
directamente.
Esto está bien en muchas circunstancias, pero encadenar las funciones int() y input() significa
que no tiene la oportunidad de comprobar si el número introducido es realmente un número
antes de convertirlo en un entero.
Desafío
Revisa algunos de los otros programas que has escrito en este curso hasta ahora. Intenta
encontrar otros casos en los que puedas encadenar funciones. Comparte tus ideas y ejemplos
en los comentarios.
Nota: El código en los comentarios debe estar encerrado entre caracteres de tilde (~~~) - tres
tildes antes y después del código. Consulte nuestra guía "Compartir código en FutureLearn"
para obtener más información.
Nota: El código en los comentarios debe estar encerrado entre caracteres de tilde (~~~) - tres
tildes antes y después del código. Consulte nuestra guía "Compartir código en FutureLearn"
para obtener más información.
Scratch
"Observamos los juegos en Scratch y los descomponemos para trabajar las estructuras
que intervienen en la creación de los juegos (variables, bucles, selección, etc.). A
menudo utilizamos actividades no conectadas para demostrar el concepto. Una vez
que están contentos de haber entendido el principio, nos fijamos en el "lenguaje" que
supone Python. Insisto en que es más importante entender el concepto que el lenguaje.
El lenguaje se puede aprender o buscar, pero la comprensión del concepto no".
PRIMM
"Utilizo el enfoque PRIMM defendido por Sue Sentance y otros. Predecir, luego
ejecutar".
Dave Hartley
Estas etapas se utilizan en la planificación de las clases y las actividades, y están diseñadas para
apoyar a los alumnos en todas las etapas del aprendizaje de la programación en la escuela, no
sólo a los principiantes.
Puedes encontrar más información en la lectura rápida del NCCE sobre PRIMM y puedes
encontrar recursos didácticos que utilizan PRIMM en el plan de estudios de Teach Computing.
¿Cómo vas a desarrollar las habilidades de lectura de código de tus alumnos? Danos tu consejo
en los comentarios.
Orientaciones para reducir y controla la glucosa
Come: Carne, pescado, huevos, verduras que crecen en la superficie y grasas naturales
(como mantequilla). Fiambres, aceitunas, vino, queso crema, mayonesa, mostaza
Evita: Alimentos con azúcar o almidonados (como pan, pasta, arroz, porotos, maíz y
papas) Cerveza, batata
3. Incrementa tu ingesta de fibra
Los alimentos que son altos en fibra incluyen vegetales, frutas, legumbres y granos integrales.
Controlar las porciones ayuda a regular la ingesta de calorías y puede ocasionar pérdida de
peso.
Los alimentos con un índice glucémico bajo incluyen los mariscos, carne, huevos, cereales,
cebada, frijoles, lentejas, legumbres, batatas, maíz, camotes, la mayoría de las frutas y
vegetales sin almidón.
Los alimentos ricos en cromo incluyen la yema de los huevos, productos de granos enteros,
cereales altos en salvado, café, nueces, arvejas, brócoli y carne.
Los alimentos ricos en magnesio incluyen hojas verde oscuro, granos enteros, pescado,
chocolate oscuro, bananas, aguacates y frijoles.
Una dosis efectiva es 1–6 gramos de canela al día, o aproximadamente 0.5–2 cucharaditas.
La berberina es un componente activo de una hierba china que se ha utilizado para tratar la
diabetes durante miles de años.
Es más, la berberina puede ser tan efectiva como algunos medicamentos para reducir el azúcar
en la sangre. Esto la hace uno de los suplementos más efectivos para aquellas personas con
diabetes o prediabetes.
Un protocolo de dosis común para la berberina es 1,500 mg al día, tomado antes de las
comidas en 3 dosis de 500 mg.
Las semillas de fenogreco son una gran fuente de fibra soluble, lo cual puede ayudar a
controlar los niveles de azúcar en la sangre.
1.- Carnes y proteínas Carnes como :Ternera, lomo, pollo, cordero, cabra, vísceras,
beicon y huevos
2.- Pescados y mariscos Atún, salmón, caballa, bacalao, bagre, ostras, gamba, langosta,
mejillones, almejas, cangrejo, pulpo, calamares.
3.- Grasas y aceites. Mantequilla, mantequilla clarificada, aceite de oliva, aceite de
coco, aguacate
4.- Verduras bajas en carbohidratos. Kale, lechuga, espinacas, espárragos, coliflor,
brócoli, acelga. apio, rábano, pepino, envidia, cebollino( cebollin o ciboulette )
5.- Lácteos altos en grasas: queso parmesano, queso feta, queso suizo, queso azul,
mozzarella, queso crema, queso fresco, queso monterrey, nata para montar,
mayonesa
7.- Fruta baja en azúcares: Procura solo consumir frutos rojos (Fresas, frambuesas,
cerezas, moras, arándanos).
La dieta para la diabetes: los mejores alimentos para controlar la diabetes
Qué comer
- Proteínas
Carnes de todo tipo: Carne molida de res (vaca), bistec, carne asada, costillas, chuletas de
cerdo, salchichas, tocino, asado de cerdo, pollo, pavo
Mariscos de todo tipo: pescado, camarones, vieiras, ostras, almejas, mejillones, cangrejo,
langosta
Huevos
Yogur griego, queso ricotta, o queso cottage (media taza como máximo)
Mantequilla, ghee
Grasas naturales
Aceites naturales (aceite de oliva, aceite de coco, aceite de aguacate, aceites de nueces de
todos los tipos)
Manteca de cerdo
- Vegetales
Aceitunas
Aguacate (palta)
Ajo
Alcachofa
Apio (célery)
Berenjena
Bok choy
Brócoli
Broccolini
Brotes
Cebollíno (ciboulette)
Coles de Bruselas
Coliflor
Colirrábano
Endivias
Escalonia (echalote)
Escarola (achicoria)
Espárragos
Espinaca
Hinojo
Lechuga
Palmitos
Pepinos y pepinillos
Perejil
Quimbonbó (abelmosco)
Rábanos
Repollo
Rúcula
Ruibarbo
Tomates
Zapallos (verano)
Zucchini (calabacín)
Bayas frutos del bosque) – media taza por día como máximo
oras
Frambuesas
Fresas (frutillas)
- Frutos secos – con límite para aquellas personas que busquen bajar de peso
Almendras
Avellanas
Maní
Nueces
Nueces de Brasil
Nueces de Macadamia
Pecanas
Semillas
Chia
Lino (linaza)
Semillas de cáñamo
Semillas de calabaza
Semillas de girasol
- Condimentos
Salsa picante
- Bebidas
Café
Té
Caldo
Vino seco (límite de 1 copa por día, consumida con la comida)