2021 Curso Phyton para Educadores

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 113

Programming 101: An Introduction to Python for Educators

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.

Esta semana vas a:

 Aprenderás conceptos de programación y escribirás tus primeras líneas de código en el


lenguaje de programación Python
 Recogerás las reglas básicas y aprenderás a evitar los errores más comunes
 Empezarás a trabajar en la creación de un útil bot, que desarrollarás en las próximas
semanas

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.

Empieza compartiendo lo que te entusiasma aprender en el cuadro de comentarios de abajo.

Estoy deseando ver cómo escribes tu primer programa.

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

Plan de estudios de enseñanza de la informática

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.

Año 7 - Fundamentos de la programación en Scratch.

Parte 1.

Parte 2.

Introducción a la programación en Python.

Año 8 - Desarrollo de aplicaciones móviles.

Year 9 - Computación física.

KS4 - Algoritmos

Parte 1.

KS4 - Programación

Parte 1.

Parte 2.

Parte 3.

El plan de estudios Teach Computing contiene planes de lecciones, diapositivas, hojas de


trabajo, deberes y actividades de evaluación para enseñar informática a niños de entre 5 y 16
años

Todo el contenido es de acceso totalmente gratuito y ha sido creado por expertos en la


materia, basándose en las últimas investigaciones pedagógicas y en los comentarios de los
profesores. Ofrece un innovador marco de progresión en el que los contenidos informáticos
(conceptos, conocimientos, habilidades y objetivos) se han organizado en redes
interconectadas denominadas gráficos de aprendizaje.

Uso del contenido del curso

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.

1.2 Conoce al equipo y a tus compañeros


Antes de comenzar tu curso, nos gustaría aprovechar esta oportunidad para presentarte al
equipo de la Fundación Raspberry Pi.

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.

Estas son algunas de las cosas que ofrecemos actualmente:

 Más cursos de formación en línea como éste


 El plan de estudios Teach Computing, cientos de horas de recursos de lecciones de alta
calidad, revisados por pares y escritos por profesores experimentados Isaac Computer
Science es una plataforma de aprendizaje gratuita para estudiantes y profesores de
informática.
 Apoyo para organizar Code Clubs en las escuelas y clubes de informática CoderDojo en
su comunidad.
 Concursos para inspirar a los jóvenes en la informática, como Coolest Projects, un
escaparate tecnológico para jóvenes, y Astro Pi, que ofrece a los jóvenes la
oportunidad de hacer funcionar su código en la Estación Espacial Internacional
Tutoriales de informática divertidos y atractivos
Conoce al equipo de tu curso

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

La mejor manera de aprender es colaborando con otras personas increíbles.

Teniendo esto en cuenta, preséntese a sus compañeros comentando al final de la página.

Piensa en responder a estas preguntas:

 ¿Qué te ha llevado a hacer el curso?


 ¿Qué esperas aprender?
 ¿Qué medidas vas a tomar para asegurarte de que vas a completar el curso, por
ejemplo, reservando un tiempo de "no molestar" en tu horario cada semana, o
invitando a un colega a realizarlo contigo?

También puedes responder a tus compañeros en la sección de comentarios. Juntos


construiremos una comunidad de educadores que comparten ideas y se inspiran mutuamente
para aprender en el camino.

1.3 ¿Qué es la programación?


Hay innumerables definiciones de lo que es la programación informática, pero la que yo uso
es:
"La programación es la forma de conseguir que los ordenadores resuelvan problemas".

Aquí hay dos frases clave que son importantes:

 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á

1. se giraría y miraría hacia el acantilado

2. caminaría hacia el acantilado

3. se detendría en el borde del acantilado

4. saltaría por el acantilado

Para evitar que los ordenadores se caigan constantemente por el acantilado, también pueden
tomar decisiones sobre qué hacer a continuación:

Si no voy a sobrevivir a la caída, no saltes por el acantilado

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í

2a. pie izquierdo adelante

2b. pie derecho hacia delante

2c. volver a 2a

Estos tres conceptos son las estructuras lógicas básicas de la programación informática:

 Secuencia: ejecución de instrucciones en orden


 Selección: hacer elecciones
 Repetición: hacer lo mismo más de una vez, también llamado iteración

Si a estos conceptos se les añade la capacidad de manejar entradas y salidas y de almacenar


datos, se obtienen las herramientas necesarias para resolver la mayoría de los problemas
informáticos.

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":

print("Hello and welcome.")

name = input("Whats your name?")

if name == "Martin":

print("Thats my name too!")

print("Hi " + name)

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.

Un editor, un intérprete y otras herramientas útiles (por ejemplo, un explorador de archivos) a


menudo se agrupan en un entorno de desarrollo integrado (IDE). Los IDE facilitan la creación
de programas.

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.

Hay tres áreas clave en los IDEs Mu y Trinket:

 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

Se puede acceder a Trinket a través de cualquier navegador web moderno en trinket.io.

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

1.5 Escribe tu primer programa en Python


El comienzo de toda nueva experiencia de programación es crear un programa "Hola mundo".
Es uno de los programas más simples que puedes crear, y pondrá el mensaje "hola mundo" en
la pantalla.

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

Este es un video adicional, alojado en YouTube.

Cree un nuevo programa en Mu haciendo clic en el icono Nuevo

Escribe el siguiente código en el editor:

print("hola mundo")

Haga clic en Guardar para guardar el programa

Introduzca el nombre del archivo helloworld y haga clic en el botón Guardar


Haga clic en Ejecutar para ejecutar el programa

El mensaje "hola mundo" debería aparecer en el REPL.


Cualquier error en su programa aparecerá en el REPL con una descripción.

Si obtiene un error, revise el código cuidadosamente para asegurarse de que todo es correcto.

Hay algunos puntos importantes que pueden ayudarle si experimenta un error:

 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

Este es un vídeo adicional, alojado en YouTube.

Regístrese en Trinket y acceda a su cuenta

Crea un nuevo proyecto Python haciendo clic en Nuevo Trinket > Python

El sitio web de Trinket, con Usuario>Nuevo Trinket>Python seleccionado

Escribe el siguiente código en el editor:

print("hola mundo")

Guarda tu proyecto dándole el nombre "helloworld" y haciendo clic en Guardar

Una página web de trinket, con el nombre de archivo "helloworld" y el botón "Save" resaltado

Haz clic en el icono Ejecutar para ejecutar tu programa

El mensaje "hello world" debería aparecer en el REPL.


Cualquier error en su programa aparecerá en un cuadro rojo con una descripción en la parte
inferior de la pantalla.
Una página web de trinket con la línea de texto "Print("hola mundo")" resaltada en rojo, con
un cuadro rojo debajo del editor que dice "NameError: 'Print' no está definido en la línea 1 en
main.py"

