Guia Programacion
Guia Programacion
Guia Programacion
ÍNDICE
PRESENTACIÓN 5
FUNDAMENTACIÓN 6
Evaluación Diagnóstica 11
Porque aprender a programar 12
Arquitectura hardware de las computadoras 12
Lógica de programación 14
Algoritmos 15
Diagramas de flujo 16
Etapas para la solución de un problema por medio de una computadora 19
Pseudocódigo 19
Introducción a PSeInt 21
¿Qué es PSEINT? 21
El Pseudocódigo 22
Tipos de datos 22
Estructuras de Datos: Arreglos 23
Expresiones 23
Funciones matemáticas 24
Primitivas Secuenciales (Comandos de Entrada, Proceso y Salida) 25
Los operadores: Concepto y tipos 26
Los identificadores o variables 29
Clasificación de las variables según su uso: 30
Ciclo For (Repetir –Hasta) 35
Do–While (Hacer –Mientras) 36
While (Mientras–Hacer) 36
Para Ciclo for 37
Para Do–While 38
Para While 39
Glosario 41
Introducción a Python 42
Comprendiendo la programación 42
Palabras y frases 42
Conversando con Python 43
2
Programación
Decisiones 75
Ciclos 76
Para Ciclo for 76
Para While 77
Glosario II 81
Apéndice 1 83
REALIZACIÓN 88
REFERENCIAS 89
DERECHO DE CITA 90
DIRECTORIO 91
4
Programación
PRESENTACIÓN
La guía está organizada de tal manera que favorezca el desarrollo de las competencias que
definen el perfil de egreso en el campo disciplinar al que pertenece dentro del nivel de Educación
Media Superior a través del Sistema de Enseñanza Abierta (SEA), lo cual implica formas de trabajo
como el autodidactismo y la autogestión.
Como parte de la formación para el trabajo anteriormente mencionada, a continuación, se
presenta la guía de estudios del Submódulo 2 Programación, que pertenece al campo disciplinar de
formación para el trabajo. Este campo de conocimiento, conforme al Marco Curricular Común, tiene
como finalidad de propiciar el desarrollo de la creatividad y el pensamiento lógico y crítico entre los
estudiantes, mediante proceso de razonamiento, argumentación, y estructuración de ideas que
conlleven el despliegue de distintos conocimientos, habilidades, actitudes y valores, en la resolución
de problemas fundamentales que en sus aplicaciones trascienden al ámbito escolar.
El propósito de esta guía es proporcionar los conocimientos y habilidades necesarias para
plantear soluciones críticas y responsables mediante la metodología de desarrollo de software para
demostrar eficiencia en el manejo de base de datos y software de programación de alto nivel, que
sean aplicables a necesidades de una empresa o institución para el tratamiento de información.
El mapa de la capacitación está compuesto por submódulo, los cuales se dividen de la
siguiente manera:
5
Programación
FUNDAMENTACIÓN
Las competencias genéricas son aquellas que todos los bachilleres deben de estar en la
capacidad de desarrollar al permitirle a los estudiantes comprender su entorno (local, regional,
nacional o internacional) e influir en él, contar con herramientas básicas para continuar aprendiendo
a lo largo de la vida, y practicar una convivencia adecuada a sus ámbitos social, profesional, familiar,
etc. Estas competencias junto con las disciplinares básicas constituyen el Perfil de Egresado del
Sistema Nacional de Bachillerato y son:
6
Programación
CG1. Se conoce y valora a sí mismo y aborda problemas y retos teniendo en cuenta los objetivos
que persigue.
CG2. Es sensible al arte y participa en la apreciación e interpretación de sus expresiones en distintos
géneros.
CG3. Elige y practica estilos de vida saludables.
CG4. Escucha, interpreta y emite mensajes pertinentes en distintos contextos mediante la utilización
de medios, códigos y herramientas apropiadas.
7
Programación
SUBMÓDULO 2: PROGRAMACIÓN
APRENDIZAJE ESPERADO:
A.E.1. Plantea el uso de diagramas de flujo y algoritmos, fomentando su desarrollo creativo,
para solucionar problemas cotidianos de su contexto.
A.E.2 Explica los lenguajes de programación y sus metodologías de forma consciente, asertiva
y empática, en la resolución de problemas del ámbito académico y laboral.
8
Programación
SUBMÓDULO 2: PROGRAMACIÓN
APRENDIZAJE ESPERADO:
COMPETENCIAS A DESARROLLAR:
Competencias genéricas
CG5.2 Ordena información de acuerdo a categorías, jerarquías y relaciones.
9
Programación
CONOCIMIENTOS:
Lógica de programación:
● Algoritmos.
● Diagramas de flujo.
● Pseudocódigos.
● Decisiones.
● Ciclos.
Lenguaje de programación:
● Tipos de lenguaje.
● Metodología de programación.
✔ Estructurado.
✔ Orientado a objetos.
HABILIDADES:
● Analiza los elementos que integran los diagramas de flujo.
● Enuncia de manera secuencial los elementos para la resolución de problemas mediante
algoritmos y diagramas de flujo.
10
Programación
ACTITUDES:
● Resuelve situaciones de forma cotidiana.
● Aporta ideas en la solución de problemas promoviendo su creatividad.
● Expresa diversas opciones para dar solución a problemas de su contexto.
Evaluación Diagnóstica
¿Qué es la computación?
11
Programación
Antes de que empecemos a aprender el lenguaje que deberemos hablar para darle
instrucciones a las computadoras para desarrollar software, tendremos que aprender un poco
acerca de cómo están construidos esas máquinas. Si desmontaras tu computadora o Smartphone
y mirases dentro con atención, encontrarías los siguientes componentes: Las definiciones de alto
nivel de esos componentes son las siguientes:
• La Unidad Central de Procesamiento (o CPU) es el componente de la computadora
diseñado para estar obsesionado con el “¿qué hago ahora?”. Si tu equipo está dentro de la
clasificación de 3.0 Gigahercios, significa que la CPU preguntará “¿Qué hago ahora?” tres mil
millones de veces por segundo. Vas a tener que aprender a hablar muy rápido para mantener el
ritmo de la CPU.
• La memoria principal se usa para almacenar la información que la CPU necesita de forma
inmediata. La memoria principal es casi tan rápida como la CPU. Pero la información almacenada
en la memoria principal desaparece cuando se apaga el equipo.
• La memoria secundaria también se utiliza para almacenar información, pero es mucho
más lenta que la memoria principal. La ventaja de la memoria secundaria es que puede almacenar
la información incluso cuando el equipo está apagado. Algunos ejemplos de memoria secundaria
12
Programación
serían las unidades de disco o las memorias flash (que suelen encontrarse en los pendrives USB y
en los reproductores de música portátiles).
• Los Dispositivos de Entrada y Salida son simplemente la pantalla, teclado, ratón, micrófono,
altavoz, touchpad, etc. Incluyen cualquier modo de interactuar con una computadora.
• Actualmente, casi todos los equipos tienen una conexión de red para recibir información
dentro de una red. Podemos pensar en una red como en un lugar donde almacenar y recuperar
datos de forma muy lenta, que puede no estar siempre “activo”. Así que, en cierto sentido, la red no
es más que un tipo de memoria secundaria más lenta y a veces poco fiable.
Como programador, tu trabajo es usar y orquestar cada uno de esos recursos para resolver
el problema del que tengas que ocuparte y analizar los datos de los que dispongas para encontrar
la solución. Como programador estarás casi siempre “hablando” con la CPU y diciéndole qué es lo
siguiente que debe hacer. A veces le tendrás que pedir a la CPU que use la memoria principal, la
secundaria, la red, o los dispositivos de entrada/salida. Tú deberás ser la persona que responda a
la pregunta “¿Qué hago ahora?” de la CPU. Pero sería muy incómodo encogerse uno mismo hasta
los 5 mm. de altura e introducirse dentro de la computadora sólo para poder dar una orden tres mil
millones de veces por segundo. Así que en vez de eso, tendrás que escribir las instrucciones por
adelantado. Esas instrucciones almacenadas reciben el nombre de programa y el acto de escribirlas
y encontrar cuáles son las instrucciones adecuadas, programar. En otras palabras, queremos
cambiar tu perspectiva de usuario de computadoras a programador de las mismas, intentando de
alguna manera meterte a la computadora y tratar de que pienses como una. Al saber cómo es que
las computadoras trabajan, podrás usar sus recursos para solucionar problemas y hablaras con ella
por medio de un programa, que es una secuencia de instrucciones almacenada, y la idea es que
las computadoras a su nivel más bajo de hardware no es inteligente, pero si muy eficiente y si le
damos las instrucciones correctas puede hacer cosas increíbles.
Veamos este ejemplo de instrucciones para un ser humano para bailar la macarena, me
imagino que sabes cuál canción es, imagina la canción y sigue los pasos:
Mano izquierda al frente palma arriba
Mano derecha al frente palma arriba
Girar palma izquierda abajo
Girar palma derecha atajo
Mano izquierda a hombro derecho
Mano derecha a hombro izquierdo
Mano izquierda a la nuca
Mano derecha a la nuca
Mazo izquierda a cintura derecha
Mazo derecha a cintura izquierda
Mano izquierda a cadera izquierda
Mano derecha a cadena derecha
Girar caderas
13
Programación
Trata de seguir los pasos con el entendido que hay tres errores en la escritura de ellas,
identifícalos con un marcatextos o enciérralos en un círculo.
Si los encontraste o no, has aprendido algo de los seres humanos, que vivimos en un mundo
lleno de errores, hay errores de escritura, las personas dicen las cosas de manera incorrecta y
nosotros como personas las corregimos a medida que los percibimos, como las entendemos.
Incluso si no localizaste los errores, es porque tu cerebro los corrigió al momento de estar leyendo.
Lógica de programación
14
Programación
Lista de cotejo
Criterio Si No
Comentó con conocimiento cuál es la importancia de la programación
Respondió correctamente qué es una aplicación para móvil
Respondió correctamente qué es un programa de computadora
Respondió correctamente qué avances tecnológicos han surgido
Algoritmos
Se puede definir como una serie de instrucciones que representan una solución para un
problema determinado, también se comprende como un conjunto de instrucciones que si se realiza
en orden se obtiene la solución del problema.
Para elaborar un programa es necesario tener el diseño o la definición antes del algoritmo.
El diseño de un algoritmo requiere creatividad y conocimientos de técnica de programación. Uno de
los programadores con gran experiencia es Luis Joyanes Aguilar, que nos dice: “en la ciencia de la
computación y en la programación, los algoritmos son más importantes que los lenguajes de
programación o las computadoras. Un lenguaje de programación es sólo un medio para expresar
un algoritmo y una computadora es sólo un procesador para ejecutarlo”.
Los algoritmos son independientes de los lenguajes de programación. En cada problema del
algoritmo se escribe y luego se ejecuta en un lenguaje de programación determinado.
Para que un algoritmo sea un éxito debe tener las siguientes cualidades:
• Es preciso. Esto se define de manera estricta, sin dar ninguna duda.
• Es definido. Si se sigue un algoritmo dos veces, se obtendrá el mismo objetivo.
• Es finito. Debe terminar en algún momento.
• Puede tener más elementos de entrada o ninguno.
• Debe tener un resultado.
Los datos de salida serán los resultados efectivos de acuerdo con las instrucciones ejecutadas. Se
realiza el algoritmo suficientemente eficaz para resolver el problema. Entre dos algoritmos que
llevan el mismo objetivo, siempre es preferible el más corto (esto se debe para optimizar los tiempos
y / o recursos).
Existen dos tipos de algoritmo, uno se determina como algoritmos cualitativos y otros cuantitativos,
la diferencia es que los cualitativos no involucran operaciones aritméticas, su función es para
realizar una tarea específica como una actividad física, encontrar un tesoro, hacer un pastel,
preparar un café, hacer un sándwich. Los cuantitativos son los que involucran operaciones
matemáticas, por ejemplo, la solución de un promedio, el resultado de una ecuación cuadrática, el
pago de una nómina, calcular los impuestos a pagar.
15
Programación
Lista de cotejo
Criterio Si No
Elaboró de manera precisa los pasos para ir al cine
Elaboró de manera precisa los pasos para sacar un promedio
Diagramas de flujo
Es un diagrama que describe siguiendo los pasos de un algoritmo. Los diagramas de flujo
emplean rectángulos, óvalos, diamantes y otras numerosas figuras para definir el tipo de paso, junto
con flechas conectoras que establecen el flujo y la secuencia. Pueden variar desde diagramas
simples y dibujados a mano hasta diagramas exhaustivos creados por computadora que describen
múltiples pasos y rutas. Si tomamos en cuenta todas las diversas figuras de los diagramas de flujo,
son uno de los diagramas más comunes del mundo, usados por personas con y sin conocimiento
técnico en una variedad de campos. A veces se llaman con nombres más especializados, como
“diagrama de flujo de procesos”, “mapa de procesos”, “diagrama de flujo funcional”, “mapa de
procesos de negocios”, “notación y modelado de procesos de negocio (BPMN)” o “diagrama de flujo
de procesos (PFD)”. Están relacionados con otros diagramas populares, como los diagramas de
flujo de datos (DFD) y los diagramas de actividad de lenguaje unificado de modelado (UML).
16
Programación
Un ejemplo muy básico de una tarea cotidiana que podemos representar con un algoritmo y
diagrama de flujo, es prepararnos una taza de café.
Pasos:
1. Tener los ingredientes (agua hervida, café, azúcar, crema). Estos ingredientes serían las
entradas al proceso.
2. Servir el agua en una taza, poner la cantidad de café, azúcar y crema deseados y mezclar.
Este sería nuestro proceso, el cual puede ser diferente a este si es que tú lo preparas de
otra manera, pero al fin y al cabo, la finalidad es preparar la taza de café.
3. La taza de café preparada, esto sería nuestra salida o resultado, de procesar nuestros
ingredientes o entradas.
17
Programación
Inicio
Café
Azúcar
Crema
Servir el agua,
poner ingredientes
y mezclarlos
Fin
Actividad. Realiza los diagramas de flujo para los algoritmos que realizaste en el ejercicio
anterior en los puntos 2 y 3
18
Programación
Lista de cotejo
Criterio Si No
Utilizó correctamente la simbología
Están los pasos definidos y precisos
1. Análisis del problema. Es la definición y delimitación a considerar los datos de entrada, el proceso
que debe realizar la computadora junto con los datos de salida.
2. Diseño y desarrollo del algoritmo. Se usa el pseudocódigo, escritura natural del algoritmo,
diagramas de flujo.
3. Prueba de escritorio. Es un seguimiento manual de los pasos escritos en el algoritmo. Se hace
con valores pequeños y tiene el objetivo de localizar errores.
4. Codificación. Selección de un lenguaje de programación y digitalización pseudocódigo realizando
una sintaxis y estructura gramatical de un determinado lenguaje.
5. Compilación o interpretación del programa. El lenguaje seleccionado convierte las indicaciones o
instrucciones escritas en dicho lenguaje por medio de la computadora. Existen programas
compilados e interpretados.
6. Ejecución, también se le llama debug. Es una operación que detecta, localiza y elimina los errores
que tiene el código.
7. Evaluación de resultados. Obteniendo los resultados se realiza una evaluación para verificar si
están correctos, pero hay que tomar en cuenta que puede arrojar resultados incorrectos aun cuando
la ejecución no contiene errores.
Estas etapas las aplicaremos específicamente para el lenguaje de programación Python 3, que es
un lenguaje interpretado.
Pseudocódigo
Es una forma de escribir todos los pasos que va a utilizar un programa de la forma más aproximada
a un lenguaje de programación que vamos a utilizar más adelante. Es como un lenguaje ficticio,
pero en nuestro idioma, en el lenguaje humano y en español.
Las tres palabras más comunes que se usan en pseudocódigo son:
Escribir. Escribe en pantalla el texto o mensaje que pongamos entre paréntesis o también puede
escribir en pantalla el valor de una variable. También podemos poner en lugar de escribir la palabra
Mostrar.
Leer. Nos lee desde lo que el usuario marque desde el teclado y guarda el valor por ejemplo, dentro
de una variable, en este caso la variable Edad.
Fíjate en el ejemplo siguiente escrito en pseudocódigo:
Inicio
1. Escribir: “¿Cuál es tu edad?
2. Leer Edad
3. Escribir “Tu edad es” + Edad
19
Programación
Fin
edad = input()
Calcular. Calcula valores numéricos. El resultado se guarda normalmente dentro de una variable.
Ejemplo: X = 3 * 5, el valor de la variable X, seria 15
Ejemplo de la operación matemática en Python 3
X=3*5
Print(x)
Se verán los conceptos de variable, constante y del símbolo de asignación más adelante, así como
las operaciones y tipos de datos que usaremos en pseudocódigo, para el cual usaremos un
programa llamado PSeInt.
También utilizaremos PSeInt para importar nuestros archivos de pseudocódigo a diagramas de flujo
y al lenguaje de programación Python, cuyos archivos tienen la extensión .py y podremos ejecutar
desde una ventana de símbolo de sistema o utilizando un intérprete en línea cómo onlinegdb.com,
o inclusive un editor como atom.
20
Programación
Introducción a PSeInt
¿Qué es PSEINT?
21
Programación
http://pseint.sourceforge.net/index.php?page=portada.php
El Pseudocódigo
Tipos de datos
Los identificadores, o nombres de variables, deben constar sólo de letras, números y/o
guión_bajo (_), comenzando siempre con una letra.
22
Programación
Los tipos de datos simples se determinan automáticamente cuando se crean las variables.
Las dos acciones que pueden crear una variable son la lectura (LEER) y la asignación (<-). Por
ejemplo, la asignación "A<-0;" está indicando implícitamente que la variable A será una variable
numérica. Una vez determinado el tipo de dato, deberá permanecer constante durante toda la
ejecución del proceso; en caso contrario el proceso será interrumpido.
Expresiones
• Operadores.
• Funciones.
Operadores
Este pseudolenguaje dispone de un conjunto básico de operadores que pueden ser
utilizados para la construcción de expresiones más o menos complejas.
Las siguientes tablas exhiben la totalidad de los operadores de este lenguaje reducido:
23
Programación
Operador
Significado Ejemplo
Relacionales
> Mayor que 3>2
< Menor que 'ABC'<'abc'
= Igual que 4=3
<= Menor o igual que 'a'<='b'
>= Mayor o igual que 4>=5
<> Distinto que Var1<>var2
Lógicos
&óY Conjunción (y). (7>4) & (2=1) //falso
|óO Disyunción (o). (1=1 | 2=1)
//verdadero
~ ó NO Negación (no). ~(2<5) //falso
Algebraicos
+ Suma total <- cant1 + cant2
- Resta stock <- disp – venta
* Multiplicación area <- base * altura
/ División porc <- 100 * parte / total
^ Potenciación sup <- 3.41 * radio ^ 2
% ó MOD Módulo (resto de la resto <- num MOD div
división entera)
24
Programación
• Lectura (Entrada).
• Asignación (Proceso).
• Escritura (Salida).
Lectura o entrada
La instrucción Leer permite ingresar información desde el ambiente.
Leer <variable1> , <variable2> , ... ,
<variableN> ;
Esta instrucción lee N valores desde el ambiente (en este caso el teclado) y los asigna a las
N variables mencionadas. Pueden incluirse una o más variables, por lo tanto el comando leerá uno
o más valores.
Asignación o proceso
La instrucción de asignación permite almacenar un valor en una variable.
<variable> <- <expresión> ;
Al ejecutarse la asignación, primero se evalúa la expresión de la derecha y luego se asigna
el resultado a la variable de la izquierda. El tipo de la variable y el de la expresión deben coincidir.
Escritura o salida
La instrucción Escribir permite mostrar valores al ambiente.
Escribir <exprl> , <expr2> , ... , <exprN> ;
Esta instrucción imprime al ambiente (en este caso en la pantalla) los valores obtenidos de
evaluar N expresiones. Dado que puede incluir una o más expresiones, mostrará uno o más valores.
Recordemos que la computadora solo es un instrumento que nos permite hacer acciones de
una manera muy rápida, estas acciones a realizar se las dictamos los humanos por medio de
instrucciones que le damos en un lenguaje de programación, y la computadora realiza estas
instrucciones ayudándose del microprocesador y la memoria RAM. Los comandos específicos del
lenguaje le dirán a la computadora como utilizar el microprocesador y la memoria RAM, pero
también tenemos que definir en el programa las variables o lugares de la memoria RAM donde se
guardaran valores que sean necesarios para realizar estas instrucciones.
Un ejemplo muy básico sería si nosotros queremos sumar 2 números, tendríamos que saber
el primer número, luego saber el segundo número, después hacer la suma, la cual ya nosotros
sabemos la manera de sumar, y después, obtenemos un resultado. Todo esto lo hacemos en
nuestro cerebro y memoria.
En la computadora tendría que conocer el primer número, es este ejemplo, se lo daremos a
conocer por un dispositivo de entrada (teclado), guardarlo en su memoria RAM (variable num1), de
la misma manera conocer el segundo número (Variable num2). Después procesar (en el CPU) estos
2 números por medio de una instrucción que el lenguaje de programación se encargará de decirle
cómo hacerlo, en este caso, una suma (operador +). Ese resultado guardarlo en otro lugar de su
memoria RAM (variable resultado) y después mostrarlo en un dispositivo de salida (Monitor)
25
Programación
Pseudocódigo
1.- Leer num1
2.- Leer num2
3.- resultado= num1+num2
4.- Mostrar resultado
Se les llaman variables, ya que pueden cambiar su valor en el proceso del programa o cada
vez que se ejecuta de nuevo
Tipos de datos:
Los tipos de datos simples que maneja el computador son:
• Numéricos
• Lógicos
• Alfanuméricos o carácter
Datos numéricos: es el conjunto de valores numéricos. Pueden representarse de dos formas:
Numérico entero: es un subconjunto finito de los números enteros, no tienen componentes
fraccionarios o decimales y pueden ser positivos o negativos.
Ejemplos: 8 5 15 -9 2000 -543
Numérico real: es un subconjunto de los números reales. Tienen una parte decimal y pueden ser
positivos o negativos.
Ejemplos:
23435454 -35.75 0.00056 -6.86 8.0
Datos Lógicos: Es un dato que sólo puede tomar uno de dos valores: verdadero o falso. También
es denominado booleano.
Datos alfanuméricos, carácter o de tipo cadena: Es el conjunto finito y ordenado de caracteres que
la computadora reconoce.
Ejemplos:
Caracteres alfabéticos: A,B, C, D….,Z, a,b,c,d,…..,z.
Caracteres numéricos: 1,2,3,4,5,6,7,8,9,0.
Caracteres especiales: Son todos los caracteres que no son letras ni números.
Ejemplo: ¿,¡,<,>,+,*,/,(,),%,&,$,”,!,?,[,], ^…….
26
Programación
Operadores Aritméticos: son análogos a los operadores matemáticos para realizar operaciones
aritméticas como suma, resta, multiplicación, división y exponenciación
Nota: p y q pueden ser expresiones con operadores relacionales. Los operadores de la conjunción
y la disyunción requieren dos expresiones con operadores relacionales mientras que la negación
sólo una.
Ejemplos:
a) 3>5 and 4<6
27
Programación
b) 5<=5 or 9>8
c) 7 < > 9
d) not (2 = 2)
El resultado a estas expresiones lógicas o llamadas también Booleanas, el cual solo puede ser
Verdadero o Falso, dependen de las siguientes tablas de verdad.
Ejemplos:
a) 3 > 4 and 5 < = 5
F and V
V
b) 15 < > 51 or -3 > -2
V or F
V
c) 7 = 8 or 3 < =0
F or F
F
d) not 6 = 6
not V
F
Si la expresión tiene varios operadores lógicos se debe cumplir con el siguiente orden de prioridad:
Resumiendo en una sola tabla las prioridades de todos los operadores, quedaría de la siguiente
manera:
28
Programación
Una variable es una localización de la memoria del computador donde se almacena un dato cuyo
valor puede variar. El nombre de la variable es un nombre simbólico (identificador) que se debe
relacionar con su contenido. Por ejemplo, si la variable guarda la edad de una persona, el
identificador podría ser edad. De esta manera facilita la comprensión de los algoritmos y programas.
Reglas de escritura de los identificadores: Las reglas de escritura para los nombres de las variables
depende del lenguaje de programación a utilizar, sin embargo, a continuación se presentan las
reglas básicas de la mayoría de los lenguajes:
Debe comenzar por una letra
Puede tener letras y números
No puede tener espacios en blanco
No puede tener caracteres especiales (caracteres que no son alfabéticos ni numéricos), a excepción
del subrayado (_). Las vocales acentuadas y la letra ñ son consideradas caracteres especiales.(en
el caso de Python las letras acentuadas y con tilde si son válidas)
De acuerdo al contenido o valor que guardan las variables, éstas se clasifican en:
Numéricas: almacenan valores numéricos: enteros o reales. Ejemplo: edad, sueldo, pago,
num_hijos, cantidad_habitantes.
Lógicas: almacenan un valor lógico: verdadero o falso.
Alfanuméricas: almacenan letras, números y/o caracteres especiales. Ejemplo: nombre, dirección,
correo, cédula, fecha_nacimiento.
29
Programación
Constantes:
A diferencia de las variables, su valor nunca varía, ni puede ser modificado a lo largo del programa
o algoritmo, por lo tanto, su valor hay que definirlo y no puede cambiar a lo largo de la ejecución.
Ejemplos:
a) pi=3.14
b) N=10
c) iva=12
Escribir "La edad de la persona es ", edad , " años y su peso es " , peso , " Kgs "
FinAlgoritmo
Lista de cotejo
Criterio Si No
Trabaja correctamente el pseudocódigo
Entregó el archivo de PSeInt
c) Escribir un pseudocódigo que calcule el área de un triángulo recibiendo como entrada el valor de
base y altura.
Lista de cotejo
Criterio Si No
Trabaja correctamente el pseudocódigo
Entregó el archivo de PSeInt
Lista de cotejo
Criterio Si No
Trabaja correctamente el pseudocódigo
Entregó el archivo de PSeInt
Decisiones
Son estructuras de control que realizan una pregunta la cual retorna verdadero o falso (evalúa una
condición) y selecciona la siguiente instrucción a ejecutar dependiendo la respuesta o resultado.
Existen tres tipos de decisiones:
• Decisiones simples. Es la instrucción que permite, a partir de evaluar una prueba lógica,
devolver un resultado como valor verdadero.
Si expresión_logica Entonces
acciones_por_verdadero
Fin Si
• Decisiones compuestas. Funciona de la misma forma que una simple, con la única diferencia
de que si nuestra prueba lógica devolviera un valor de tipo falso.
Si expresion_logica Entonces
acciones_por_verdadero
SiNo
acciones_por_falso
Fin Si
• Decisiones anidadas. Es una decisión de tipo compuesta dentro de otra decisión de tipo
compuesta.
Si expresion_logica Entonces
acciones_por_verdadero
Si expresion_logica Entonces
acciones_por_verdadero
SiNo
acciones_por_falso
Fin Si
SiNo
acciones_por_falso
Fin Si
{expresion_logica}: complete aquí la condición a evaluar para decidir qué grupo de acciones
se deben ejecutar.
{acciones_por_verdadero}: complete aquí las acciones que se deben ejecutar si la condición
({expresion_logica}) resulta verdadera.
{acciones_por_falso}: complete aquí las acciones que se deben ejecutar si la condición
({expresion_logica}) resulta falsa. Si no desea realizar nada en este caso, elimine esta línea
y la anterior (SINO).
32
Programación
33
Programación
c) Leer los minutos de una llamada telefónica, calcular la cuenta a pagar teniendo en cuenta lo
siguiente:
• Si la llamada dura menos o igual a 3 minutos pagará 5 pesos.
• Por cada minuto adicional el costo es de 1.50 pesos.
• Visualizar la paga final de la llamada.
Lista de cotejo
Criterio Si No
Trabaja correctamente el pseudocódigo
Entregó el archivo de PSeInt
Entregó el diagrama de flujo correcto
d) Leer la medida de un triángulo y de acuerdo con sus medidas imprimir si es equilátero, Isósceles
o escaleno.
Lista de cotejo
Criterio Si No
Trabaja correctamente el pseudocódigo
Entregó el archivo de PSeInt
Entregó el diagrama de flujo correcto
f) Leer tres calificaciones de un alumno, calcule el promedio e imprima alguno de estos mensajes:
• Si el promedio es >= 7 mostrar “Promocionado”.
• Si el promedio es >= 6 y <7 mostrar “Suficiente”.
• Si el promedio es <6 mostrar “No Suficiente”.
Lista de cotejo
Criterio Si No
Trabaja correctamente el pseudocódigo
Entregó el archivo de PSeInt
Entregó el diagrama de flujo correcto
34
Programación
Ciclos
Los ciclos permiten una acción de un número determinado o n veces, es decir repite esa acción una
o más veces de acuerdo con el diagrama.
Existen tres variantes de estructuras iterativas: For (Repetir –Hasta), Do While (Hacer –Mientras) y
While (Mientras –Hacer).
La diferencia entre los ciclos simples es que llevan una estructura iterativa en un bloque de
sentencias y los ciclos anidados llevan más de dos estructuras iterativas dentro de un bloque de
sentencias.
Para: (For) se utiliza cuando se puede determinar el número de veces que hay que ejecutar las
instrucciones.
Sobre sus características se puede mencionar que:
• Siempre se hace uso de una variable (contador) que incrementará su valor automáticamente y
ayudará a determinar si se continúa o finaliza el ciclo.
• El contador deberá inicializarse con un valor, generalmente 0 o 1, dependiendo de lo que se esté
realizando.
• Un ciclo puede contener otro ciclo dentro de sí (a esto se le denomina ciclo anidado). Nunca se
debe utilizar el mismo nombre de la variable (contador) en ambos ciclos, pues el programa no podrá
determinar cuándo se finaliza el ciclo.
Para variable_numerica<-valor_inicial Hasta valor_final Con Paso paso Hacer
secuencia_de_acciones
Fin Para
35
Programación
Repetir: (Do–While) - las operaciones de lazo repetir son ejecutadas hasta que la condición sea
cierta. Do-while permite repetir una sentencia un número indeterminado de veces dependiendo de
una condición, de forma parecida a while.
El ciclo do-while repetirá el bucle mientras la condición sea verdadera: al igual que while se tiene
que modificar la condición para que en algún momento llegue a ser falsa y el programa pueda
continuar por la sentencia siguiente a do–while.
A diferencia de while, do–while garantiza que al menos se ejecutará una iteración.
Repetir
secuencia_de_acciones
Hasta Que expresion_logica {secuencia_de_acciones}: complete aquí la lista de instrucciones que
desea repetir hasta que la condición {expresion_logica} sea verdadera. Recuerde que debe incluir
aquí alguna acción que pueda modificar dicha condición.
{expresion_logica}: complete aquí la condición que se debe evaluar para determinar si se continúa
iterando.
While (Mientras–Hacer)
Mientras: (While)–el ciclo mientras es la estructura básica que permite repetir varias veces una
secuencia de operaciones, mientras se cumpla una determinada condición.
While permite repetir una sentencia un número indeterminado de veces dependiendo de una
condición.
While significa mientras, y repetirá el bucle mientras la condición que contiene entre paréntesis se
verdadera; esto implica que, de alguna forma las instrucciones que componen la sentencia que
ejecuta while tienen que modificar la condición para que en algún momento llegue a ser falsa y el
programa pueda continuar por la siguiente sentencia o bien romper el bucle implícitamente con
break. De la misma forma se puede volver al principio del bucle con continue
Realiza los siguientes problemas razonados en diagramas de flujo de cada ciclo en hojas blancas
para entregar y ser evaluado.
37
Programación
d) Lee 15 números cualquiera e imprime cuántos números positivos, negativos o nulos fueron
capturados.
Lista de cotejo
Criterio Si No
Trabaja correctamente el pseudocódigo
Entregó el archivo de PSeInt
Entregó el diagrama de flujo correcto
Para Do–While
e) Ejemplo Imprime los primeros 10 números.
Algoritmo diez_numeros
i=1
Repetir
Escribir i
i=i+1
Hasta Que i>10
FinAlgoritmo
38
Programación
f) Lee un número con valores de 0 a 10, que termina con el valor sea –1, y nos dice si hubo o no
alguna con el valor 10.
Lista de cotejo
Criterio Si No
Trabaja correctamente el pseudocódigo
Entregó el archivo de PSeInt
Entregó el diagrama de flujo correcto
Para While
39
Programación
j) Calcula la media de X números, se dejarán de solicitar números hasta que se introduzca el cero.
Lista de cotejo
Criterio Si No
Trabaja correctamente el pseudocódigo
Entregó el archivo de PSeInt
Entregó el diagrama de flujo correcto
l) Lee 20 números e imprime cuantos números fueron menores de 15, cuántos números fueron
mayores de 50 y cuántos números se encuentran entre 45 y 55.
Lista de cotejo
Criterio Si No
Trabaja correctamente el pseudocódigo
Entregó el archivo de PSeInt
Entregó el diagrama de flujo correcto
40
Programación
m) Lee dos números y muestra todos los números que van desde el primero al segundo. Se debe
controlar que los valores sean correctos.
Lista de cotejo
Criterio Si No
Trabaja correctamente el pseudocódigo
Entregó el archivo de PSeInt
Entregó el diagrama de flujo correcto
Glosario
bug: Un error en un programa.
código fuente: Un programa en un lenguaje de alto nivel.
código máquina: El lenguaje de más bajo nivel para el software, es decir,el lenguaje que es
directamente ejecutado por la unidad central de procesamiento (CPU).
Compilar: Traducir un programa completo escrito en un lenguaje de alto nivel a un lenguaje de bajo
nivel, para dejarlo listo para una ejecución posterior.
Error semántico: Un error dentro de un programa que provoca que haga algo diferente de lo que
pretendía el programador.
función print: Una instrucción que hace que el intérprete de Python muestre un valor en la pantalla.
indicador de línea de comandos (prompt): Cuando un programa muestra un mensaje y se detiene
para que el usuario teclee algún tipo de dato.
Interpretar: Ejecutar un programa escrito en un lenguaje de alto nivel traduciéndolo línea a línea.
lenguaje de alto nivel Un lenguaje de programación como Python, que ha sido diseñado para que
sea fácil de leer y escribir por las personas.
lenguaje de bajo nivel: Un lenguaje de programación que está diseñado para ser fácil de ejecutar
para una computadora; también recibe el nombre de “código máquina”, “lenguaje máquina” o
“lenguaje ensamblador”.
Memoria principal: Almacena los programas y datos. La memoria principal pierde su información
cuando se desconecta la alimentación.
Memoria secundaria: Almacena los programas y datos y mantiene su información incluso cuando
se interrumpe la alimentación. Es generalmente más lenta que la memoria principal. Algunos
ejemplos de memoria secundaria son las unidades de disco y memorias flash que se encuentran
dentro de los dispositivos USB.
modo interactivo: Un modo de usar el intérprete de Python, escribiendo comandos y expresiones
directamente en el indicador de la línea de comandos.
parsear: Examinar un programa y analizar la estructura sintáctica.
Portabilidad: Es la propiedad que poseen los programas que pueden funcionar en más de un tipo
de computadora.
programa: Un conjunto de instrucciones que indican cómo realizar algún tipo de cálculo.
41
Programación
Introducción a Python
Comprendiendo la programación
En cierto modo, necesitas dos capacidades para ser programador:
• Primero, necesitas saber un lenguaje de programación (Python) - debes conocer su
vocabulario y su gramática. Debes ser capaz de deletrear correctamente las palabras en ese nuevo
lenguaje y saber construir “frases” bien formadas.
• Segundo, debes “contar una historia”. Al escribir un relato, combinas palabras y frases para
comunicar una idea al lector. Hay una cierta técnica y arte en la construcción de un relato, y la
habilidad para escribir relatos mejora escribiendo y recibiendo cierta respuesta. En programación,
nuestro programa es el “relato” y el problema que estás tratando de resolver es la “idea”.
Una vez que aprendas un lenguaje de programación como Python, encontrarás mucho más
fácil aprender un segundo lenguaje como JavaScript o C++. Cada nuevo lenguaje tiene un
vocabulario y gramática muy diferentes, pero la técnica de resolución de problemas será la misma
en todos ellos. Se enseña programación de forma muy similar a como se enseña a escribir. Se
empieza leyendo y explicando programas, luego se escriben programas sencillos, y a continuación
se van escribiendo programas progresivamente más complejos con el tiempo.
Palabras y frases
A diferencia de los lenguajes humanos, el vocabulario de Python es en realidad bastante
reducido. Llamamos a este “vocabulario” las “palabras reservadas”. Se trata de palabras que tienen
un significado muy especial para Python. Cuando Python se encuentra estas palabras en un
programa, sabe que sólo tienen un único significado para él. Más adelante, cuando escribas
programas, podrás usar tus propias palabras con significado, que reciben el nombre de variables.
Tendrás gran libertad a la hora de elegir los nombres para tus variables, pero no podrás utilizar
ninguna de las palabras reservadas de Python como nombre de una variable.
Cuando se entrena a un perro, se utilizan palabras especiales como “siéntate”, “quieto” y
“tráelo”. Cuando te diriges a un perro y no usas ninguna de las palabras reservadas, lo único que
42
Programación
consigues es que se te quede mirando con cara extrañada, hasta que le dices una de las palabras
que reconoce. Por ejemplo, si dices, “Me gustaría que más gente saliera a caminar para mejorar su
salud general”, lo que la mayoría de los perros oirían es: “bla bla bla caminar bla bla bla bla.”. Eso
se debe a que “caminar” es una palabra reservada en el lenguaje del perro.
Las palabras reservadas en el lenguaje que utilizan los humanos para hablar con Python
son, entre otras, las siguientes:
and del global not with
as elif if or yield
assert else import pass
break except in raise
class finally is return
continue for lambda try
def from nonlocal while
Es decir, a diferencia de un perro, Python ya está completamente entrenado. Cada vez que
le digas “inténtalo”, Python lo intentará una vez tras otra sin desfallecer. Aprenderemos cuáles son
las palabras reservadas y cómo utilizarlas en su momento, pero por ahora nos centraremos en el
equivalente en Python de “habla” (en el lenguaje humano-perro). Lo bueno de pedirle a Python que
hable es que podemos incluso indicarle lo que debe decir, pasándole un mensaje entre comillas:
print('¡Hola, mundo!')
Y ya acabamos de escribir nuestra primera oración sintácticamente correcta en Python. La
frase comienza con la función print seguida de la cadena de texto que hayamos elegido dentro de
comillas simples. Las comillas simples y dobles cumplen la misma función; la mayoría de las
personas usan las comillas simples, excepto cuando la cadena de texto contiene también una
comilla simple (que puede ser un apóstrofo).
Conversando con Python
Ahora que ya conocemos una palabra y sabemos cómo crear una frase sencilla en Python,
necesitamos aprender a iniciar una conversación con él para comprobar nuestras nuevas
capacidades con el lenguaje.
Antes de que puedas conversar con Python, deberás instalar el software necesario en tu
computadora y aprender a iniciar Python en ella., consulta el apéndice con las instrucciones para
instalar Python, puede ser que ya en la página oficial se encuentre una versión más reciente, pero
el método sería casi igual.
Si sigues los pasos, llegará un momento en que te encuentres ante una ventana de
comandos o terminal. Si escribes entonces python, el intérprete de Python empezará a ejecutarse
en modo interactivo, y aparecerá algo como esto:
43
Programación
El indicador >>> es el modo que tiene el intérprete de Python de preguntarte, “¿Qué quieres
que haga ahora?”. Python está ya preparado para mantener una conversación contigo. Todo lo que
tienes que saber es cómo hablar en su idioma. Supongamos por ejemplo que aún no conoces ni las
palabras ni frases más sencillas de Python. Puede que quieras utilizar el método clásico de los
astronautas cuando aterrizan en un planeta lejano e intentan hablar con los habitantes de ese
mundo:
Escribe el siguiente en la ventana de Python y presiona Enter
>>> Vengo en son de paz, por favor llévame ante tu líder
File "<stdin>", line 1
Vengo en son de paz, por favor llévame ante tu líder
^
SyntaxError: invalid syntax
>>>
Este error sucede por no “hablarle” correctamente a Python con sus reglas de sintaxis que
veremos más adelante.
Ahora intenta la siguiente instrucción y presiona Enter
>>> print('¡Hola, mundo!')
¡Hola, mundo!
Esto tiene mejor aspecto, de modo que intentas comunicarte un poco más:
>>> print('Usted debe ser el dios legendario que viene del cielo')
Usted debe ser el dios legendario que viene del cielo
>>> print('Hemos estado esperándolo durante mucho tiempo')
Hemos estado esperándolo durante mucho tiempo
>>> print('La leyenda dice que debe estar usted muy rico con mostaza')
44
Programación
La leyenda dice que debe estar usted muy rico con mostaza
>>> print 'Tendremos un festín esta noche a menos que diga
File "<stdin>", line 1
print 'Tendremos un festín esta noche a menos que diga
^
SyntaxError: Missing parentheses in call to 'print'
>>>
La conversación estuvo bien durante un rato, pero en cuanto cometiste el más mínimo fallo
al utilizar el lenguaje Python, Python volvió a sacar las lanzas. En este momento, te habrás dado
cuenta que a pesar de que Python es tremendamente complejo y poderoso, y muy estricto en cuanto
a la sintaxis que debes usar para comunicarte con él, Python no es inteligente. En realidad estás
solamente manteniendo una conversación contigo mismo; eso sí, usando una sintaxis adecuada.
En cierto modo, cuando utilizas un programa escrito por otra persona, la conversación se
mantiene entre tú y el programador, con Python actuando meramente de intermediario. Python es
una herramienta que permite a los creadores de programas expresar el modo en que la
conversación supuestamente debe fluir.
Antes de que abandonemos nuestra primera conversación con el intérprete de Python,
deberías aprender cual es el modo correcto de decir “adiós” al interactuar con Python:
Escribe la siguiente palabra y pulsa Enter
>>> adiós
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'adiós' is not defined
Ahora probemos esto:
>>> if you don't mind, I need to leave
File "<stdin>", line 1
if you don't mind, I need to leave
^
SyntaxError: invalid syntax
45
Programación
La forma correcta de decirle “adiós” a Python es introducir quit() en el símbolo indicador del
sistema >>>.
>>> x = 6
>>> print(x)
6
>>> y = x * 7
>>> print(y)
46
Programación
42
>>>
En este ejemplo, le pedimos a Python que recuerde el valor seis y use la etiqueta x para que
podamos recuperar el valor más tarde. Comprobamos que Python ha guardado de verdad el valor
usando print. Luego le pedimos a Python que recupere x, lo multiplique por siete y guarde el valor
calculado en y. Finalmente, le pedimos a Python que escriba el valor actual de y. A pesar de que
estamos escribiendo estos comandos en Python línea a línea, Python los está tratando como una
secuencia ordenada de sentencias, en la cual las últimas frases son capaces de obtener datos
creados en las anteriores. Estamos, por tanto, escribiendo nuestro primer párrafo sencillo con cuatro
frases en un orden lógico y útil.
La esencia de un intérprete consiste en ser capaz de mantener una conversación interactiva
como la mostrada más arriba. Un compilador necesita que le entreguen el programa completo en
un fichero, y luego ejecuta un proceso para traducir el código fuente de alto nivel a código máquina,
tras lo cual coloca ese código máquina resultante dentro de otro fichero para su posterior ejecución.
En sistemas Windows, a menudo esos ejecutables en código máquina tienen un sufijo o
extensión como “.exe” o “.dll”, que significan “ejecutable” y “librería de enlace dinámico” (dynamic
link library) respectivamente. Si abrieras un fichero ejecutable con un editor de texto, verías algo
completamente disparatado e ilegible:
^?ELF^A^A^A^@^@^@^@^@^@^@^@^@^B^@^C^@^A^@^@^@\xa0\x82
^D^H4^@^@^@\x90^]^@^@^@^@^@^@4^@ ^@^G^@(^@$^@!^@^F^@
^@^@4^@^@^@4\x80^D^H4\x80^D^H\xe0^@^@^@\xe0^@^@^@^E
^@^@^@^D^@^@^@^C^@^@^@^T^A^@^@^T\x81^D^H^T\x81^D^H^S
^@^@^@^S^@^@^@^D^@^@^@^A^@^@^@^A\^D^HQVhT\x83^D^H\xe8
....
No resulta fácil leer o escribir código máquina, pero afortunadamente disponemos de
intérpretes y compiladores que nos permiten escribir en lenguajes de alto nivel, como Python o C.
Llegados a este punto en la explicación acerca de los compiladores e intérpretes,
seguramente te estarás preguntando algunas cosas acerca del propio intérprete de Python. ¿En
qué lenguaje está escrito? ¿Está escrito en un lenguaje compilado? Cuando escribimos “python”,
¿qué ocurre exactamente?
El intérprete de Python está escrito en un lenguaje de alto nivel llamado “C”.
Escribiendo un programa
Escribir comandos en el intérprete de Python es un buen modo de experimentar con las
capacidades de Python, pero no es lo más recomendado a la hora de resolver problemas más
complejos. Cuando queremos escribir un programa, usamos un editor de texto para escribir las
instrucciones de Python en un fichero, que recibe el nombre de script. Por convención, los scripts
de Python tienen nombres que terminan en .py. Para ejecutar el script, hay que indicarle al intérprete
de Python el nombre del fichero.
47
Programación
¿Qué es un programa?
Podemos definir un programa, en su forma más básica, como una secuencia de
declaraciones o sentencias que han sido diseñadas para hacer algo. Tal vez resulte más fácil
comprender qué es un programa pensando en un problema que pudiera ser resuelto a través de un
programa, y luego estudiando cómo sería el programa que solucionaría ese problema.
Supongamos que estás haciendo una investigación de computación o informática social en
mensajes de Facebook, y te interesa conocer cuál es la palabra más utilizada en un conjunto de
mensajes. Podrías imprimir el flujo de mensajes de Facebook y revisar con atención el texto,
buscando la palabra más común, pero sería un proceso largo y muy propenso a errores. Sería más
inteligente escribir un programa en Python para encargarse de la tarea con rapidez y precisión.
Por ejemplo, fíjate en el siguiente texto, que trata de un payaso y un coche. Estúdialo y trata
de averiguar cuál es la palabra más común y cuántas veces se repite.
El payaso corrió tras el coche y el coche se metió dentro de la tienda y la tienda cayó sobre
el payaso y el coche
Ahora imagina que haces lo mismo pero buscando a través de millones de líneas de texto.
Francamente, tardarías menos aprendiendo Python y escribiendo un programa en ese lenguaje
para contar las palabras que si tuvieras que ir revisando todas ellas una a una.
Escribe el siguiente código en cualquier editor de texto (notepad o bloc de notas), utilizando
la tecla TAB para indentar las líneas tal cual aparecen en este texto y guárdalo con el nombre
palabras y la extensión .py (palabras.py)
name = input('Enter file:')
handle = open(name, 'r')
counts = dict()
print(bigword, bigcount)
48
Programación
Parece demasiado simple para ser cierto, y por supuesto nunca es tan sencillo. Es como si
dijéramos que andar es simplemente “poner un pie delante del otro”. El “arte” de escribir un
programa es componer y entrelazar juntos esos elementos básicos muchas veces hasta conseguir
al final algo que resulte útil para sus usuarios.
El programa para contar palabras que vimos antes utiliza al mismo tiempo todos esos
patrones excepto uno.
¿Qué es posible que vaya mal?
Como vimos en nuestra anterior conversación con Python, debemos comunicarnos con
mucha precisión cuando escribimos código Python. El menor error provocará que Python se niegue
a hacer funcionar tu programa.
Sus mensajes de error simplemente se tratan de una petición de ayuda del propio Python.
Ha examinado lo que has tecleado, y sencillamente no es capaz de entender lo que has escrito.
A medida que tus programas vayan aumentando su complejidad, te encontrarás con tres
tipos de errores generales:
Errores de sintaxis (Syntax errors) Estos son los primeros errores que cometerás y
también los más fáciles de solucionar. Un error de sintaxis significa que has violado las reglas
“gramaticales” de Python. Python hace todo lo que puede para señalar el punto exacto, la línea y el
49
Programación
carácter donde ha detectado el fallo. Lo único complicado de los errores de sintaxis es que a veces
el error que debe corregirse está en realidad en una línea anterior a la cual Python detectó ese fallo.
De modo que la línea y el carácter que Python indica en un error de sintaxis pueden ser tan sólo un
punto de partida para tu investigación.
Errores lógicos: Se produce un error lógico cuando un programa tiene una sintaxis correcta,
pero existe un error en el orden de las sentencias o en la forma en que están relacionadas unas con
otras. Un buen ejemplo de un error lógico sería: “toma un trago de tu botella de agua, ponla en tu
mochila, camina hasta la biblioteca y luego vuelve a enroscar la tapa en la botella.”
Errores semánticos Un error semántico ocurre cuando la descripción que has brindado de
los pasos a seguir es sintácticamente perfecta y está en el orden correcto, pero sencillamente hay
un error en el programa. El programa es correcto, pero no hace lo que tú pretendías que hiciera. Un
ejemplo podría ser cuando le das indicaciones a alguien sobre cómo llegar a un restaurante, y le
dices “. . . cuando llegues a la intersección con la gasolinera, gira a la izquierda, continúa durante
otro kilómetro y el restaurante es el edificio rojo que encontrarás a tu izquierda.”. Tu amigo se retrasa
y te llama para decirte que está en una granja dando vueltas alrededor de un granero, sin rastro
alguno de un restaurante. Entonces le preguntas “¿giraste a la izquierda o la derecha?”, y te
responde “Seguí tus indicaciones al pie de la letra, dijiste que girara a la izquierda y continuar un
kilómetro desde la gasolinera.”, entonces le respondes “Lo siento mucho, porque a pesar de que
mis indicaciones fueron sintácticamente correctas, tristemente contenían un pequeño, pero no
detectado, error semántico.”.
Insisto en que, ante cualquiera de estos tres tipos de errores, Python únicamente hace lo
que está a su alcance para seguir al pie de la letra lo que tú le has pedido que haga.
50
Programación
Valores y tipos
Un valor es una de las cosas básicas que utiliza un programa, como una letra o un número.
Los valores que hemos visto hasta ahora han sido 1, 2, y “¡Hola, mundo!”
Esos valores pertenecen a tipos diferentes: 2 es un entero (int), y “¡Hola, mundo!” es una
cadena (string), que recibe ese nombre porque contiene una “cadena” de letras. Tú (y el intérprete)
podéis identificar las cadenas porque van encerradas entre comillas.
La sentencia print también funciona con enteros. Vamos a usar el comando Python para
iniciar el intérprete.
python
>>> print(4)
4
Si no estás seguro de qué tipo de valor estás manejando, el intérprete te lo puede decir.
51
Programación
Variables
Una de las características más potentes de un lenguaje de programación es la capacidad
de manipular variables. Una variable es un nombre que se refiere a un valor.
Una sentencia de asignación crea variables nuevas y las da valores:
>>> mensaje = 'Y ahora algo completamente diferente'
>>> n = 17
>>> pi = 3.1415926535897931
52
Programación
Este ejemplo hace tres asignaciones. La primera asigna una cadena a una variable nueva
llamada mensaje; la segunda asigna el entero 17 a n; la tercera asigna el valor (aproximado) de π
a pi.
Para mostrar el valor de una variable, se puede usar la sentencia print:
>>> print(n)
17
>>> print(pi)
3.141592653589793
El tipo de una variable es el tipo del valor al que se refiere.
>>> type(mensaje)
<class 'str'>
>>> type(n)
<class 'int'>
>>> type(pi)
<class 'float'>
Nombres de variables y palabras claves
Los programadores generalmente eligen nombres para sus variables que tengan sentido y
documenten para qué se usa esa variable.
Los nombres de las variables pueden ser arbitrariamente largos. Pueden contener tanto
letras como números, pero no pueden comenzar con un número. Se pueden usar letras mayúsculas,
pero es buena idea comenzar los nombres de las variables con una letra minúscula (veremos por
qué más adelante).
El carácter guión-bajo (_) puede utilizarse en un nombre. A menudo se utiliza en nombres
con múltiples palabras, como en mi_nombre o velocidad_de_golondrina_sin_carga. Los nombres
de las variables pueden comenzar con un carácter guión-bajo, pero generalmente se evita usarlo
así a menos que se esté escribiendo código para librerías que luego utilizarán otros.
Si se le da a una variable un nombre no permitido, se obtiene un error de sintaxis:
>>> 76trombones = 'gran desfile'
SyntaxError: invalid syntax
>>> more@ = 1000000
SyntaxError: invalid syntax
>>> class = 'Teorema avanzado de Zymurgy'
SyntaxError: invalid syntax
76trombones es incorrecto porque comienza por un número. more@ es incorrecto porque
contiene un carácter no permitido, @. Pero, ¿qué es lo que está mal en class?
53
Programación
Pues resulta que class es una de las palabras clave de Python. El intérprete usa palabras
clave para reconocer la estructura del programa, y esas palabras no pueden ser utilizadas como
nombres de variables.
Python reserva 33 palabras claves para su propio uso:
and del from None True
as elif global nonlocal try
assert else if not while
break except import or with
class False in pass yield
continue finally is raise
def for lambda return
Puede que quieras tener esta lista a mano. Si el intérprete se queja por el nombre de una
de tus variables y no sabes por qué, comprueba si ese nombre está en esta lista.
Sentencias
Una sentencia es una unidad de código que el intérprete de Python puede ejecutar. Hemos
visto hasta ahora dos tipos de sentencia: print y las asignaciones.
Cuando escribes una sentencia en modo interactivo, el intérprete la ejecuta y muestra el
resultado, si es que lo hay.
Un script normalmente contiene una secuencia de sentencias. Si hay más de una sentencia,
los resultados aparecen de uno en uno según se van ejecutando las sentencias.
Por ejemplo, el script
print(1)
x=2
print(x)
Produce la salida
1
2
La sentencia de asignación no produce ninguna salida.
Operadores y operandos
Los operadores son símbolos especiales que representan cálculos, como la suma o la
multiplicación. Los valores a los cuales se aplican esos operadores reciben el nombre de operandos.
Los operadores +, -, /, y \* realizan sumas, restas, multiplicaciones, divisiones y
exponenciación (elevar un número a una potencia), como se muestra en los ejemplos siguientes:
20+32
54
Programación
hour-1
hour*60+minute
minute/60
5**2
(5+9)*(15-7)
Ha habido un cambio en el operador de división entre Python 2.x y Python 3.x. En Python
3.x, el resultado de esta división es un resultado de punto flotante:
>>> minute = 59
>>> minute/60
0.9833333333333333
El operador de división en Python 2.0 dividiría dos enteros y truncar el resultado a un entero:
>>> minute = 59
>>> minute/60
0
Para obtener la misma respuesta en Python 3.0 use división dividida (// integer).
>>> minute = 59
>>> minute//60
0
En Python 3, la división de enteros funciona mucho más como cabría esperar. Si ingresaste
la expresión en una calculadora.
Expresiones
Una expresión es una combinación de valores, variables y operadores. Un valor por sí mismo
se considera una expresión, y también lo es una variable, así que las siguientes expresiones son
todas válidas (asumiendo que la variable x tenga un valor asignado):
17
x
x + 17
Si escribes una expresión en modo interactivo, el intérprete la evalúa y muestra el resultado:
>>> 1 + 1
2
Sin embargo, en un script, ¡una expresión por sí misma no hace nada! Esto a menudo puede
producir confusión entre los principiantes.
Ejercicio 1: Escribe las siguientes sentencias en el intérprete de Python para comprobar qué
hacen:
55
Programación
5
x=5
x+1
Operador módulo
El operador módulo trabaja con enteros y obtiene el resto de la operación consistente en
dividir el primer operando por el segundo. En Python, el operador módulo es un signo de porcentaje
(%). La sintaxis es la misma que se usa para los demás operadores:
>>> quotient = 7 // 3
>>> print(quotient)
2
>>> remainder = 7 % 3
>>> print(remainder)
1
56
Programación
El operador + funciona con las cadenas, pero no realiza una suma en el sentido matemático.
En vez de eso, realiza una concatenación, que quiere decir que une ambas cadenas, enlazando el
final de la primera con el principio de la segunda. Por ejemplo:
>>> primero = 10
>>> segundo = 15
>>> print(primero+segundo)
25
>>> primero = '100'
>>> segundo = '150'
>>> print(primero + segundo)
100150
La salida de este programa es 100150.
El operador * también trabaja con cadenas multiplicando el contenido de una cadena por un
entero. Por ejemplo:
>>> primero = 'Test '
>>> second = 3
>>> print(primero * second)
Test Test Test
A veces necesitaremos que sea el usuario quien nos proporcione el valor para una variable,
a través del teclado. Python proporciona una función interna llamada input que recibe la entrada
desde el teclado. Cuando se llama a esa función, el programa se detiene y espera a que el usuario
escriba algo. Cuando el usuario pulsa Retorno o Intro, el programa continúa e input devuelve como
una cadena aquello que el usuario escribió.
>>> entrada = input()
57
Programación
Comentarios
A medida que los programas se van volviendo más grandes y complicados, se vuelven más
difíciles de leer. Los lenguajes formales son densos, y a menudo es complicado mirar un trozo de
código e imaginarse qué es lo que hace, o por qué.
58
Programación
Por eso es buena idea añadir notas a tus programas, para explicar en un lenguaje normal
qué es lo que el programa está haciendo. Estas notas reciben el nombre de comentarios, y en
Python comienzan con el símbolo #:
# calcula el porcentaje de hora transcurrido
porcentaje = (minuto * 100) / 60
En este caso, el comentario aparece como una línea completa. Pero también puedes poner
comentarios al final de una línea
porcentaje = (minuto * 100) / 60 # porcentaje de una hora
Todo lo que va desde # hasta el final de la línea es ignorado—no afecta para nada al
programa.
Los comentarios son más útiles cuando documentan características del código que no
resultan obvias. Es razonable asumir que el lector puede descifrar qué es lo que el código hace; es
mucho más útil explicarle por qué.
Este comentario es redundante con el código e inútil:
v = 5 # asigna 5 a v
Este comentario contiene información útil que no está en el código:
v = 5 # velocidad en metros/segundo.
Elegir nombres adecuados para las variables puede reducir la necesidad de comentarios,
pero los nombres largos también pueden ocasionar que las expresiones complejas sean difíciles de
leer, así que hay que conseguir una solución de compromiso.
59
Programación
de texto son conscientes de la sintaxis de Python y colorearán las palabras reservadas de forma
diferente para darte pistas que te permitan mantener tus variables y las palabras reservadas
separados. Dentro de poco empezarás a leer Python y podrás determinar rápidamente qué es una
variable y qué es una palabra reservada.
Depuración
En este punto, el error de sintaxis que es más probable que cometas será intentar utilizar
nombres de variables no válidos, como class y yield, que son palabras clave, o odd~job y US$, que
contienen caracteres no válidos.
Si pones un espacio en un nombre de variable, Python cree que se trata de dos operandos
sin ningún operador:
>>> bad name = 5
SyntaxError: invalid syntax
>>> month = 09
File "<stdin>", line 1
month = 09
^
SyntaxError: invalid token
Para la mayoría de errores de sintaxis, los mensajes de error no ayudan mucho. Los
mensajes más comunes son SyntaxError: invalid syntax y SyntaxError: invalid token, ninguno de
los cuales resulta muy informativo.
El runtime error (error en tiempo de ejecución) que es más probable que obtengas es un
“use before def” (uso antes de definir); que significa que estás intentando usar una variable antes
de que le hayas asignado un valor. Eso puede ocurrir si escribes mal el nombre de la variable:
>>> principal = 327.68
>>> interest = principle * rate
NameError: name 'principle' is not defined
Los nombres de las variables son sensibles a mayúsculas, así que LaTeX no es lo mismo
que latex.
En este punto, la causa más probable de un error semántico es el orden de las operaciones.
Por ejemplo, para evaluar 1/2𝜋 , puedes sentirte tentado a escribir
>>> 1.0 / 2.0 * pi
Pero la división se evalúa antes, ¡así que obtendrás π/2, que no es lo mismo! No hay forma
de que Python sepa qué es lo que querías escribir exactamente, así que en este caso no obtienes
un mensaje de error; simplemente obtienes una respuesta incorrecta.
61
Programación
Ejecución condicional
Expresiones booleanas
Una expresión booleana es aquella que puede ser verdadera (True) o falsa (False). Los
ejemplos siguientes usan el operador ==, que compara dos operandos y devuelve True si son
iguales y False en caso contrario:
>>> 5 == 5
True
>>> 5 == 6
False
True y False son valores especiales que pertenecen al tipo bool (booleano); no son cadenas:
>>> type(True)
<class 'bool'>
>>> type(False)
<class 'bool'>
El operador == es uno de los operadores de comparación; los demás son:
x != y # x es distinto de y
x>y # x es mayor que y
x<y # x es menor que y
x >= y # x es mayor o igual que y
x <= y # x es menor o igual que y
x is y # x es lo mismo que y
x is not y # x no es lo mismo que y
A pesar de que estas operaciones probablemente te resulten familiares, los símbolos en
Python son diferentes de los símbolos matemáticos que se usan para realizar las mismas
operaciones. Un error muy común es usar sólo un símbolo igual (=) en vez del símbolo de doble
igualdad (==). Recuerda que = es un operador de asignación, y == es un operador de comparación.
No existe algo como =< o =>.
62
Programación
Operadores lógicos
Existen tres operadores lógicos: and (y), or (o), y not (no). El significado semántico de estas
operaciones es similar a su significado en inglés. Por ejemplo,
x > 0 and x < 10
es verdadero sólo cuando x es mayor que 0 y menor que 10.
n%2 == 0 or n%3 == 0 es verdadero si cualquiera de las condiciones es verdadera, es decir,
si el número es divisible por 2 o por 3.
Finalmente, el operador not niega una expresión booleana, de modo que not (x > y) es
verdadero si x > y es falso; es decir, si x es menor o igual que y.
Estrictamente hablando, los operandos de los operadores lógicos deberían ser expresiones
booleanas, pero Python no es muy estricto. Cualquier número distinto de cero se interpreta como
“verdadero.”
>>> 17 and True
True
Esta flexibilidad puede ser útil, pero existen ciertas sutilezas en ese tipo de uso que pueden
resultar confusas. Es posible que prefieras evitar usarlo de este modo hasta que estés bien seguro
de lo que estás haciendo.
Ejecución condicional
Para poder escribir programas útiles, casi siempre vamos a necesitar la capacidad de
comprobar condiciones y cambiar el comportamiento del programa de acuerdo a ellas. Las
sentencias condicionales nos proporcionan esa capacidad. La forma más sencilla es la sentencia if:
if x > 0 :
print('x es positivo')
La expresión booleana después de la sentencia if recibe el nombre de condición. La
sentencia if se finaliza con un carácter de dos-puntos (:) y la(s) línea(s) que van detrás de la
sentencia if van indentadas1 (es decir, llevan una tabulación o varios espacios en blanco al
principio).
Si la condición lógica es verdadera, la sentencia indentada será ejecutada. Si la condición
es falsa, la sentencia indentada será omitida.
La sentencia if tiene la misma estructura que la definición de funciones o los bucles for2. La
sentencia consiste en una línea de encabezado que termina con el carácter dos-puntos (:) seguido
por un bloque indentado. Las sentencias de este tipo reciben el nombre de sentencias compuestas,
porque se extienden a lo largo de varias líneas.
No hay límite en el número de sentencias que pueden aparecer en el cuerpo, pero debe
haber al menos una. Ocasionalmente, puede resultar útil tener un cuerpo sin sentencias
63
Programación
(normalmente como emplazamiento reservado para código que no se ha escrito aún). En ese caso,
se puede usar la sentencia pass, que no hace nada.
if x < 0 :
pass # ¡Necesito gestionar los valores negativos!
Ejecución alternativa
La segunda forma de la sentencia if es la ejecución alternativa, en la cual existen dos
posibilidades y la condición determina cuál de ellas será ejecutada. La sintaxis es similar a ésta:
if x%2 == 0 :
print('x es par')
else :
print('x es impar')
Si al dividir x por 2 obtenemos como resto 0, entonces sabemos que x es par, y el programa
muestra un mensaje a tal efecto. Si esa condición es falsa, se ejecuta el segundo conjunto de
sentencias.
Dado que la condición debe ser obligatoriamente verdadera o falsa, solamente una de las
alternativas será ejecutada. Las alternativas reciben el nombre de ramas, dado que se trata de
ramificaciones en el flujo de la ejecución.
Condicionales encadenados
64
Programación
Algunas veces hay más de dos posibilidades, de modo que necesitamos más de dos
ramas. Una forma de expresar una operación como ésa es usar un condicional encadenado:
if x < y:
print('x es menor que y')
elif x > y:
print('x es mayor que y')
else:
print('x e y son iguales')
elif es una abreviatura para “else if”. En este caso también será ejecutada únicamente una
de las ramas.
No hay un límite para el número de sentencias elif. Si hay una cláusula else, debe ir al final,
pero tampoco es obligatorio que ésta exista.
if choice == 'a':
print('Respuesta incorrecta')
elif choice == 'b':
print('Respuesta correcta')
elif choice == 'c':
print('Casi, pero no es correcto')
Cada condición es comprobada en orden. Si la primera es falsa, se comprueba la siguiente
y así con las demás. Si una de ellas es verdadera, se ejecuta la rama correspondiente, y la sentencia
termina. Incluso si hay más de una condición que sea verdadera, sólo se ejecuta la primera que se
encuentra.
Condicionales anidados
Un condicional puede también estar anidado dentro de otro. Podríamos haber escrito el
ejemplo anterior de las tres ramas de este modo:
if x == y:
print('x e y son iguales')
else:
if x < y:
65
Programación
66
Programación
Los PCs se suelen utilizar a menudo para automatizar tareas repetitivas. Repetir tareas
idénticas o muy similares sin cometer errores es algo que a las máquinas se les da bien y en cambio
a las personas no. Como las iteraciones resultan tan habituales, Python proporciona varias
características en su lenguaje para hacerlas más sencillas.
Una forma de iteración en Python es la sentencia while. He aquí un programa sencillo que
cuenta hacia atrás desde cinco y luego dice “¡Despegue!”.
n=5
while n > 0:
print(n)
n=n-1
print('¡Despegue!')
Casi se puede leer la sentencia while como si estuviera escrita en inglés. Significa, “Mientras
n sea mayor que 0, muestra el valor de n y luego reduce el valor de n en 1 unidad. Cuando llegues
a 0, sal de la sentencia while y muestra la palabra ¡Despegue!”
Éste es el flujo de ejecución de la sentencia while, explicado de un modo más formal:
1. Se evalúa la condición, obteniendo Verdadero or Falso.
2. Si la condición es falsa, se sale de la sentencia while y se continúa la ejecución en la
siguiente sentencia.
3. Si la condición es verdadera, se ejecuta el cuerpo del while y luego se vuelve al paso 1.
Este tipo de flujo recibe el nombre de bucle, ya que el tercer paso enlaza de nuevo con el
primero. Cada vez que se ejecuta el cuerpo del bucle se dice que realizamos una iteración. Para el
bucle anterior, podríamos decir que “ha tenido cinco iteraciones”, lo que significa que el cuerpo del
bucle se ha ejecutado cinco veces.
El cuerpo del bucle debe cambiar el valor de una o más variables, de modo que la condición
pueda en algún momento evaluarse como falsa y el bucle termine. La variable que cambia cada vez
que el bucle se ejecuta y controla cuándo termina éste, recibe el nombre de variable de iteración.
Si no hay variable de iteración, el bucle se repetirá para siempre, resultando así un bucle infinito.
Bucles infinitos
Una fuente de diversión sin fin para los programadores es la constatación de que las
instrucciones del champú: “Enjabone, aclare, repita”, son un bucle infinito, ya que no hay una
variable de iteración que diga cuántas veces debe ejecutarse el proceso.
En el caso de una cuenta atrás, podemos verificar que el bucle termina, ya que sabemos
que el valor de n es finito, y podemos ver que ese valor se va haciendo más pequeño cada vez que
se repite el bucle, de modo que en algún momento llegará a 0. Otras veces un bucle es obviamente
infinito, porque no tiene ninguna variable de iteración.
Bucles infinitos” y break
A veces no se sabe si hay que terminar un bucle hasta que se ha recorrido la mitad del
cuerpo del mismo. En ese caso se puede crear un bucle infinito a propósito y usar la sentencia break
para salir fuera de él cuando se desee.
67
Programación
68
Programación
afirmativamente (“detente cuando ocurra. . . ”), en vez de tener que hacerlo con lógica negativa
(“sigue haciéndolo hasta que ocurra. . . ”).
69
Programación
A veces se desea repetir un bucle a través de un conjunto de cosas, como una lista de
palabras, las líneas de un archivo, o una lista de números. Cuando se tiene una lista de cosas para
recorrer, se puede construir un bucle definido usando una sentencia for. A la sentencia while se la
llama un bucle indefinido, porque simplemente se repite hasta que cierta condición se hace Falsa,
mientras que el bucle for se repite a través de un conjunto conocido de elementos, de modo que
ejecuta tantas iteraciones como elementos hay en el conjunto.
La sintaxis de un bucle for es similar a la del bucle while, en ella hay una sentencia for y un
cuerpo que se repite:
amigos = ['Joseph', 'Glenn', 'Sally']
for amigo in amigos:
print('Feliz año nuevo:', amigo)
print('¡Terminado!')
En términos de Python, la variable amigos es una lista1 de tres cadenas y el bucle for se
mueve recorriendo la lista y ejecuta su cuerpo una vez para cada una de las tres cadenas en la lista,
produciendo esta salida:
Feliz año nuevo: Joseph
Feliz año nuevo: Glenn
Feliz año nuevo: Sally
¡Terminado!
La traducción de este bucle for al español no es tan directa como en el caso del while, pero
si piensas en los amigos como un conjunto, sería algo así como: “Ejecuta las sentencias en el
cuerpo del bucle una vez para (for) cada amigo que esté en (in) el conjunto llamado amigos.”
Revisando el bucle for, for e in son palabras reservadas de Python, mientras que amigo y
amigos son variables.
for amigo in amigos:
print('Feliz año nuevo::', amigo)
En concreto, amigo es la variable de iteración para el bucle for. La variable amigo cambia
para cada iteración del bucle y controla cuándo se termina el bucle for. La variable de iteración se
desplaza sucesivamente a través de las tres cadenas almacenadas en la variable amigos.
Diseños de bucles
A menudo se usa un bucle for o while para movernos a través de una lista de elementos o
el contenido de un archivo y se busca algo, como el valor más grande o el más pequeño de los
datos que estamos revisando.
Los bucles generalmente se construyen así:
• Se inicializan una o más variables antes de que el bucle comience
70
Programación
• Se realiza alguna operación con cada elemento en el cuerpo del bucle, posiblemente
cambiando las variables dentro de ese cuerpo.
• Se revisan las variables resultantes cuando el bucle se completa
Usaremos ahora una lista de números para demostrar los conceptos y construcción de estos
diseños de bucles.
71
Programación
Ni el bucle que cuenta los elementos ni el que los suma resultan particularmente útiles en la
práctica, dado que existen las funciones internas len() y sum() que cuentan el número de elementos
de una lista y el total de elementos en la misma respectivamente.
Bucles de máximos y mínimos
Para encontrar el valor mayor de una lista o secuencia, construimos el bucle siguiente:
mayor = None
print('Antes:', mayor)
for valor in [3, 41, 12, 9, 74, 15]:
if mayor is None or valor > mayor :
mayor = valor
print('Bucle:', valor, mayor)
print('Mayor:', mayor)
Cuando se ejecuta el programa, se obtiene la siguiente salida:
Antes: None
Bucle: 3 3
Bucle: 41 41
Bucle: 12 41
Bucle: 9 41
Bucle: 74 74
Bucle: 15 74
Mayor: 74
Debemos pensar en la variable mayor como el “mayor valor visto hasta ese momento”. Antes
del bucle, asignamos a mayor el valor None. None es un valor constante especial que se puede
almacenar en una variable para indicar que la variable está “vacía”.
Antes de que el bucle comience, el mayor valor visto hasta entonces es None, dado que no
se ha visto aún ningún valor. Durante la ejecución del bucle, si mayor es None, entonces tomamos
el primer valor que tenemos como el mayor hasta entonces. Se puede ver en la primera iteración,
cuando el valor de valor es 3, mientras que mayor es None, inmediatamente hacemos que mayor
pase a ser 3.
Tras la primera iteración, mayor ya no es None, así que la segunda parte de la expresión
lógica compuesta que comprueba si valor > mayor se activará sólo cuando encontremos un valor
que sea mayor que el “mayor hasta ese momento”. Cuando encontramos un nuevo valor “mayor
aún”, tomamos ese nuevo valor para mayor. Se puede ver en la salida del programa que mayor
pasa desde 3 a 41 y luego a 74.
Al final del bucle, se habrán revisado todos los valores y la variable mayor contendrá
entonces el mayor valor de la lista.
72
Programación
Para calcular el número más pequeño, el código es muy similar con un pequeño cambio:
print('Antes:', menor)
for valor in [3, 41, 12, 9, 74, 15]:
if menor is None or valor < menor:
menor = valor
print('Bucle:', valor, menor)
print('Menor:', menor)
De nuevo, menor es el “menor hasta ese momento” antes, durante y después de que el
bucle se ejecute. Cuando el bucle se ha completado, menor contendrá el valor mínimo de la lista
También como en el caso del número de elementos y de la suma, las funciones internas
max() y min() convierten la escritura de este tipo de bucles en innecesaria.
Lo siguiente es una versión simple de la función interna de Python min():
def min(valores):
menor = None
for valor in valores:
if menor is None or valor < menor:
menor = valor
return menor
En esta versión de la función para calcular el mínimo, hemos eliminado las sentencias print,
de modo que sea equivalente a la función min, que ya está incorporada dentro de Python.
Para saber más de funciones internas de Python, sigue este código QR con tu celular
https://pythones.net/funciones-predefinidas-crear-nuestra-funcion/
73
Programación
Ejercicios de Python
Realiza los programas en Python de todos los algoritmos que se vieron en la primera parte de la
guía.
a) Hacer un programa que permita leer la edad y peso de una persona y posteriormente imprimirla.
Lista de cotejo
Criterio Si No
Utilizó nombres mnemónicos en las variables
El programa no contiene errores de semántica
El programa no contiene errores de sintaxis
Entregó el archivo .py
c) Escribir un pseudocódigo que calcule el área de un triángulo recibiendo como entrada el valor de
base y altura.
Lista de cotejo
Criterio Si No
Utilizó nombres mnemónicos en las variables
El programa no contiene errores de semántica
El programa no contiene errores de sintaxis
Entregó el archivo .py
74
Programación
Decisiones
1. Realiza los siguientes programas en Python 3.
a) Leer la venta realizada de un vendedor para calcular la comisión, si la venta es menor o igual a
1000, su comisión es de 15%, y si la venta es mayor de 1000 su comisión es de 25%, visualizar la
comisión que le corresponde.
Lista de cotejo
Criterio Si No
Utilizó nombres mnemónicos en las variables
El programa no contiene errores de semántica
El programa no contiene errores de sintaxis
Entregó el archivo .py
c) Leer los minutos de una llamada telefónica, calcular la cuenta a pagar teniendo en cuenta lo
siguiente:
• Si la llamada dura menos o igual a 3 minutos pagará 5 pesos.
• Por cada minuto adicional el costo es de 1.50 pesos.
• Visualizar la paga final de la llamada.
Lista de cotejo
Criterio Si No
Utilizó nombres mnemónicos en las variables
El programa no contiene errores de semántica
El programa no contiene errores de sintaxis
Entregó el archivo .py
d) Leer la medida de un triángulo y de acuerdo con sus medidas imprimir si es equilátero, Isósceles
o escaleno.
Lista de cotejo
Criterio Si No
Utilizó nombres mnemónicos en las variables
El programa no contiene errores de semántica
El programa no contiene errores de sintaxis
Entregó el archivo .py
75
Programación
Lista de cotejo
Criterio Si No
Utilizó nombres mnemónicos en las variables
El programa no contiene errores de semántica
El programa no contiene errores de sintaxis
Entregó el archivo .py
f) Leer tres calificaciones de un alumno, calcule el promedio e imprima alguno de estos mensajes:
Si el promedio es >= 7 mostrar “Promocionado”.
Si el promedio es >= 6 y <7 mostrar “Suficiente”.
Si el promedio es <6 mostrar “No Suficiente”.
Lista de cotejo
Criterio Si No
Utilizó nombres mnemónicos en las variables
El programa no contiene errores de semántica
El programa no contiene errores de sintaxis
Entregó el archivo .py
Ciclos
Para Ciclo for
a) Hacer un programa que Imprima los primeros 10 números.
Lista de cotejo
Criterio Si No
Utilizó nombres mnemónicos en las variables
El programa no contiene errores de semántica
El programa no contiene errores de sintaxis
Entregó el archivo .py
76
Programación
d) Lee 15 números cualquiera e imprime cuántos números positivos, negativos o nulos fueron
capturados.
Lista de cotejo
Criterio Si No
Utilizó nombres mnemónicos en las variables
El programa no contiene errores de semántica
El programa no contiene errores de sintaxis
Entregó el archivo .py
Para While
e) Lee un número con valores de 0 a 10, que termina con el valor sea –1, y nos dice si hubo o no
alguna con el valor 10.
Lista de cotejo
Criterio Si No
Utilizó nombres mnemónicos en las variables
El programa no contiene errores de semántica
El programa no contiene errores de sintaxis
Entregó el archivo .py
Lista de cotejo
Criterio Si No
Utilizó nombres mnemónicos en las variables
El programa no contiene errores de semántica
El programa no contiene errores de sintaxis
Entregó el archivo .py
77
Programación
h) Calcula la media de X números, se dejarán de solicitar números hasta que se introduzca el cero.
Lista de cotejo
Criterio Si No
Utilizó nombres mnemónicos en las variables
El programa no contiene errores de semántica
El programa no contiene errores de sintaxis
Entregó el archivo .py
j) Lee 20 números e imprime cuantos números fueron menores de 15, cuántos números fueron
mayores de 50 y cuántos números se encuentran entre 45 y 55.
Lista de cotejo
Criterio Si No
Utilizó nombres mnemónicos en las variables
El programa no contiene errores de semántica
El programa no contiene errores de sintaxis
Entregó el archivo .py
k) Lee dos números y muestra todos los números que van desde el primero al segundo. Se debe
controlar que los valores sean correctos.
Lista de cotejo
Criterio Si No
Utilizó nombres mnemónicos en las variables
El programa no contiene errores de semántica
El programa no contiene errores de sintaxis
Entregó el archivo .py
78
Programación
Toda la información de Python, documentación, ejemplos, libros, descargar, foros, etc. Los puedes
encontrar en el siguiente enlace y utiliza la opción de traducir la página a español de tu navegador
(Se recomienda Google Chrome )
https://www.python.org/
https://www.youtube.com/watch?v=chPhlsHoEPo
79
Programación
Autoevaluación
Autoevaluación
Reflexiona y contesta en forma individual
Si No Porque
¿Consideras que fue adecuado tu
desempeño durante la construcción de
contenido?
¿Mostraste en algún momento actitudes
negativas o desfavorables para tu propio
proceso de aprendizaje?
¿Consideras que aumentó tu esquema
de conocimiento con el estudio del
submódulo de aprendizaje que has
finalizado
¿Detectaste zonas de oportunidad para
mejorar en el próximo submódulo de
aprendizaje?
Aprendizajes esperados
Plantee el uso de diagramas de flujo y
algoritmos, fomentando su desarrollo
creativo, para solucionar problemas
cotidianos de su contexto?
Expliqué los lenguajes de programación
y sus metodologías de forma consciente,
asertiva y empática, en la resolución de
problemas del ámbito académico y
laboral
Propuse la creación de códigos
construcciones secuenciales,
condicionales y/o repetitivas, asumiendo
la frustración como parte del proceso de
aprendizaje, en la solución de problemas
de mi entorno?
80
Programación
Glosario II
82
Programación
Apéndice 1
A finales de 2016 se produjo el lanzamiento de Python 3.6. El propósito de esta entrada es mostrar,
paso a paso, su instalación en equipos con distintas versiones de Windows.
Windows 7, 8, 8.1 y 10
Para instalar Python 3.6 en un equipo con el sistema operativo Windows 7, 8, 8.1 o 10 utilizar una
cuenta de usuario con privilegios de administrador, o bien, la propia cuenta del administrador local.
Por seguridad, se puede agregar -temporalmente- para este proceso de instalación la cuenta del
usuario actual al grupo local Administradores. Para ello, iniciar la aplicación de Administración de
equipos, acceder a la herramienta del sistema Usuarios y grupos locales y agregar la cuenta actual
a dicho grupo.
En los sistemas con arquitectura 64 bit se puede instalar tanto la versión de Python para 32 bit como
para 64 bit. En general, trabajar con la versión para 64 bit mejora el rendimiento y permite que un
programa pueda utilizar más de 4 Gb de RAM, memoria límite en sistemas 32 bit. Normalmente,
trabajando por debajo de este límite no se observan diferencias de rendimiento importantes entre
ambas versiones pero se recomienda instalar la versión de 64 bits. De todas formas, si se van a
utilizar módulos de terceros, conviene comprobar si están disponibles para la versión a instalar.
1. Ir al área de descargas para Windows del sitio oficial y descargar el instalador ejecutable Python
3.6 de 32 o 64 bit.
83
Programación
3. Una vez iniciado el instalador, en la ventana Install Python 3.6.0 (64 bit) activar las casillas de las
opciones: Install launcher for all users (recommended) y Add Python 3.6 to PATH. Después,
continuar seleccionando la opción Customize installation. Choose Location and features.
4. En la ventana Optional features verificar que están activas todas las opciones y hacer clic en el
botón [Next].
84
Programación
5. En la ventana Advanced Options verificar que están activas las opciones de la imagen, escribir
la ruta del directorio de instalación "C:\Python36" (o aceptar la ruta por defecto) y comenzar la
instalación haciendo clic en el botón [Install].
7. En la ventana Setup was successful, una vez que ha concluido el proceso de instalación hacer
clic en el botón [Close]. Desde esta ventana es posible acceder a un tutorial online de Python, a
la documentación oficial del lenguaje y a información con las novedades de la presente versión.
85
Programación
8. Para probar Python acceder a la línea de comandos ejecutando el programa cmd.exe o Símbolo
del sistema. Después, escribir "python" y aceptar para iniciar el entorno interactivo de Python donde
se puede verificar la versión de Python instalada y es posible introducir comandos Python. Para
finalizar, introducir quit() o presionar Ctrl+D.
A partir de este momento se puede instalar cualquier paquete de un tercero utilizando, entre otros,
el instalador PIP. Por ejemplo, para instalar el entorno interactivo ipython:
Se instalará ipython con todas sus dependencias. En el repositorio PyPI hay decenas de miles de
paquetes disponibles para abordar todo tipo de proyectos Python.
86
Programación
En el directorio C:\Python36\Doc se encuentra una guía de ayuda muy completa de Python que se
puede explorar con un navegador web: python360.chm
87
Programación
REALIZACIÓN
88
Programación
REFERENCIAS
Fuentes electrónicas
● https://algoritmica.webcindario.com/
● https://python-para-impacientes.blogspot.com
● https://pythones.net/
● http://pseint.sourceforge.net/
Página oficial de pseint
● https://www.youtube.com/watch?v=chPhlsHoEPo
Curso de Python para principiantes canal de fazt
● https://www.python.org/
Página oficial de python
Fuentes impresas
● pseudocódigo y PSeInt, Programa educativo ingeniero en software
Instituto Tecnológico de Sonora
● Python para todos Charles Severance
Este trabajo está distribuido bajo una licencia
Attribution-NonCommercial-ShareAlike 3.0 Unported License.
89
Programación
DERECHO DE CITA
90
Programación
DIRECTORIO
91