Si obtienes un error, revisa el código cuidadosamente para asegurarte de que todo es correcto.

Hay algunos puntos importantes que pueden ayudarte si experimentas un error:

 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

1.7 Cambiar la salida


Dos características principales de un ordenador son que puede manejar la entrada y la salida.
Ya has aprendido a crear una salida utilizando la impresión para poner un mensaje en la
pantalla.

En esta actividad:

 Continuar explorando el uso de print para dar salida a un texto en la pantalla


 Utilizar variables para almacenar información en tu programa
 Aprenderás a utilizar el input para obtener texto del usuario
Mostrar "hola mundo" en la pantalla no es una forma muy típica de presentarse, así que debes
cambiar el programa para que diga "Hola" en lugar de "hola mundo" cuando se inicie.

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.

 Cambia la instrucción print("hola mundo") en tu programa para mostrar "Hola":

print("Hi")

 Ejecute el programa haciendo clic en Ejecutar

El mensaje "Hi" debería aparecer ahora en el REPL.

Para añadir más mensajes, puede utilizar instrucciones de impresión adicionales en las líneas
siguientes diciendo otras cosas.

 Añade un segundo mensaje a tu programa:

print("Hi")

print("I am a computer program")

 Ejecuta el programa para ver tu segundo mensaje.

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

Observe cómo los mensajes se muestran en este orden:

Hi

I am a computer program

Esto representa un concepto importante en la programación informática: la secuenciación. Se


garantiza que los mensajes aparezcan siempre en este orden, ya que el ordenador ejecuta
cada una de estas instrucciones en el orden indicado y de una en una.
1.8 Variables
Las variables son una forma de almacenar piezas de datos en tu programa. Cuando creas una
variable, un área de la memoria del ordenador se reserva para ti y los datos se almacenan en
ella. Esta área de memoria es ahora controlada por ti: puedes recuperar datos de ella,
cambiarlos o deshacerte de ellos.

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

my_variable = "some useful data"

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

Consejo: Un problema común es poner el nombre de la variable dentro de las marcas de


discurso, por ejemplo, print("mi_nombre"). (¿Qué hará esto? Si no estás seguro, ¡pruébalo!)

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:

print("My name is " + my_name)

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!)

1.9 Examen Salida de texto


¿Cuál de las siguientes líneas es correcta?

Print(“hello world”)

print(“hello world”) (x)

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 (x)

variable my_message = “bye”

my_message(“bye”)
Pregunta 3

¿Cuál de las siguientes opciones concatena el texto?

concatenate(“some text”, “more text”)

“some text” + “more text” (x)

“some text” = “more text”

some text + more text

1.10 Obtención de información del usuario


Hasta ahora sólo has utilizado la impresión para dar salida al texto; tu programa carece
actualmente de la capacidad de interactuar con el usuario.

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:

users_name = input("What is your name? ")

Desglosando esta línea de código puedes ver lo que hace cada elemento:

users_name = crea una variable llamada users_name y le asigna un valor

input() utiliza la función input para mostrar una pregunta y capturar la respuesta del
usuario

"¿Cuál es su nombre? " - el valor entre el () - es el prompt que se mostrará en la pantalla

Ahora el texto que el usuario ha introducido se almacena en una variable


(nombre_de_usuario) y puedes utilizar los datos en tu programa.
 Utilicemos print para obtener el nombre del usuario.

print(users_name)

 Mejora la salida añadiendo algo de texto al principio y al final del mensaje

print("Hello " + users_name + ", welcome.")

 Coge a un amigo, ejecuta tu programa y pídele que introduzca su nombre

Nota: Debes introducir tu nombre en el REPL después de la pregunta "¿Cuál es tu nombre?" y


pulsar Enter cuando lo hayas hecho.

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.

Repasemos algunas de las reglas sintácticas de esta línea de código:

users_name = input("What is your name? ")

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.

Si ejecutara el siguiente código, se le presentaría un error (también a continuación):

users name = input("What is your name? ")

SyntaxError: invalid syntax


Python te está diciendo que has roto las reglas y que necesitas arreglar el problema, de lo
contrario tu programa no podrá ejecutarse.

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.

users_name = input "What is your name? "

SyntaxError: invalid syntax


Hay muchas reglas que gobiernan la sintaxis y una comprensión profunda viene con la práctica
y la experiencia, pero los fundamentos son fáciles de entender y serán introducidos a lo largo
de este curso.

Consejo: Cuando se presente un SyntaxError, utilice el mensaje de error para encontrar la


posición aproximada del error. Puede ser la línea anterior o posterior a la mostrada. Sea crítico
con su propio código o haga que otra persona lo revise por usted.

1,12 Imprime e introduce las instrucciones con tus alumnos


¿Qué otras actividades podrías crear sólo con las instrucciones de impresión e introducción?

Añade un comentario describiendo tus ideas de actividades y obtén inspiración de otros.

Caso de estudio: remezcla de código

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:

"Tengo una serie de "hackpacks" que utilizo en la enseñanza de la codificación de Minecraft en


Python, basados principalmente en el libro de O'Hanlon y Whale. Imprimo los "hackpacks" y
los alumnos deben teclear el código. Después de cada programa, les asigno lo que llamo un
"reverso", que es un reto para cambiar ese código a algo ligeramente diferente. Creo
firmemente que deben teclear el código para aprenderlo realmente. Copiar y pegar es útil
cuando se avanza mucho".

 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 Nuevo para crear un nuevo programa

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.

 Añade el código a tu programa para imprimir un mensaje de bienvenida

print("Hi, I am Marvin, your personal bot.")

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]".

Comparte el código de tu nuevo programa en los comentarios.

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:

He creado este programa.

I created this program.

~~~

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:

- El primer número que introduce el usuario


- El segundo número
- El resultado de la suma del primer y segundo número
 Añade código para pedir los dos números y almacenarlos en variables, añadiendo el
siguiente código al final de tu programa:

print("lets add some numbers")

input1 = input("Number 1> ")

input2 = input("Number 2> ")

 Crea una nueva variable para almacenar la suma de los dos números introducidos

result = input1 + input2

 Imprime la variable resultado en la pantalla

print(result)

 Tu código completo debería ser así

print("Hi, I am Marvin, your personal bot.")

print("lets add some numbers")

input1 = input("Number 1> ")

input2 = input("Number 2> ")

result = input1 + input2

print(result)
 Ejecute su programa, introduzca dos números y vea cuál es el resultado

El resultado puede no ser el que esperabas. Si introduces 1 y 2, obtienes el resultado 12 y no 3.

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.

1.15 Texto y números


En el paso anterior no has obtenido el resultado que esperabas porque input almacena texto
en la variable input1, en lugar de un número.

input1 = input("Number 1> ")

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

input1 = input("Number 1> ")

input2 = input("Number 2> ")

 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

result = number1 + number2

Tu código completo debería tener ahora el siguiente aspecto

print("Hi, I am Marvin, your personal bot.")

print("lets add some numbers")

input1 = input("Number 1> ")

input2 = input("Number 2> ")

number1 = int(input1)

number2 = int(input2)

result = number1 + number2

print(result)

 Ejecuta tu programa; ahora deberías obtener el resultado correcto


De momento la salida del resultado es muy básica. Usando la concatenación de cadenas,
podemos mejorar el resultado para que se vea así 1 + 2 = 3.

 Puedes probar esta línea, para sustituir la instrucción print(resultado):

print(input1 + " + " + input2 + " = " + result)

 Ahora ejecuta de nuevo tu programa... oh, vaya, el cambio ha dado lugar a un error:

print(input1 + " + " + input2 + " = " + result)

TypeError: must be str, not int


El mensaje de error TypeError: must be str, not int le está diciendo que no puede concatenar
un int (entero) a un str (cadena).

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.

 Después del código donde se calcula el resultado:

result = number1 + number2

 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í

result = number1 + number2

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)

 Ejecute su programa y pruébelo para ver si ahora obtiene el resultado correcto

Otros tipos de datos

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

 Sumar tres números


 Restar números
 Calcular el área de un cuadrado (por ejemplo, si un cuadrado tiene lados de longitud 5,
el área sería 52 = 5 por 5 = 25)
 cualquier otra cosa que se te ocurra

Comparte tus nuevos programas en los comentarios.

Recuerda utilizar tres caracteres de tilde (~~~) al principio y al final de tu código, como en este
ejemplo de texto de comentario:

I created this program.


~~~

print("This is my code")

~~~

Consulte nuestra guía "Compartir código en FutureLearn" para obtener más información.

1.16 Preguntas sobre tipos de datos


Pregunta 1

Elige todos los valores enteros de esta lista: Selecciona todas las respuestas que consideres
correctas.

1011001 (x)

one

12 (x)

7.8

Pregunta 2

¿Qué tipo de datos se utilizaría para almacenar estos datos? A1.8 ?

Cadena (X)

entero

float

booleano

Pregunta 3

¿Cómo se puede convertir (cast) una variable de cadena en un número entero?

mi_integro = str(mi_cadena)

mi_integro = int(mi_cadena) (x)

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.

Te has familiarizado con el IDE, has editado el código y lo has ejecutado.

Has aprendido a mostrar la pantalla, a recibir entradas del usuario, a crear variables y a
convertirlas en diferentes tipos de datos.

Has aprendido los siguientes conceptos nuevos:

 Funciones: print y input son ejemplos de funciones, programas prefabricados que


normalmente se crean para realizar una única tarea: por ejemplo, en el caso de print,
es poner un texto en la pantalla; Python tiene muchas funciones incorporadas que
permiten realizar una gran variedad de tareas
 Parámetros: la información que se da a una función entre paréntesis, por ejemplo, "Hi"
en print("Hi")
 Variable: un dato que se puede utilizar en el programa
 Cadena: variables de texto
 Entero: variables de números enteros
 Operador: sólo hemos utilizado dos, = y +.

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

 Secuencia: describe el código que se ejecuta línea a línea en orden.


 Función: fragmento de código autónomo que realiza una tarea específica.
 Parámetro: datos que se pasan a una función.
 Código: las instrucciones de un programa.
 Variable: valor almacenado en el programa al que se hace referencia mediante un
nombre.
 Tipo de datos: definición del tipo de datos almacenados en una variable (cadena,
entero)
 Cadena: un valor basado en texto
 Entero: un número entero
 Error: un problema de un programa que no se comporta como es debido.
 Depuración: proceso de búsqueda y resolución de errores.
 IDE: entorno de desarrollo integrado
 Concatenación: adición de texto
 Sintaxis: la estructura o disposición correcta del código

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:

 ¿Está lloviendo? Si es así, usa un paraguas.


 ¿Estoy en llamas? Si es así, apaga las llamas.
 ¿Puedo saltar con seguridad por el acantilado? Si no es así, ¡quédate donde estás!

La elección en un programa informático se conoce como selección, y consiste en averiguar si


algo es verdadero o falso. Si es verdadero, se realiza una acción; si es falso, no se realiza (y
quizás se realiza una acción diferente).

"¿La altura del acantilado es menor que la altura a la que puedo caer?"

 Verdadero: salta, estarás bien


 Falso: no saltes

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.

Un GIF animado de un robot haciendo preguntas y respondiendo verdadero o falso. ¿Está


lloviendo? Usa un paraguas. ¿Estoy ardiendo? Apaga las llamas. Si no sobrevivo a la caída, ¡no
saltes al vacío!
Por ejemplo:

¿Está lloviendo? Si es así, usa un paraguas.

¿Estoy en llamas? Si es así, apaga las llamas.

¿Puedo saltar con seguridad por el acantilado? Si no es así, ¡quédate donde estás!

La elección en un programa informático se conoce como selección, y consiste en averiguar si


algo es verdadero o falso. Si es verdadero, se realiza una acción; si es falso, no se realiza (y
quizás se realiza una acción diferente).

"¿La altura del acantilado es menor que la altura a la que puedo caer?"

Verdadero: salta, estarás bien

Falso: no saltes

2.3 Prueba tu aprendizaje


Pregunta 1

2 == 1

True

False (x)

Pregunta 2

231 > 212

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:

"Si esta afirmación es verdadera, entonces ejecutaré este código".

Esto se conoce como selección. Su trabajo como programador es proporcionar:

 La declaración que será evaluada como verdadera o falsa, y


 El código que se ejecutará si la declaración es verdadera

La instrucción se conoce como if-then y es una de las estructuras más utilizadas en


programación. Existe una versión del if-then en todos los lenguajes de programación de
propósito general.

La sintaxis de un if-then en Python es la siguiente

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").

Un diagrama de flujo de este if, then tendría el siguiente aspecto:


Pongamos esto en práctica creando un programa sencillo que te responda cuando escribas
ciertas frases. Por ejemplo, si dices "hola" te dirá "hola".

Mu

Si estás usando Mu, sigue estas instrucciones para crear un nuevo programa:

Haga clic en el icono Nuevo para crear un nuevo programa

Haz clic en Guardar y dale el nombre de archivo ifs.py


Trinket

Si estás usando Trinket, sigue estas instrucciones para crear un nuevo programa:

 Cree un nuevo proyecto Python haciendo clic en New Trinket, Python

 Guarda tu proyecto dándole el nombre "ifs" y haciendo clic en Guardar


Cree una sentencia if

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

phrase = input("Talk to me > ")

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.

Indicado debajo de su declaración if, añada el código para imprimir "hola"

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.

 Añade una sentencia print al final de tu programa:

print("bye")

Nota: NO hay sangría antes de print("bye").

Tu programa debería tener ahora este aspecto.

phrase = input("Talk to me > ")

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.

2.5 Si no es esto, haz esto


En el paso anterior aprendiste a utilizar una sentencia if-then para permitir que tu ordenador
realice una acción cuando una sentencia sea verdadera. A menudo es realmente útil tomar una
acción diferente si la declaración es falsa.
Esto se hace usando una sentencia if-then-else, que funciona así:

"Si esta declaración es verdadera, entonces ejecutaré este código, si no, ejecutaré este
otro código".

La sintaxis de un if-then-else en Python es la siguiente

if statement == True:

print("do this")

else:

print("do the other")

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

- Después del código print("hola") añade un else y un print sangrado bajo el


else, así

else:

print("sorry I dont understand this")

Su código completo debería ser así:

phrase = input("Talk to me > ")

if phrase == "hi":

print("hello")

else:

print("sorry I dont understand this")

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.

 Ejecuta tu programa y comprueba que obtienes los resultados que esperas


2.6 identación
Python y la sangría son como hermanos que siempre se pelean. Se quieren porque están muy
emparentados, pero siempre se causan problemas mutuamente.

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:

 Por qué la indentación es tan importante en Python


 Cómo funciona y cómo crear sangrías
 Algunos consejos para evitar problemas

La indentación es importante en Python porque es la forma de determinar el ámbito. El


alcance es la forma en que Python sabe qué código pertenece a qué parte del programa.

¿Identar?

Recapitulemos mirando un poco de código que ya has creado:

phrase = input("Talk to me > ")

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")

print("this is also part of the if's scope")

print("not part of the if's scope")

Mira el programa de abajo, donde hay otra sangría, después del else, antes de print("sorry I
dont understand this").

phrase = input("Talk to me > ")

if phrase == "hi":

print("hello")

else:

print("sorry I dont understand this")

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:

print("sorry I dont understand this")


El print("bye") final no está indentado bajo el if o el else, así que no es parte del if o del else.
Esto tiene sentido ya que quieres que esta línea se ejecute sin importar la frase que el usuario
haya introducido.

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

Aunque la tecla de tabulación insertará una sangría, Mu y Trinket no insertan un carácter de


tabulación real para la sangría: como la mayoría de los editores de código, utilizarán espacios.
Si estás usando Mu, notarás que Mu crea cuatro espacios para una sangría, mientras que si
estás usando Trinket, sólo usa dos espacios. Sin embargo, la mayoría de las veces no necesitas
preocuparte por esto; todo lo que necesitas hacer es presionar el tabulador.
Zoom en el editor en Mu, con la sangría después de una declaración 'else' resaltada con una
caja roja, y etiquetada como '4 espacios'

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

phrase = input("Talk to me > ")

if phrase == "hi":

print("hello")

print("how are you?")

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.

Nota: Todo lo que Python requiere es que seas consistente.

Consejos para la indentación

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.

2.7 Si no es eso, ¿es esto?

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.

La sintaxis de un else if en Python, que se abrevia como elif, es la siguiente

if statement == 1:

print("do this")

elif statement == 2:

print("do something else")

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

 Después del código print("Hola"), usa un elif e imprime un nombre

elif phrase == "whats your name":

print("Marvin")

El código completo debería ser así:

phrase = input("Talk to me > ")

if phrase == "hi":

print("hello")

elif phrase == "whats your name":

print("Marvin")

else:

print("sorry I don't understand this")


print("bye")

Ejecuta tu programa y comprueba que tu elif funciona

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:

Lo siento, no entiendo esto

incluya la frase que has introducido?

Por ejemplo, si introdujeras "qué eres", el programa respondería con

Lo siento, no entiendo "qué eres".

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:

Trabajar con los compañeros

"Siempre tengo a los alumnos en parejas (o en una mesa de 3) aunque no estén


programando en parejas. Creo que es importante que los alumnos aprendan a pedir
ayuda y a prestarla. Esto tiene que ser una norma de la clase, sea cual sea la clase".

Laurel Bleich, ex profesora de escuela

"Hablar del problema con otra persona (real o de la variedad lego/pato de plástico)
también ayuda".

Jo Wakefield, profesora de secundaria

"Fomento las colaboraciones, y los alumnos tienen "compañeros de codo": otros


estudiantes a su alrededor en los que pueden confiar y hacer preguntas."

Joe Mazzone, profesor de secundaria

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

Beverley McCormick, profesora de primaria

Hablar en voz alta

"Hago que los alumnos lean su código y expliquen qué hace cada paso".

Beverley McCormick, profesora de primaria

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

Joe Mazzone, profesor de secundaria

Tener una lista de estrategias o errores comunes


"Tenemos una lista de comprobación de errores comunes en los que deben fijarse
primero: corchetes, marcas de cierre de discurso, mayúsculas, etc., lo que capta
muchos primero".

Jo Wakefield, profesora de secundaria

"Tengo una lista en mi pizarra de estrategias para desatascarse: 'Pregunta a 3 B4 me',


'Los mensajes de error son tus amigos', 'Usa otro par de ojos', 'Tómate un tiempo y
PIENSA', 'Suele ser ortografía o puntuación'... y si todo lo demás falla, ve a por un trago
de agua y vuelve caminando lentamente".

Bob Irving, profesor de 5º a 8º grado

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

Laurel Bleich, ex profesora de escuela

¿Qué piensas hacer para ayudar a tus alumnos a desatascarse? Comparte los consejos que
tengas en los comentarios.

2.10 Esto "y" aquello "o" lo otro


Hasta ahora sólo se hacían pruebas simples cuando se evaluaba una frase, por ejemplo

phrase == "hi"

Utilizando and y or, puede construir evaluaciones compuestas que comprueben varias
sentencias, por ejemplo

phrase == "hi" and name == "Marvin"

phrase == "hi" or phrase == "hey"


Veamos este ejemplo:

phrase == "hi" and name == "Marvin"

1 Python evaluará ambas frases antes y después de la y:

 frase == "hola" = Verdadero / Falso


 nombre == "Marvin" = Verdadero / Falso

2 Python aplicará una lógica y a las evaluaciones:

 Si la frase 1 es Verdadera y
 la frase 2 es Verdadera
 Entonces toda la declaración es Verdadera
 En caso contrario es Falso

Es similar para esta declaración

phrase == "hi" or phrase == "hey"

1. Python evaluará ambas afirmaciones antes y después de la or:


 frase == "hi" = Verdadero / Falso
 frase == "hey" = Verdadero / Falso
2. Python aplicará una or lógica a las evaluaciones:
 Si la frase 1 es Verdadera o
 La frase 2 es Verdadera o
 Ambas son Verdaderas
 Entonces toda la frase es Verdadera

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

 Cambia la primera sentencia if de tu programa if phrase == "hi": por

 if phrase == "hi" or phrase == "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"

Cambia tu programa para que pruebe "cuál es tu nombre" o "cuál es tu nombre"

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

Cómo mejorar tu bot


2.12 Incorporación de comandos a tu bot
Ahora que has aprendido a utilizar la selección, puedes utilizar estas habilidades para mejorar
el bot que creaste la semana pasada para que pueda ayudarte a hacer más cosas.

De momento, tu bot sólo sirve para sumar números. Vamos a cambiarlo para que también
pueda restar números.

Tendrás que añadir el código para:

 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)

Abrir el programa del robot

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

 Puede que tu "bot.py" siga abierto en otra pestaña; si es así, ábrelo


 Si no es así, haz clic en Cargar, y selecciona el archivo "bot.py"

Trinket

 Haz clic en tu perfil y selecciona "Mis baratijas".


Selecciona "bot".

Añade un comando "add" (añadir)


 Añade el código para obtener un comando de tu usuario bajo la primera sentencia de
impresión (donde el bot dice Hola, soy Marvin, tu bot personal)

command = input("How can I help? ")

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"

print("Hi, I am Marvin, your personal bot.")

command = input("How can I help? ")

if command == "add":

print("lets add some numbers")

input1 = input("Number 1> ")

input2 = input("Number 2> ")

number1 = int(input1)

number2 = int(input2)

result = number1 + number2

output = str(result)

print(input1 + " + " + input2 + " = " + output)

Sugerencia: Puedes sangrar varias líneas tanto en Mu como en Trinket seleccionándolas y


pulsando TAB.

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.

 Añade un elif al final de tu programa para comprobar si el comando es igual a "divide"

elif command == "divide":

Nota: El elif no tiene sangría y está en línea con el if.

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")

input1 = input("Number 1> ")

input2 = input("Number 2> ")

number1 = int(input1)

number2 = int(input2)

result = number1 / number2

output = str(result)

print(input1 + " / " + input2 + " = " + output)

Nota: El operador para dividir dos números es /.

Ejecuta tu programa y pruébalo

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.

Añade un else al final de tu programa para imprimir un mensaje si no entiende el comando

else:

print("sorry I dont understand")

Tu programa completo debería tener este aspecto:

print("Hi, I am Marvin, your personal bot.")

command = input("How can I help?")

if command == "add":

print("lets add some numbers")


input1 = input("Number 1>")

input2 = input("Number 2>")

number1 = int(input1)

number2 = int(input2)

result = number1 + number2

output = str(result)

print(input1 + " + " + input2 + " = " + output)

elif command == "divide":

print("let's divide some numbers")

input1 = input("Number 1>")

input2 = input("Number 2>")

number1 = int(input1)

number2 = int(input2)

result = number1 / number2

output = str(result)

print(input1 + " / " + input2 + " = " + output)

else:

print("sorry I dont understand")

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.

El tipo float se utiliza para almacenar números con decimales.

Una cadena se puede convertir en un flotador utilizando la función float(), por ejemplo

input1 = input("Enter a decimal number")

decimal_number1 = float(input1)

Si se pide al programa que divida 67 entre 7, el resultado será 67 / 7 = 9,571428571428571.

La función round() puede utilizarse para redondear un flotador a un número determinado de


posiciones. Toma dos parámetros: la variable float a redondear y el número de decimales,
separados por una coma.

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 = number1 / number2

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

Puedes añadir comentarios en cualquier parte de tu programa.

Normalmente, los comentarios son recordatorios de lo que hacen determinadas líneas o


secciones de código. Para los nuevos aprendices como tú, los comentarios son también una
herramienta útil para explicar lo que hacen los programas paso a paso.

# ask the user to enter their name

name = input("what is your name?")

# print a message including the name

print("Hello " + name)

En Python, puedes hacer que un comentario abarque varias líneas poniendo un # al principio
de cada línea.

# comments can span

# multiple lines

# if a hash character is placed


# at the start of each line

Añade algunos comentarios a tu programa bot para describir lo que hace.

2.15 Desafío
Tu reto es actualizar tu programa para que pueda

 Resolver problemas de sustracción o multiplicación cuando se le den los comandos


"restar" o "multiplicar"

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

Comparte tus experiencias, éxitos, fracasos y aprendizajes en los comentarios.

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.

Estudios de caso: propiedad

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.

Un proyecto final elegido por los alumnos es un método habitual:

"Adquieren propiedad cuando determinan la idea de su código. Por ejemplo, mi desafío


final de diseño de aplicaciones permite a los estudiantes crear una aplicación propia: su
idea y diseño. Los estudiantes se apropian enormemente de este proyecto porque es
exclusivamente suyo".

Joe Mazzone, profesor de escuela

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

Laurel Bleich, ex profesora de escuela


Otro profesor utiliza un método ligeramente diferente: ofrecer créditos por ir más allá de los
problemas que ha planteado.

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

Bob Irving, profesor de 5º a 8º grado

2.16 Resumen de la semana 2


Esta semana has aprendido a hacer que los ordenadores tomen decisiones utilizando if, then,
elif y else en Python.

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.

Aprendiste cómo sangrar el código, la importancia de la sangría en Python y cómo determina


el alcance.

Aprendiste los siguientes conceptos:

 Evaluación: determinar el valor de una expresión, por ejemplo, Verdadero o Falso


 Selección: permitir a los ordenadores hacer elecciones
 ==, !=, <, >: diferentes formas de comparar números en Python
 if, then, elif, else: hacer que el código se ejecute dependiendo de si una declaración es
verdadera o falsa
 and, or: aplicar operaciones lógicas a las condiciones
 Alcance: definir qué código pertenece a qué parte del programa
 Indentación: añadir espacios al principio de las líneas de código en Python para que se
entienda el alcance

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

 Condición: una expresión que será evaluada como verdadera o falsa


 Evaluación: determinar el valor de una expresión, por ejemplo, Verdadero o Falso
 Selección: uso de condiciones para elegir qué hacer a continuación
 if, then, else: herramienta para hacer que el código se ejecute dependiendo de si una
declaración es verdadera o falsa
 and, or: operadores lógicos que permiten combinar dos condiciones
 Alcance: definir qué código pertenece a qué parte del programa
 Indentación: añadir espacios al principio de las líneas de código en Python para que se
entienda el alcance
 Secuencia: describir el código que se ejecuta una línea a la vez en orden
 Función: una instrucción autónoma que realiza una tarea específica
 Parámetro: datos que se pasan a una función
 Código: las instrucciones que componen un programa
 Variable: valor almacenado en el programa al que se hace referencia mediante un
nombre
 Tipo de datos: el tipo de datos almacenados en una variable (por ejemplo, cadena,
entero)
 Cadena: un valor basado en texto
 Número entero: un número entero
 Error: un problema dentro de un programa.
 Depuración: proceso de búsqueda y resolución de errores.
 IDE: entorno de desarrollo integrado
 Concatenación: adición de fragmentos de texto
 Sintaxis: estructura o disposición correcta del código

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.

Abre la REPL (o consola en Trinket)


 Crea una variable de cadena llamada frase y asígnale el valor "hola", escribiendo lo
siguiente en el REPL y pulsando Enter

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

Consejo: Es un tema controvertido, pero la mayoría de los programadores informáticos están


de acuerdo en que los índices deben empezar por 0 y no por 1, así que es una buena idea
aceptar la idea de que los números empiezan por cero.

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]

Obtenga el primer carácter de su variable de cadena introduciendo esto en el REPL:

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

Obtenga el último carácter de su cadena utilizando el REPL

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]

Obtenga los tres caracteres centrales de la variable frase

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

Crea una lista de nombres usando el REPL

names = ["martin", "laura", "hitesh", "caitlyn", "renee"]

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").

 Añade un nuevo nombre al final de la lista de nombres

names.append("lauren")

 Comprueba que el nuevo nombre se ha añadido al final de la lista

names

 A continuación vamos a utilizar insert para poner un nuevo nombre en medio de la


lista, utilizando también el índice de donde insertar el nuevo nombre

names.insert(2, "dan")

 Comprueba que la variable names ha sido actualizada


Como último paso vamos a eliminar el nombre "martin" de la lista

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.

3.5 Poner a prueba tu aprendizaje


Pregunta 1

¿Cómo crea una lista?

mylist = 0

my_list = [] (x)
my_list = [None]

Pregunta 2

¿Cómo se recupera el primer elemento de una lista?

my_list(0)

my_list[0] (x)

my_list[1]

Pregunta 3

¿Cómo se agrega un elemento al final de la lista?

my_list.append("new item") (x)

my_list.add("new item")

my_list.insert("new item")

Pregunta 4

¿Cómo se recupera el 2do, 3er y 4to elemento de una lista?

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.

 Crea un nuevo programa y guárdalo como display_shopping

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.

shopping = ["bread", "cheese", "apple", "tomato", "biscuits"]

Los bucles for existen en la mayoría de los lenguajes de programación, y su propósito es


permitir que el código se ejecute un número determinado de veces - en nuestro caso, igual al
número de cosas en nuestra lista de compras.

La sintaxis de un bucle for en Python es la siguiente

for element in list:

print("do this")

 Utiliza un bucle for para imprimir cada uno de los elementos de tu lista de la compra

for item in shopping:

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.

 Primero crea la lista llamada shopping

shopping = ["bread", "cheese", "apple", "tomato", "biscuits"]

 Se introduce el bucle for; el primer elemento de la lista de la compra, "pan", se pone


en la variable item

for item in shopping:

se utiliza print para mostrar lo que hay en la variable item

print(item)

item contiene el valor "pan", por lo que se imprime "pan".

bread

El for se ejecuta de nuevo y el segundo elemento de la lista de la compra, "queso", se pone en


la variable item
for item in shopping:

 print se utiliza para mostrar lo que hay en la variable item

print(item)

 Esta vez, item contiene el valor "cheese", por lo que se imprime "cheese".

cheese

 El bucle for se ejecuta de nuevo y el tercer elemento, "manzana", se pone en la


variable item

for item in shopping:

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.

3.7 Tipos de error


En este paso te presentaré los principales tipos de error que encontrarás al programar.

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.

Los tipos de errores que verás

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.

La sintaxis en un programa es muy importante: si hay un solo error en tu programa, no se


ejecutará. Python encontrará los errores de sintaxis antes de ejecutar el trozo de 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

SyntaxError: EOL while scanning string literal

Algunas causas comunes de errores de sintaxis:

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

Los errores en tiempo de ejecución también se conocen como excepciones.

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)

ValueError: invalid literal for int() with base 10: 'two'


Las dos líneas de código anteriores se han introducido en el editor mu. Un mensaje de error
dice `ValueError: invalid literal for int() with base 10: "two"`.

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

if my_age > 13:

print("You are too young to have a FutureLearn account")


Una de las formas de evitar los errores lógicos es rastrear el código antes de ejecutarlo,
utilizando un bloc de notas para registrar los valores de las variables en cada etapa. También
puedes utilizar el depurador para recorrer el código y ver cómo cambian los valores de las
variables.

Identificar los errores

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

 Debajo de tu bucle for, añade 1 a la variable count

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

3. count + 1 se evalúa primero: el ordenador calcula el valor actual de count más 1.


4. A continuación, el ordenador establece el valor de count al resultado del paso 1.
5. count es ahora igual a lo que era antes, más 1.

Conceptualmente esto puede ser difícil de entender, pero es muy común en la programación
de ordenadores.

Ahora vamos a imprimir cuántos artículos hay en la lista de la compra.

 Al final de tu programa, sin sangrar bajo el for, imprime el valor de count

print(count)

Tu código completo debería ser similar a este:

shopping = ["bread", "cheese", "apple", "tomato", "biscuits"]

count = 0

for item in shopping:

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?

 Mejore el mensaje para que imprima "tiene X artículos en su lista de la compra",


insertando el valor de la variable de recuento

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)

3.9 Estudios de caso: Actividades "unplugged".


Las actividades no basadas en el ordenador, o desenchufadas, pueden ayudar a los alumnos a
entender un concepto antes de tocar un ordenador. He aquí algunas ideas de nuestros
educadores para utilizar actividades no conectadas.

La profesora de secundaria Jo Wakefield utiliza el atrezzo y sus dotes de actriz:


"Utilizamos actividades unplugged todo el tiempo. Representamos el código utilizando
trozos de papel, accesorios sencillos o haciendo el ridículo (otra vez) para que los
alumnos entiendan primero el concepto".

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.

No sólo utilizo los conceptos de programación para explicar las actividades no


conectadas. También nos ocupamos de los paquetes que viajan por la red haciendo
que los alumnos hagan un dibujo, lo rompan en cuatro trozos, etiqueten cada uno de
ellos y lo envíen a través de la red hasta el lugar deseado (otro alumno), que lo vuelve a
unir.

Me parece que si los alumnos entienden el concepto de forma sencilla -sin la


distracción de tener que codificar bien- pueden aplicar sus conocimientos mucho más
rápidamente. También parece que les ayuda a desglosar los problemas una vez que
llegamos a tareas más grandes; pueden identificar que este trozo es una secuencia,
esto es un bucle, esto es una selección, etc."

Jo Wakefield, profesora de secundaria

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

Laurel Bleich, ex maestra de escuela

La profesora de primaria Beverley McCormick también utiliza actividades de educación física


para ayudar a sus alumnos a entender parte del lenguaje utilizado en la informática:

"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'".

Beverley McCormick, profesora de primaria

¿Hay alguna actividad desenchufada que recomiendes? Compártelas en la sección de


comentarios.

3.10 Hacer un bucle un número determinado de veces


Poder ejecutar el mismo fragmento de código varias veces puede ser realmente útil. Digamos
que quieres capturar once nombres de un equipo de fútbol, o las longitudes de los lados de un
triángulo. Puedes hacerlo ajustando la forma de utilizar un bucle for.

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]

for number in numbers:

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.

Utilizando range podemos simplificar el programa de ejemplo anterior:

for number in range(5):

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.

 Crea un nuevo programa y guárdalo como crear_compras


 Crea una variable de lista vacía llamada shopping

shopping = []

 Añade un bucle for con un rango para hacer un bucle cinco veces

for item_number in range(5):

 Debajo del bucle for, utiliza el input para pedir al usuario algo que añadir a la lista de la
compra

item = input("what is the item? ")

 Aún bajo el bucle for, añade el artículo 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)

El programa completo de create_shopping debería ser similar a esto:

shopping = []

for item_number in range(5):

item = input("what is the item ? ")

shopping.append(item)

print(shopping)

Ejecuta tu programa y comprueba que puedes introducir cinco artículos de compras, y que se
muestran al final

En cada etapa, la variable item_number contendrá el número de veces que el programa ha


dado la vuelta al bucle for, empezando por 0 y llegando hasta 4. Hagamos esto más evidente.

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.

Añade al principio de tu programa una entrada para obtener el número de artículos de la


compra

how_many = input("how many items of shopping do you have? "

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

for item_number in range(how_many):

Ahora tu programa debería tener un aspecto similar al siguiente

shopping = []

how_many = input("how many items of shopping do you have? ")

how_many = int(how_many)

for item_number in range(how_many):

item = input("what is item number " + str(item_number) + "? ")

shopping.append(item)

print(shopping

 Ejecuta tu programa e introduce un número de artículos


Ya has aprendido a utilizar un bucle for. La semana que viene veremos otras formas de bucle.

3.11 Encadenamiento de funciones


En este paso vas a aprender cómo encadenar funciones para reducir el número de líneas en
tus programas.

Utilizar la salida de una función como entrada de otra

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.

Una función también puede devolver datos al programa principal.

a_message = input("Please enter a message")


Los datos introducidos por el usuario serán devueltos por la función input y almacenados en la
variable a_message.

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():

print(input("Please enter a message"))

Editar el programa de la lista de la compra

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 = input("how many items of shopping do you have? ")

how_many = int(how_many)

for item_number in range(how_many):

item = input("what is item number " + str(item_number) + "? ")

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.

Cambiando la entrada a un int directamente

Considera estas dos líneas del programa:

how_many = input("how many items of shopping do you have? ")

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.

Estas dos llamadas a la función se pueden encadenar en una línea:

how_many = int(input("how many items of shopping do you have? "))

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().

Añadiendo el elemento a la lista

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.

item = input("what is item number " + str(item_number) + "? ")

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().

Estas dos funciones se pueden encadenar:

shopping.append(input("what is item number " + str(item_number) + "?


"))

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.

Encadenar funciones de este modo puede dificultar la identificación de errores.

Piensa en el primer ejemplo, en el que convertiste la entrada del usuario en un número entero
directamente.

how_many = int(input("how many items of shopping do you have? "))


Si el usuario teclea un valor que no es un número, como "Hola", la función int() dará un error
de ejecución y su programa se detendrá.

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.

3.12 Reto: combinar los programas de compras


Ahora tienes dos partes de un programa que creará una lista de la compra y la mostrará. Tu
reto es combinarlas para crear un programa que

 Pregunte cuántos artículos de la compra se necesitan


 Recoja los artículos y los almacene en una lista
 Recorrer la lista de la compra y mostrarla
 Mostrar un total al final, para que el usuario pueda ver cuántos se han añadido
Comparte tus éxitos en la sección de comentarios, y pide ayuda si la necesitas.

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.

3.13 Casos prácticos: leer e interpretar el código


Un paso clave para poder escribir código es ser capaz de leer e interpretar el código ya escrito.
He aquí algunas formas en las que nuestros educadores ayudan a sus alumnos a desarrollar
esta habilidad.

Scratch

Empezar con el lenguaje de programación Scratch es un método habitual:

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

Jo Wakefield, profesor de secundaria

PRIMM

PRIMM es un enfoque para la planificación de lecciones y actividades de programación, e


incluye las siguientes etapas: * Predecir * Ejecutar * Investigar * Modificar * Hacer

"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

1. Haz ejercicio regularmente

El ejercicio incrementa la sensibilidad a la insulina y le ayuda a tus músculos a obtener los


azúcares de la sangre. Esto puede ocasionar la reducción de los niveles de azúcar en la sangre.

2. Controla tu ingesta de carbohidratos

Los carbohidratos se descomponen en glucosa, lo cual incrementa los niveles de azúcar en la


sangre. Reducir la ingesta de carbohidratos puede ayudar a controlar el azúcar en la sangre.

 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

La fibra reduce la digestión de carbohidratos y la absorción de azúcar. Por estas razones,


promueve un incremento más gradual en los niveles de azúcar en la sangre.

Los alimentos que son altos en fibra incluyen vegetales, frutas, legumbres y granos integrales.

4. Bebe agua y permanece hidratado

5. Implementa el control de las porciones

Controlar las porciones ayuda a regular la ingesta de calorías y puede ocasionar pérdida de
peso.

6. Elige alimentos con un índice glucémico bajo

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.

10. Ingiere alimentos ricos en cromo y magnesio

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.

11. Prueba el vinagre de manzana

Promueve niveles más bajos de azúcar en la sangre en ayunas, posiblemente, al disminuir su


producción por el hígado o incrementar su uso por las células.
12. Experimenta con extracto de canela

Uno de estos es que se ha demostrado que mejora la sensibilidad a la insulina al disminuir la


resistencia a nivel celular. Los estudios muestran que la canela también puede reducir los
niveles de azúcar en la sangre hasta en 29%.

Una dosis efectiva es 1–6 gramos de canela al día, o aproximadamente 0.5–2 cucharaditas.

13. Prueba la berberina

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.

14. Ingiere semillas de fenogreco

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.

La dosis recomendada de semillas de fenogreco es de 2-5 gramos al día.


Dieta cetogénica – keto

Alimentos que hay que comer en una dieta cetogénica

 Carne de granjas ecológicas (cabra, ternera, cerdo, cordero, pavo y pato).


 Pescados grasos y mariscos (salmón, caballa, bacalao, atún y sardinas).
 Productos lácteos y huevos (queso, ghee, nata, leche, yogur) - elija siempre productos
enteros (recomendamos no consumir demasiados productos lácteos, ya que pueden
causar inflamación).
 Frutos secos y semillas (macadamia, nueces de Brasil, pacanas, nueces, avellanas,
semillas de calabaza, semillas de lino y girasol).
 Verduras sin almidón (brócoli, aguacate, coliflor, espárragos, espinacas, col rizada,
berenjena, aceitunas, pimientos, hierbas, col, coles de Bruselas, pepino, apio y
rábanos).
 Grasas naturales (aceite de coco, aceite de oliva, aceite de aguacate y aceite de
macadamia).
 Agua
 Té (sin azúcar)
 Café (sin azúcar)
 Caldo de huesos
 Leches de frutos secos (sin azúcar añadido)
 MCT en polvo
 Harinas integrales (trigo integral, arroz integral, cereales integrales)
 Vegetales verdes
 Leguminosas (frijoles, lentejas, etc)
 Frutas permitidas (peras, manzanas, bayas, duraznos y similares, cítricos)

Alimentos a evitar en la ceto:

 Granos y cereales (trigo, arroz, avena, quinoa, pan).


 Carbohidratos procesados (pasta, galletas, pan, corteza de pizza).
 Alimentos ricos en azúcar (dulces, chocolate, pasteles, helados, miel, jarabe de arce,
néctar de agave, jarabe de maíz, aspartamo, azúcar de caña, azúcar de coco, refrescos
y bebidas azucaradas de zumo de frutas).
 Frijoles, legumbres y hortalizas con almidón (guisantes, alubias, judías blancas, judías
negras, judías pintas, lentejas, patatas, boniatos, zanahorias, tomates cherry y maíz)..
 Comida basura y alimentos muy procesados, como carnes y pescados muy procesados
(comida rápida, perritos calientes, nuggets de pollo, salami, palitos de pescado y carne
enlatada).
 Grasas y aceites vegetales (margarina, aceite vegetal, aceite de girasol, aceite de
sésamo, aceite de soja, aceite de maíz y mayonesa).
 Bebidas alcohólicas, especialmente vinos dulces y cerveza.
 Algunos tipos de frutos secos (cacahuetes, anacardos y pistachos).
 Algunos productos lácteos, en particular las alternativas bajas en grasa (leche baja en
grasa, alternativas de mantequilla sin grasa, crema batida baja en grasa, helado y
queso crema bajo en grasa).
 Condimentos.
 Refrescos y zumos.

¿Qué exactamente puedes comer con la dieta Keto?

 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

Conservas de pescado de todas las variedades: atún, salmón, sardinas, anchoas

Fiambres: jamón, carne asada, pastrami, salami, pepperoni, pavo, pollo

Huevos

Tofu, edamame, tempeh

- Productos lácteos ricos en grasa

Queso: todas las variedades

Yogur griego, queso ricotta, o queso cottage (media taza como máximo)

Mantequilla, ghee

Crema (nata para montar), crema agria y queso crema

Grasas naturales

Aceites naturales (aceite de oliva, aceite de coco, aceite de aguacate, aceites de nueces de
todos los tipos)

Manteca de cerdo

- Vegetales

Todas las verduras sin almidón, que incluyen:

Aceitunas

Aguacate (palta)

Ajete (ajo tierno)

Ajo
Alcachofa

Apio (célery)

Arvejas tiernas (guisantes)

Berenjena

Bok choy

Brócoli

Broccolini

Brotes

Calabaza (cruda o cocida, sin endulzar)

Cebolla (pequeñas cantidades)

Cebolleta (cebolla de primavera)

Cebolla de verdeo (cebollín)

Cebollíno (ciboulette)

Champiñones (hongos, setas)

Chayota (chayote, patata china)

Coles de Bruselas

Coliflor

Colirrábano

Endivias

Escalonia (echalote)

Escarola (achicoria)

Espárragos

Espinaca

Hinojo

Hojas verdes: todas


Jícama (pelenga)

Judías verdes (ejotes, chauchas o vainitas)

Kale (col rizada)

Lechuga

Palmitos

Pepinos y pepinillos

Perejil

Pimientos y ajíes (pimentones, jalapeño, chile)

Puerros (ajo porro)

Quimbonbó (abelmosco)

Rábanos

Raíz de apio (raíz de célery)

Repollo

Rúcula

Ruibarbo

Tirabeques (vainitas chinas)

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

Coco (sin azúcar)

Semillas

Chia

Lino (linaza)

Semillas de ajonjolí (sésamo)

Semillas de cáñamo

Semillas de calabaza

Semillas de girasol

- Condimentos

Hierbas y especias (sin azúcar añadida)

Mostaza (sin azúcar ni miel añadida)

Salsa de tomate (máximo 2 cucharadas)

Salsa de soja o tamari

Salsa picante

- Bebidas

Agua (con o sin gas)

Café

Caldo
Vino seco (límite de 1 copa por día, consumida con la comida)

Qué alimentos evitar

- Azúcar en cualquier forma: azúcar blanca, azúcar morena, azúcar de coco,


panela, papelón, miel, jarabe de arce, agave, fructosa
- Pasteles, galletas, helados, caramelos y otros dulces
- Pizzas, hamburguesas y hot dogs (perros calientes), burritos y otros alimentos
similares
- Pan blanco, arroz blanco, pastas y papas
- Gaseosas, ponche, té y café endulzados, bebidas alcohólicas dulces
- Cerveza
- Sin embargo, también hay algunos alimentos que te puede sorprender que
aparezcan en la lista de los que se deben evitar, tales como:
- Cereales integrales (cereales, pastas, pan, tortillas, arroz)
- Batatas, camotes, boniatos
- Choclo, maíz, elote
- Frijoles y lentejas
- Todos los jugos de frutas y la mayoría de las frutas (salvo las bayas)

También podría gustarte

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy