0% encontró este documento útil (0 votos)
97 vistas49 páginas

Apuntes I Python

Este documento explica conceptos básicos de programación como algoritmos, diagramas de flujo y los elementos principales utilizados en diagramas de flujo. Describe qué es un algoritmo, sus características y provee un ejemplo. Luego explica qué son los diagramas de flujo y para qué sirven. Finalmente enumera los principales elementos gráficos utilizados en diagramas de flujo y las reglas básicas para su elaboración.

Cargado por

egomezdj
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
97 vistas49 páginas

Apuntes I Python

Este documento explica conceptos básicos de programación como algoritmos, diagramas de flujo y los elementos principales utilizados en diagramas de flujo. Describe qué es un algoritmo, sus características y provee un ejemplo. Luego explica qué son los diagramas de flujo y para qué sirven. Finalmente enumera los principales elementos gráficos utilizados en diagramas de flujo y las reglas básicas para su elaboración.

Cargado por

egomezdj
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Informática 1º Bto

Bloque C: Programación
Programando en Python

IES Fco. Grande Covián


Informática I - version 2.0.0
TIC 1º BTO IES Grande Covián
Informática I Zaragoza

1. Introducción
Un ordenador es, en esencia, un sistema capaz de realizar cálculos y tomar decisiones lógicas a
una velocidad increíblemente alta.
Dentro de estos sistemas distinguimos una parte física, hardware, formada por todos los
componentes que “se pueden tocar” y una parte lógica, software, compuesta por todos los datos
que la máquina es capaz de procesar y almacenar.
El ordenador procesará (utilizará) estos datos según el control realizado por una secuencia de
instrucciones predefinidas a las que llamaremos programas.
Programa informático: “texto” que incluye las instrucciones que un ordenador va a necesitar
ejecutar para poder resolver un problema.
Al igual que podríamos utilizar distintos lenguajes (inglés, español…) para escribir un texto
tradicional, existen muchos lenguajes de programación diferentes.
El objetivo de esta unidad es aprender a utilizar el lenguaje Python para crear programas que
resuelvan situaciones concretas.

-1-
TIC 1º BTO IES Grande Covián
Informática I Zaragoza

2. Algoritmos
Algoritmo: Serie de pasos a seguir para realizar una determinada tarea técnica.
Un algoritmo se parece a una receta. Una receta dice cómo preparar un plato siguiendo una
serie de pasos. Por ejemplo, para preparar un pastel los pasos a seguir serían: Precalentar el
horno, mezclar la harina con el azúcar y los huevos, poner la mezcla en un molde… y así
sucesivamente.
Sin embargo, el término algoritmo es un término técnico más específico que una simple receta.
Para que una “receta” pueda llegar a ser llamada algoritmo ha de cumplir las siguientes
condiciones:
1. Descripción no ambigua que define que debe hacerse en cada paso. En una receta, un paso
del tipo “cocinar hasta que esté hecho” es ambiguo, no deja claro que quiere decir “hecho”.
Una descripción más objetiva como “cocinar hasta que el queso comience a burbujear” es
más adecuada.
2. Un algoritmo ha de definir el tipo de entradas, tipo de datos que se van a suministrar al
programa. Por ejemplo, se puede requerir dos números y que ambos sean mayores que
cero. O puede requerir una palabra, o una lista de tres números.
3. Un algoritmo generará un conjunto de salidas con características definidas. Por ejemplo,
puede generar el número que sea mayor de dos entradas, la versión en mayúsculas de una
palabra, una lista ordenada de números…
4. El algoritmo siempre ha de terminar y producir un resultado en un tiempo finito.
5. Un algoritmo ha de ser capaz de generar el resultado correcto en cualquier situación. No
sería útil tener un algoritmo que resolviera un problema en el 99% de casos posibles.
6. Si un algoritmo impone una condición a las entradas (precondición), esa condición se debe
satisfacer. Por ejemplo, una precondición podría ser que el algoritmo solamente aceptara
números positivos como entradas. Si las precondiciones no se cumplen sería aceptable que
el algoritmo produjera una respuesta incorrecta o que nunca llegara a terminar.
Crear el algoritmo que resuelva el problema es un paso básico en el proceso de programación.
Ejemplo: Dada una lista de números positivos, devuelve el número mayor de la lista.
- Entradas (Inputs): Una lista L de números positivos, debe contener al menos un número.
- Salidas (outputs): Una “caja” que llamaremos max, almacenará el número mayor de la lista.
- Algoritmo:
o Asignar a max el valor 0.
o Para cada número x en la lista L, comparar su valor con max. Si x es mayor que max,
asignar a max el valor x.
o Mostrar el valor almacenado en max que contiene el valor máximo en la lista.
¿Satisface esta “receta” los criterios para ser considerada un algoritmo?
1. ¿Es no ambigua? Si. Cada paso es una operación sencilla fácilmente traducible a un
código de programación (Python en nuestro caso).
2. ¿Se definen las entradas? Sí
3. ¿Se definen las salidas? Sí.
4. ¿Está garantizada su finalización? Sí. La lista L tiene un tamaño finito, por lo tanto, tras
revisar cada elemento de la lista el algoritmo se detendrá.

-2-
TIC 1º BTO IES Grande Covián
Informática I Zaragoza

5. ¿Produce el resultado correcto? Si. En un entorno más formal habría que probar su
corrección de forma más rigurosa.

3. Diagramas de flujo
La representación de algoritmos a través de bloques de texto es tediosa y difícil de interpretar
por una persona distinta de la que lo ha elaborado. Normalmente utilizaremos los llamados:
Diagrama de flujo: Representación gráfica mediante símbolos de un algoritmo.
Dentro de los símbolos se escribirán los pasos a seguir en el proceso.
Los diagramas de flujo, son herramientas importantes ya que permiten crear la estructura del
programa sin necesidad de dominar un lenguaje de programación.
La creación del diagrama es la primera fase del desarrollo del programa; previa a la
codificación.
Un diagrama de flujo permitirá que otros puedan comprender fácilmente nuestro algoritmo.
La única desventaja que supone utilizar diagramas de flujo es el espacio necesario para su
desarrollo. El orden es sumamente importante, las hojas deben ser numeradas y señaladas.
Actualmente contamos con software diseñado para la elaboración de diagramas de flujo y
herramientas online que permiten hacer el trabajo de forma más fácil y rápida.
Software instalado en los ordenadores de la sala de informática yEd graph Editor.

3.1 Principales elementos en un Diagrama de Flujo


Terminal

Se usa para señalar el inicio y término del diagrama de flujo.


Inicio / Fin
Datos
Sirve para pedir que se ingrese un valor a la variable de
entrada (input). También es usado para mostrar el resultado
o salida (output). Para saber si se trata de una entrada o
salida, comenzamos con la palabra 'leer' o 'escribir'
respectivamente. Entrada / Salida de Datos

Proceso

Es usado para ejecutar una orden. Por ejemplo, para hacer


una asignación, calcular una operación, etc.
Proceso
Decisión
Es una condicional, sirve para tomar un camino según el
resultado de una expresión lógica. Como resultado dividirá la
secuencia en dos, una para el resultado positivo y otra para el
negativo. Condicional

-3-
TIC 1º BTO IES Grande Covián
Informática I Zaragoza

Proceso Predefinido
Llama a una subrutina para ejecutarse, de tal forma que ya
no es necesario volver a crear su diagrama. Por ejemplo, si
hemos creado un diagrama para ordenar números podemos
volver a llamarla, lo cual lo hace un elemento muy práctico. Sub-rutina
Líneas de flujo

Las flechas indican la dirección y sentido que toma el flujo de


ejecución
Flecha
Anotación

Nota que explica algún paso difícil de comprender en su


funcionamiento o propósito. La figura es similar al signo de
'corchete' y el texto va en su interior.
Anotación
Entrada Manual

Se usa para solicitar la entrada de datos por teclado. Forma


de trapezoide-rectángulo, similar a la forma que tiene un
teclado:
Entrada de Datos Manual
Documentación

Indica la presencia de un documento a utilizar en el proceso,


ya sea porque se genere, utilice o salga del proceso:
Documento
Base de Datos

Indica una lista de información con una estructura estándar


que permite operaciones de búsqueda y ordenamiento.
Base de datos

3.2 Reglas para la elaboración de un Diagrama de Flujo


1. Todo Diagrama de Flujo debe tener principio y fin.
2. Todos los símbolos han de estar conectados
3. A un símbolo de proceso pueden llegarle varias líneas
4. A un símbolo de decisión pueden llegarle varias líneas, pero sólo saldrán dos (Si o No,
Verdadero o Falso).
5. A un símbolo de inicio nunca le llegan líneas.
6. De un símbolo de fin no parte ninguna línea.
7. Las líneas de conexión son rectas (Verticales u Horizontales), nunca oblicuas o cruzadas.
8. Se deben dibujar todos los símbolos de arriba hacia abajo. Y de izquierda a derecha.

-4-
TIC 1º BTO IES Grande Covián
Informática I Zaragoza

9. Evitar términos que se asemejen a algún lenguaje de programación.


10. Utilizar comentarios al margen, para que sean entendibles por cualquiera que los lea.
11. A cada bloque se accede por arriba y/o izquierda y se sale por abajo y/o derecha.
12. Si el diagrama abarca más de una hoja es conveniente enumerarlo.
Ventajas
- Favorece la comprensión del algoritmo, nuestro cerebro reconoce de manera fácil los
dibujos.
- Permite identificar problemas, redundancias, conflictos, cuellos de botella, entre otros.
- Útil herramienta de aprendizaje para quienes se inician en el lenguaje de programación.
Desventajas
- A medida que crece la complejidad de las proposiciones, crece el detalle de la
diagramación, haciendo que sea más difícil de comprender y de seguir.

3.3 Como hacer un diagrama de flujo


Normalmente para realizar un diagrama de flujo primero crearemos su algoritmo.
Ejemplo (simplificado) de algoritmo y diagrama de
flujo para cocinar un huevo para otra persona sería:
- Pregunto si quiere el huevo frito.
- Si me dice que sí, lo frio, si me dice que no, lo hago
hervido.
- Una vez cocinado le pregunto si quiere sal en el
huevo.
- Si me dice que no lo sirvo en el plato. Si me dice que si
le hecho sal y después lo sirvo en el plato.
Una vez que ya tenemos un algoritmo con todos los
pasos, haremos un esquema con los pasos a seguir. Este
esquema será el Diagrama de Flujo.

-5-
TIC 1º BTO IES Grande Covián
Informática I Zaragoza

3.4 Ejemplos de Diagramas de Flujo


Programa que suma dos números y da el resultado por pantalla.
El símbolo de resultado es un símbolo usado en los
diagramas para soluciones con el ordenador. Es el símbolo de
salida del resultado por la pantalla del ordenador.
En el ejercicio tenemos el inicio y el fin, una entrada de
datos, para introducir los 2 números, una operación a
realizar, la suma, y un resultado a mostrar. Cada uno de esos
pasos con su símbolo correspondiente en el diagrama.

Mostrar el resultado del área de un triángulo por pantalla.


En este caso ni siquiera hemos puesto las operaciones dentro de los símbolos de entrada y de
salida, ya que con la forma del símbolo ya se entiende.

Determinar si un número es para o impar


En este caso tenemos dos posibles salidas, utilizaremos el
símbolo de tomar una decisión y la operación mod, que
devuelve el resto de una división:
¿Al dividirlo entre 2 el resto es 0? Hay 2 posibilidades. Si
lo es se ve en pantalla "Si es par", si no lo es se ve en
pantalla "No es par". Eso es la toma de decisiones.

-6-
TIC 1º BTO IES Grande Covián
Informática I Zaragoza

Diagrama de flujo para mostrar la suma de los 50


primeros números.
Lo primero es poner a cero la suma y dar el primer número a
sumar que será el 0.
Fíjate que el diagrama acaba cuando N, que es el número
que sumamos en cada momento, es 50. Mientras no sea 50 el
programa vuelve a la tercera secuencia que será sumarle un
número al anterior N = N + 1. Intenta comprenderlo y ver que
hace. Puedes realizar mentalmente el diagrama para el número 0
y verás cómo lo acabas entendiendo.

Interpreta el siguiente diagrama de flujo.

Elaborado a partir de materiales de: Jesús Vladimir Saccsa y [Link]

-7-
TIC 1º BTO IES Grande Covián
Informática I Zaragoza

4. Tipos de lenguajes de programación


Los programadores pueden escribir instrucciones utilizando varios tipos de lenguajes de
programación. Existen cientos de lenguajes diferentes. Todos ellos se pueden clasificar en tres
categorías:
1. Código máquina.
2. Lenguaje ensamblador
3. Lenguajes de alto nivel.
Código máquina
Cualquier ordenador puede entender solamente su propio lenguaje al que llamaremos código
máquina. Este código habrá sido definido para su exclusivo diseño de hardware.
El código máquina consiste de una cadena de números (formado por 1s y 0s) que le dice al
ordenador como realizar las operaciones más básicas en forma sucesiva. Este tipo de código varía
en función de la máquina.
Este tipo de lenguaje es ininteligible para los seres humanos y utilizarlo como lenguaje de
programación resulta sumamente tedioso.
Lenguaje ensamblador
Los primeros computadores se programaban utilizando código máquina, este proceso era
demasiado lento y tedioso para la mayoría de los programadores.
En lugar de utilizar una cadena de números entendible por el ordenador, los programadores
comenzaron a utilizar abreviaturas y palabras en inglés asociadas a operaciones básicas.
Estas abreviaturas formaron la base de lo que se conoce como lenguajes ensamblador. Se
obtiene así un código mucho más entendible para los humanos, pero que sin embargo es
incomprensible para los ordenadores hasta que es traducido a código máquina.
Utilizando programas traductores intermedios llamados ensambladores era posible convertir
este código en código máquina facilitando con ello la tarea del programador.

Lenguajes de alto nivel y compiladores


Con la aparición de los lenguajes ensamblador, el uso de los ordenadores aumentó
rápidamente, pero los programadores todavía tenían que utilizar una gran cantidad de
instrucciones para realizar incluso las tareas más sencillas. Para acelerar el proceso de
programación se desarrollaron los lenguajes de alto nivel.

-8-
TIC 1º BTO IES Grande Covián
Informática I Zaragoza

Estos lenguajes utilizan sentencias


individuales sencillas que permiten realizar al
ordenador tareas complejas. Cada sentencia en
lenguaje de alto nivel es la suma de muchas
órdenes en lenguaje ensamblador.
Los lenguajes de alto nivel permiten escribir
órdenes muy parecidas a una frase escrita en
inglés corriente, utilizando además una notación
matemática ordinaria.
Existen dos tipos de programas traductores, los intérpretes y los compiladores que transforman
el código escrito utilizando un lenguaje de alto nivel en código máquina.
La diferencia básica entre un lenguaje que utiliza intérprete y otro que utiliza compilador es:
- El intérprete traduce a código máquina cada orden cada vez se va a ejecutar.
- El compilador transforma el código inicial en un archivo nuevo escrito en código máquina
que será entendible por el ordenador.
Un lenguaje interpretado será pues más lento que uno compilado, pues el proceso de
traducción se tiene que ejecutar continuamente. Sin embargo, el lenguaje compilado tendrá que
ser traducido completamente a código máquina cada vez que hagamos una modificación, en el
caso de los programas complejos esto puede llevar un tiempo considerable.
Existen infinidad de lenguajes de alto nivel. Este curso vamos a centrarnos en lenguaje Python.

4.1 ¿Por qué Python?


Hemos elegido Python por varias razones:
Calidad del software: El código Python es fácil de entender, incluso si la persona que lo
interpreta no es la que lo ha escrito. Esto hace que los bloques de código sean fáciles de reutilizar
y mantener.
Portabilidad: La mayoría de los programas escritos en Python funcionan sin cambios en
cualquiera de los principales tipos de ordenadores.
Librerías de ayuda: Python viene con una gran colección de funcionalidades predesiñadas y
portables, conocidas como librería estándar. Esta librería consta de una colección acciones
preprogramadas capaces de realizar múltiples tareas. Esta biblioteca puede extenderse utilizando
librerías personales o librerías disponibles de forma libre en la red.
Integración de componentes: Los bloques de código Python pueden comunicarse fácilmente
con otros bloques de otras aplicaciones y lenguajes.

-9-
TIC 1º BTO IES Grande Covián
Informática I Zaragoza

5. Ejecutar un programa Python


¿Qué ocurre cuando el intérprete Python ejecuta un archivo de código?
Desde el punto de vista del programador.
La forma más sencilla de programar Python consiste en crear un archivo de texto con órdenes
Python, lo que llamaremos código fuente.
Código fuente: Conjunto de instrucciones que le dicen al ordenador lo que tiene que hacer.
En Python el archivo que contiene el código debe tener como extensión: .py
Ej.:
print(“hola”)
print(2 ** 100)

Para escribir el código fuente se puede utilizar cualquier editor de texto.


Tras escribir el código lo guardaremos en un [Link]. Deberás recordar la ubicación donde
has guardado el fichero, por ejemplo, la raíz del disco duro D:.
Ahora habrá que decirle al interprete que lo ejecute (que corra cada una de las órdenes del
archivo de arriba hacia abajo una tras otra).
Para ejecutar el archivo, abrimos una ventana de interprete de comandos (CMD). Para ello
pulsamos las teclas Windows+R y en la ventana emergente tecleamos CMD. Se mostrará la
ventana del intérprete de comandos (en lugar de joses aparecerá el nombre del usuario activo).

Siguiendo los pasos que se ven en la siguiente imagen nos dirigimos al lugar donde hayamos
guardado nuestro [Link]:

Para ejecutar el archivo escribimos en el terminal:


python [Link]

- 10 -
TIC 1º BTO IES Grande Covián
Informática I Zaragoza

Mostrará:

También es posible ejecutar el programa haciendo doble clic sobre su icono (parecerá
que no, ya que se cierra al terminar la ejecución) o a través del IDE que estemos
utilizando (esta opción la veremos más adelante).
Desde el punto de vista del intérprete de Python
Al ejecutar la aplicación suceden varias cosas a nivel interno, que el programador no observa:
1. Compila el código fuente en algo llamado “bytecode”.
Compilar: Proceso de traducción mediante el cual transformamos la información contendida
en el archivo .py, dividiéndola en procesos más sencillos y traduciéndola a un idioma de más
bajo nivel (más cercano a lo que el ordenador puede entender directamente).
Estos bytecodes son multiplataforma y por lo tanto portables y capaces de funcionar en
cualquier ordenador que tenga instalada la versión de Python en la que el bytecode ha sido
compilado.
Si el proceso Python tiene acceso al proceso de escritura en el ordenador guardará el archivo
con una extensión .pyc (py compilado). Estos archivos se guardarán en un subdirectorio llamado
_pycache_ situado en el directorio donde reside el .py y con un nombre que también indicará la
versión con la que fue creado (ej. [Link]).
Una vez creado el pyc, cuando volvamos a ejecutar el programa, Python saltará el proceso de
compilación y por lo tanto la ejecución será mucho más rápida.
En caso de que el intérprete detecte que ha cambiado algo en código fuente o que la versión de
Python que intenta ejecutar la aplicación sea diferente se volvería a ejecutar la compilación.
Si Python no tiene acceso al proceso de escritura en el ordenador, el proceso de compilación se
tendrá que ejecutar cada vez que ejecutemos el código fuente, ralentizando el proceso. Siempre
que sea posible es aconsejable trabajar de la primera forma.
Si trabajamos desde el terminal, nunca podremos generar el archivo .pyc.
2. Enviamos el bytecode a una “máquina virtual”. Una vez compilado y cargado en memoria
el bytecode es enviado para su ejecución a una aplicación llamada Máquina virtual de
Python (PVM).

- 11 -
TIC 1º BTO IES Grande Covián
Informática I Zaragoza

Máquina virtual de Python: Parte del intérprete de Python capaz de ejecutar estos
bytecodes. Software que simula el funcionamiento de un ordenador prescindiendo de las
características específicas de cada sistema operativo y configuración de hardware.
Estamos hablando pues de un proceso intermedio entre un traductor (lenguajes como basic)
que tendría que compilar completamente cada línea de código cada vez que se ejecuta en el
programa y un lenguaje compilado puro (C++) en el cual el proceso de compilación genera un
archivo en un código máquina que entienda directamente MI ordenador. La velocidad es
intermedia, pero la ventaja es que la PVM es capaz de tratar el bytecode y transformarlo en algo
que CUALQUIER ordenador entenderá, adaptándolo a su propia arquitectura.
Tipos de Python
Existen múltiples distribuciones diferentes del lenguaje Python. Las tres más importantes son:
- CPython: Es el estándar, la llamamos CPython para contrastarla del resto, sino nos
referiremos a ella como Python simplemente.
- Jython, para Java: Compila el código fuente en un bytecode propio del lenguaje Java y el
resultado se ejecuta en una máquina virtual de Java (JVM). La integración es total, un
programa en Jyhton funcionará aparentemente como una aplicación Java, el código podrá
importar otras clases (programas) escritos en Java…
- IronPython, para .NET: Similar al anterior pero diseñado para trabajar con las
aplicaciones .NET de Microsoft (y el equivalente Mono de Linux).
A lo largo de esta unidad trabajaremos con CPython.

- 12 -
TIC 1º BTO IES Grande Covián
Informática I Zaragoza

6. Utilizar Python desde la línea de comandos


Comenzaremos a trabajar con Python por la forma más simple, a través de la línea de
comandos, de forma muy similar a como lo haríamos con una calculadora.
En Windows utilizamos la consola y en Linux una ventana de Terminal. Abrimos la consola y
tecleamos la orden python en Windows o python3 en Linux. Se mostrará: (Windows y Linux):

En Windows también podemos seleccionar la opción Python contenida en el menú del mismo
nombre contenida en el menú de inicio.
En que veamos los iconos >>> quiere decir que estamos en una sesión interactiva del intérprete
de Python y podemos ejecutar ordenes en Python.
Atajo: La forma más rápida de acceder al intérprete de Python es abrir el cuadro de
diálogo ejecutar (tecleando TeclaWindows+R) y escribir en él la palabra python.
El hecho de que al teclear Python sin más el ordenador sea capaz de ejecutarlo se debe a que el
sistema operativo es capaz de encontrar donde está instalado Python por haberlo incluido esta
ruta en su path de búsqueda de programas cuando hemos realizado la instalación.
A esta forma de trabajar, escribiendo algo de código en la ventana y ejecutarlo directamente se
le llama crear código interactivamente. Cada vez que se pulsa enter, se muestra el resultado de la
orden ejecutada (ni siquiera haría falta poner print)
>>>pera = 'okay'
>>>pera
'okay'
>>>2 ** 8
256
Esta forma de trabajo no permite guardar código, normalmente no la utilizaremos, pero
permite experimentar con el lenguaje sin riesgo a estropear cosas en el programa real.
Cuando utilizamos una orden que requiere más de una línea de código (ordenes
compuestas) es necesario hacer dos veces clic en Enter para ejecutarla.
Vamos a comenzar a utilizar algunos sencillos comandos de Python, para comprender su
funcionamiento utilizaremos una sesión interactiva a través de la consola.
Salir de la sesión interactiva: Ejecuta la orden exit()

- 13 -
TIC 1º BTO IES Grande Covián
Informática I Zaragoza

7. Tipos de datos
Python puede manejar los siguientes tipos de datos:

Numéricos: Pueden ser


- Enteros: tipo int
- Coma flotante: tipo float, números decimales
- Complejos: no los veremos
Textos: Sera dato tipo texto cualquier información encerrada entre comillas (simples, dobles o
triples (permiten utilizar saltos de línea dentro del dato tipo texto)).
Booleanos: Solo puede tomar dos valores True y False.

- 14 -
TIC 1º BTO IES Grande Covián
Informática I Zaragoza

8. Operadores. Trabajando con números


Podemos utilizar la consola para realizar cálculos. Los operadores matemáticos en Python son:
Operador Símbolo
Suma +
Resta -
Multiplicación *
División /
División entera //
Resto de la división %
Potencia **
Paréntesis ()
Redondear * round(a,b)
*round(a,b) redondearía el número a con b decimales (ej. round(3.14, 1) generaría 3.1.
Ojo: El punto decimal se indica por medio del símbolo punto (.) y no con la coma (,).
Una vez que pulsemos Enter, tras introducir la expresión matemática, Python mostrará dos
nuevas líneas, la primera (sin el prompt >>>) contendrá el resultado y la siguiente(que comenzará
con el prompt >>>) quedará a la espera de que introduzcamos una nueva orden.
# Abre una sesión interactiva y realiza los siguientes cálculos:
>>> 2 + 2
>>> 50 - 5*6
>>> (50 - 5*6) / 4
>>> 8 / 5 # la división siempre retorna un número de punto flotante
>>> 17 // 3 # la división entera descarta la parte fraccional
>>> 17 % 3 # el operador % retorna el resto de la división
>>> 2 ** 7 # 2 a la potencia de 7
La siguiente imagen muestra los operadores aritméticos vistos en la tabla anterior más otra
serie de operadores que veremos más adelante. De momento no hace falta que los estudies.

- 15 -
TIC 1º BTO IES Grande Covián
Informática I Zaragoza

9. Comenzando a utilizar variables


Variable: Porción de la memoria del ordenador donde se puede almacenar un valor que más
adelante podrá ser utilizado/modificado en el programa.
Cada variable queda referenciada a través de un nombre de variable. Al utilizar el nombre de
variable dentro del código accederemos al valor que la variable tiene almacenado.
Normas para dar nombres a las variables
- El nombre debe empezar por una letra o por un guion bajo (_).
- El nombre no puede tener espacios en blanco.
- Es recomendable evitar utilizar caracteres no ingleses (ñ, tildes…)
- Python distingue entre mayúsculas y minúsculas (case sensitive).
Interesa utilizar nombres de variables que tengan relación con el dato almacenado.
Por convenio la primera letra se escribe en minúsculas y la primera letra de cada
palabra que forme parte del nombre tras ella con mayúscula (Ej.: miNombre)
El signo igual (=) se utiliza dentro del código para asignar un valor a una variable. Así la
expresión n = 5 haría que se creara una variable (por ser la primera vez que se utilizaría en el
código) con el nombre n y almacenaría en ella el valor 5.
>>>ancho = 20
>>>largo = 5 * 9
>>>ancho * largo
900
En el código anterior la primera orden crea una variable a la que asignamos el nombre ancho y
almacenará el valor 20. Esta línea no genera un resultado por pantalla.
La siguiente línea crea la variable de nombre largo y se almacena en ella el resultado de
multiplicar cinco por nueve.
La tercera línea de código realiza una multiplicación, pero no utiliza valores numéricos sino los
nombres de las dos variables. La orden se leería “multiplica el valor almacenado en la variable
ancho por el valor almacenado en la variable largo y muestra el resultado en una nueva línea”.
Tipos de variable
Igual que los datos en Python pueden ser de varios tipos, una variable será de un tipo
determinado (int, float, texto…).
En otros lenguajes de programación antes de utilizar una variable por primera vez hay que
definir su nombre y su tipo (generalmente a este proceso se le llama “declarar una variable”).
En Python, el tipo de una variable será el mismo que el tipo del primer valor que almacenemos
en ella. Observa estos dos ejemplos:
>>> ancho = 20
>>> ancho * 2
40
En la primera línea asignamos a la variable ancho el valor 20. Por lo tanto, la variable acho se
crea como variable de tipo entero.

- 16 -
TIC 1º BTO IES Grande Covián
Informática I Zaragoza

En la siguiente línea el operador * actúa sobre la variable ancho multiplicando su valor. Así el
resultado de la operación es 40.
Sin embargo, si hacemos:
>>> ancho = "hola"
>>> ancho * 2
'holahola'
El resultado es diferente. Ancho pasa a ser una variable tipo texto. Con este tipo de variables
(y de datos) el operador * no actúa como multiplicador, si no que se utiliza para ver cuantas veces
es necesario representar la cadena de texto.
Las variables deben existir antes de ser utilizadas
En caso de que queramos mostrar el valor contenido dentro de una variable que todavía no ha
sido definida obtendríamos un mensaje de error (la siguiente pantalla muestra el resultado de
hacer una llamada a la variable k que todavía no ha sido definida).

Las variables son objetos


En Python todos los elementos que utilicemos van a ser “Objetos”. Como veremos más
adelante Python es un lenguaje orientado a objetos. Una variable Python es un objeto.
A modo de curiosidad (de momento ) utiliza la función type() tal y como
indica el ejemplo. Esta función mostrará el tipo (la clase) a la que
pertenece ese objeto.
En este caso la variable “ancho” pertenece al tipo str. Es un objeto tipo str (cadena de texto).
De momento no entenderás que quiere decir esto, pero más adelante será muy importante.

- 17 -
TIC 1º BTO IES Grande Covián
Informática I Zaragoza

10. Cadenas de caracteres – función print()


Cadena de caracteres: Cualquier información que Python interprete como un texto.
Python interpretará como cadena de caracteres cualquier elemento que esté contenido entre
comillas simples (‘…’) o comillas dobles (“…”).
Se utilizan dos tipos distintos de comillas para poder incluir dentro de nuestra cadena de
caracteres cualquier de los dos iconos. Por ejemplo, si quisiera mostrar la palabra don’t, al tener
una comilla sencilla en su interior no podría crear una cadena de caracteres en la forma ‘don’t’, en
su lugar tendría que utilizar la forma “don’t”.
Existe otra forma de evitar el problema anterior, anteponer a la comilla o comilla
doble interior a la cadena el icono \. Así podría indicar ‘don\’t’ o “\”hola\””.
Si utilizamos el intérprete interactivo para definir una cadena de caracteres obtendremos:
>>> ‘hola que tal’
‘hola que tal’
Es decir, se mostrará la cadena junto con los iconos que la limitan. Normalmente interesará
mostrar por pantalla solamente el contenido de la cadena. Para ello utilizaremos la función print()
print() Función que muestra por pantalla la información contenida entre los paréntesis,
argumentos.
- La orden añade al final un salto de línea.
- Los argumentos podrán ser cadenas de caracteres y/o variables.
Volviendo al ejemplo anterior, el resultado sería:
>>>print(‘hola que tal’)
hola que tal
En el caso de trabajar con variables:
>>>c=’hola que tal’
>>>print(c)
hola que tal

10.1 print() con más de un argumento


La función print admite varios argumentos seguidos.
- Si los argumentos están separados por comas, los separa con un espacio en blanco:
>>>print(‘Hola ‘, ‘adiós’)
Hola adiós
- Si los argumentos no se separan con comas, no añade un espacio en blanco entre ellos:
>>>print(‘Hola ‘‘adiós’)
Holaadiós

Si alguno de los argumentos a mostrar es una variable, es necesario utilizar la coma o


el signo + (concatenación) tal y como veremos al estudiar la función input().

- 18 -
TIC 1º BTO IES Grande Covián
Informática I Zaragoza

10.2 Opciones sencillas cadenas de caracteres y print()


Esta serie de opciones permiten dar un cierto formato a la información mostrada por pantalla:
\n – Retorno de carro
El modificador \ seguido de la letra n, dentro de una cadena de caracteres se interpreta como
un retorno de carro.
>>>print('C:\algun\nombre') # aquí \n significa nueva línea!
C:\algun
ombre
r - Crear cadenas crudas
Si añadimos una r antes de la primera comilla del print(), los caracteres \ dejan de ser
especiales y se muestran como un símbolo más:
>>>print(r'C:\algun\nombre') # nota la r antes de la comilla
C:\algun\nombre
\t - Tabulador
El modificador \t, dentro de una cadena de caracteres se interpreta como un tabulador.
print("1\t2\t3")
1 2 3
end='' - Evitar el salto de línea al final de la función print()
Al final añadimos el argumento end=''.
print('Hola ', end='')
print('adiós')
Holaadiós
Concatenar cadenas de caracteres
El símbolo + permite unir cadenas de caracteres. Especialmente útil cuando se quieren separar
cadenas largas en partes.
No se pueden concatenar cadenas y números con el operador suma. En ese caso será
necesario convertir los números a cadenas con la función str().
Repetir cadenas de caracteres
El símbolo * permite repetir cadenas de caracteres:
>>>print(2 * 'ho' + 'la')
hohola

Ojo: Dos cadenas de caracteres yuxtapuestas son automáticamente consideradas


como una sola cadena:
>>>print(2 * 'ho''la')
holahola

- 19 -
TIC 1º BTO IES Grande Covián
Informática I Zaragoza

len() – Longitud cadena:


Función que devuelve la longitud de una cadena de texto:
>>> s = 'supercalifrastilisticoespialidoso'
>>>len(s)
33
Líneas múltiples
Si dentro del print() definimos la cadena por medio de tres pares de comillas, los finales de línea
incluidos en su interior son tenidos en cuenta, generando cadenas de más de una línea:
print("""
Uso: algo [OPTIONS]
-h Muestra el mensaje de uso
-H nombrehost Nombre del host al cual conectarse
""")
El código anterior genera la salida:
Uso: algo [OPTIONS]
-h Muestra el mensaje de uso
-H nombrehost Nombre del host al cual conectarse

10.3 Funciones de tipo f


Función asociada a print permite dar un formato específico a la forma en que se presentará la
información por pantalla.
Por ejemplo, para concatenar un valor de texto con una variable la expresión sería:
>>> variable=5
>>> print(f"El número es {variable}")
El número es 5
La f indica que se aplica una función de tipo f (formato). El mensaje ahora estará entre comillas
como si fuera un único texto y el valor de la variable se mostrará al escribir entre llaves su nombre.

- 20 -
TIC 1º BTO IES Grande Covián
Informática I Zaragoza

10.4 Índices en las cadenas de texto


Cada carácter de una cadena de texto queda referenciado por medio de un índice asociado a su
posición en la cadena. Al primer carácter se le asigna el índice 0, al segundo el 1, al tercero el 2….
Ojo: Esta opción solamente es válida para cadenas de texto. Si trabajamos con
números es necesario transformarlos previamente en una cadena por medio de la
función str().
Característica muy útil cuando la cadena de caracteres está guardada en una variable. Al añadir
el índice entre corchetes al nombre de la variable, se mostrará el carácter asociado al índice:
>>>variable = 'melocotón'
>>>print(variable[0]) # caracter en la posición 0
m
>>>print(variable[5]) # caracter en la posición 5
c
También es posible empezar a contar los caracteres desde la derecha. Para ello el carácter final
queda referido con el índice -1, el anterior con el -2 y así sucesivamente.
>>>variable = 'melocotón'
>>>print(variable[-1]) # caracter en la posición -1
n
>>>print(variable[-9]) # caracter en la posición -9
m
“porción de listas de listas de texto”
Una porción de lista de texto es una porción de una cadena de caracteres con más de un
carácter.
Para definir una porción de lista de texto utilizaremos la siguiente notación:
variable[a:b]
Donde variable es el nombre de la variable que contiene la cadena de caracteres, a es el índice
del primer carácter incluido en la porción de lista y b el índice el primer carácter excluido de la
porción de lista. Sería algo parecido a un intervalo [a,b) en matemáticas.
>>>variable = 'melocotón'
>>>print(variable[0:3]) #desde la posición 0 (incluida) hasta la 3 (excluida)
mel
Esta forma de definir los intervalos permite dividir cadenas en dos partes de manera sencilla:
>>>variable = 'melocotón'
>>>print(variable[:3])
mel
>>>print(variable[3:])
ocotón

Observa que si no definimos el índice inicial de la porción de lista se toma por defecto
el valor cero y si no definimos el índice final se toma la longitud total de la cadena.

- 21 -
TIC 1º BTO IES Grande Covián
Informática I Zaragoza

11. Listas
Lista: Tipo de variable que se capaz de almacenar más de un valor. Cada uno de los valores
queda definido por un subíndice.
Definimos una lista agrupando los elementos entre corchetes separándolos entre sí por comas:
>>> cuadrados = [1, 4, 9, 16, ‘palabra’]
>>> cuadrados
[1, 4, 9, 16, ‘palabra’]
Cada elemento de la lista pasa a estar identificado por su índice. El valor de cada índice será un
número entero, asignado de forma correlativa y comenzando por el 0. En ejemplo anterior:
>>>cuadrados[0] # añadiendo un índice se muestra su valor asociado
1
>>>cuadrados[-1] # índices negativos comienzan a contar por la derecha (-1)
‘palabra’
>>>print(cuadrados[-1])
palabra
>>>cuadrados[-3:] # porción de listas retornan una nueva lista
[9, 16, ‘palabra’]
Modificar el valor almacenado en un elemento de la lista:
>>>cubos = [1, 8, 27, 65, 125] # hay algo mal aquí
>>> 4 ** 3 # el cubo de 4 es 64, no 65!
64
>>>cubos[3] = 64 # reemplazar el valor incorrecto
>>>cubos
[1, 8, 27, 64, 125]
En el ejemplo anterior modificamos el valor almacenado en el cuarto elemento de la lista.
Modificar los valores almacenados en una porción de lista
Podemos modificar, borrar parcialmente, borrar completamente…
Ojo: Recuerda que el intervalo está cerrado por la izquierda y abierto por la derecha.
>>>letras = ['a', 'b', 'c', 'd', 'e', 'f', 'g']
>>>letras
['a', 'b', 'c', 'd', 'e', 'f', 'g']
>>> # reemplazar algunos valores
>>>letras[2:5] = ['C', 'D', 'E']
>>>letras
['a', 'b', 'C', 'D', 'E', 'f', 'g']
>>> # ahora borrarlas
>>>letras[2:5] = []
>>>letras
['a', 'b', 'f', 'g']
>>> # borrar la lista reemplazando todos los elementos por una lista vacía
>>>letras[:] = []
>>>letras
[]

- 22 -
TIC 1º BTO IES Grande Covián
Informática I Zaragoza

11.1 Opciones trabajando con listas


Añadir un nuevo elemento a la lista
El método append() permite añadir un nuevo elemento a la lista:
>>>[Link](216) # agregar el cubo de 6
>>>[Link](7 ** 3) # y el cubo de 7
>>>cubos
[1, 8, 27, 64, 125, 216, 343]

Aunque todavía no lo hemos estudiado, al ejecutar el método append() estamos


utilizando programación orientada a objetos. Estamos ejecutando un método del
objeto cubos que pertenece a la clase list.
Insertar un nuevo elemento a la lista
El método insert() permite insertar un nuevo elemento a la lista en una posición específica.
Este método tendrá dos parámetros, el primero indica el índice que le asignará al nuevo elemento
y el segundo el valor de ese elemento. Hay que tener en cuenta que los índices de todos los
elementos que tuvieran originalmente un valor mayor o igual al del elemento insertado, se
incrementarán en una unidad.
>>> cubos=[1, 8, 27, 64, 125, 216, 343]
>>> cubos[2]
27
>>> [Link](2,"insertado")
>>> cubos
[1, 8, 'insertado', 27, 64, 125, 216, 343]
>>> cubos[2]
'insertado'
>>> cubos[3]
27
len():
En este caso la función len nos devuelve un valor indicando el número de elementos en la lista:
>>>letras = ['a', 'b', 'c', 'd']
>>>len(letras)
4
Índice de un elemento de la lista
Utilizaremos el método index:
>>> cubos=[1, 8, 27, 64, 125, 216, 343]
>>> [Link](64)
3

Si un elemento está repetido en la lista, index nos indicará la posición del que tenga un
índice menor.
Comprobar si un valor está en una lista
La operación in permite comprobar si un valor está incluido en una lista:

- 23 -
TIC 1º BTO IES Grande Covián
Informática I Zaragoza

- Si el elemento está incluido en la lista in devuelve el valor lógico True.


- Si el elemento no está incluido en la lista in devuelve el valor lógico False.
La sintaxis de la operación es:
elemento in lista
Donde elemento es el elemento que queremos comprobar y lista el nombre de la lista en la que
lo queremos buscar. Así por ejemplo:
>>> xs=[78455, 79211, 54988, 66540, 47890]
>>> 78 in xs
False
>>> 66540 in xs
True
Contar cuantas veces está un elemento en una lista
Utilizaremos el método count:
milista=["José",30,4,4,1992]
print([Link](4))
El método count nos indicará cuantas veces aparece el valor 4 en la lista, en este caso dos.
Eliminar un elemento de la lista por su índice
Utilizaremos el método pop. Habrá que indicar como parámetro el valor del índice del
elemento a eliminar (no su índice). El resto de la lista se actualizará.
>>> cubos=[1, 8, 27, 64, 125, 216, 343]
>>> [Link](1)
8
>>> cubos
[1, 27, 64, 125, 216]
Eliminar un elemento de la lista pro su valor
Método remove. Habrá que indicar como parámetro el valor del elemento a eliminar (no su
índice). El resto de la lista se actualizará:
>>> cubos=[1, 8, 27, 64, 125, 216, 343]
>>> [Link](125)
>>> cubos
[1, 8, 27, 64, 216, 343]
Crear listas a partir de otras listas
>>> a = ['a', 'b', 'c']
>>> n = [1, 2, 3]
>>> x = [a, n]
>>>x
[['a', 'b', 'c'], [1, 2, 3]]
>>>x[0]
['a', 'b', 'c']
>>>x[0][1]
'b'

- 24 -
TIC 1º BTO IES Grande Covián
Informática I Zaragoza

Asignar cada valor de una lista a una variable diferente


Podríamos hacer la asignación utilizando índices en la forma:
milista=["José",30,4,1992]
nombre=milista[0]
dia=milista[1]
mes=milista[2]
agno=milista[3]
print(nombre,dia,mes,agno)
Daría como resultado:
José 30 4 1992
Python permite realizar la asignación en una única línea de código con la sintaxis:
milista=["José",30,4,1992]
nombre,dia,mes,agno=milista
print(nombre,dia,mes,agno)
Conseguiremos el mismo resultado, pero reducimos el número de líneas de código y evitamos
el uso de índices.

- 25 -
TIC 1º BTO IES Grande Covián
Informática I Zaragoza

12. Ejecutar un archivo .py


Existen varias formas diferentes de ejecutar un archivo .py. Veamos las más habituales:

12.1 Ejecutar el archivo desde la línea de comandos


Normalmente no ejecutaremos el código Python desde la línea de comandos. Es mucho más
habitual escribir el código en archivos de texto (.py) que luego ejecutaremos. Utilizaremos la
palabra módulo para referirnos a estos archivos.
Módulo: Cualquier archivo de texto que contiene ordenes en Python.
Una vez guardado el módulo podemos hacer que el intérprete de Python ejecute las órdenes
contenidas en él, de arriba hacia abajo y de una en una, de muchas formas distintas (línea de
comandos, doble clic en su icono, IDE…)
Para cerrar la sesión interactiva del interprete podemos utilizar la orden exit(), Ctrl+Z
(Windows), Crtl+D (Linux) o cerrar la ventana de comandos.
Veamos un primer ejemplo:
12.1.1 Nuestro primer programa
Abrimos el bloc de notas (valdría cualquier editor de texto) y escribimos el siguiente código:
# Un primer script en Python
import sys # Carga un módulo de librería
print([Link])
print(2 ** 100) # Elevamos 2 a la potencia 100
x = 'Spam!'
print(x * 8) # Repetimos una cadena de texto ocho veces
Guardamos el archivo como [Link] en nuestro directorio de trabajo (D:\Code).
En resumen, este código:
- Importa un módulo (otro programa incluido en las librerías de herramientas de Python)
que muestra el nombre del tipo de plataforma que estamos utilizando.
- Ejecuta la función print para mostrar el resultado del módulo anterior.
- Muestra el resultado de elevar 2 a la 100
- Almacena la palabra Spam! en una variable a la que llamaremos x
- Utiliza la función print para escribir ocho veces el valor de la variable x.
- Se han añadido comentarios. Todo aquello precedido por #.
Comentario: Línea/s de código que el compilador va a ignorar. Su única función es mejorar
la legibilidad del programa.

El archivo podría llamarse script1 sin añadir la extensión .py. El compilador lo


entendería igual, pero es muy aconsejable añadir la extensión .py por dos razones:
1: Si queremos importar este módulo desde otro, sólo será posible si está guardado
con esa extensión.
2: El editor reconocerá que es un archivo Python y podrá utilizar propiedades como el
coloreado sintáctico o la indentación automática.

- 26 -
TIC 1º BTO IES Grande Covián
Informática I Zaragoza

12.1.2 Ejecutar desde la línea de comandos


Abrimos la ventana de comandos.
Utilizamos las ordenes cd.. y dir hasta situarnos en del directorio que contiene el módulo (d:\Code)
Al teclear la expresión python [Link] se obtendrá el resultado:

Una variación. Podemos utilizar las propiedades de la ventana de comandos, así si ejecutamos
el programa según:
python [Link] > [Link]
El resultado se guardará en un archivo de nombre [Link] en el directorio de trabajo.
En Windows 7 podemos escribir directamente el nombre modulo (sin anteponer la
palabra Python) ya que el SO reconoce la extensión .py

12.2 Ejecutar haciendo clic en el icono del módulo


Al hacer doble clic sobre el icono de un archivo, el sistema operativo lee la extensión del y lo
abre con el programa apropiado para ese tipo de extensiones según se indique en el archivo de
asociación de nombres de archivo.
Los archivos con extensión .py se ejecutarán por la aplicación [Link] a través de una consola.
Si ejecutamos el código anterior haciendo doble clic en Windows, veremos que el programa se
ejecuta, pero inmediatamente se cierra la pantalla sin dejar a la vista el resultado.
Un truco sería llamar desde el código la función predefinida input(), la veremos más adelante:
# Un primer script en Python
import sys # Carga un módulo de librería
print([Link])
print(2 ** 100) # Elevamos 2 a la potencia 100
x = 'Spam!'
print(x * 8) # Repetimos una cadena de texto ocho veces
input() # <== ADDED
Input queda esperando la siguiente información que se introduzca por teclado. En este
contexto lo utilizaremos como una pausa. Al pulsar la tecla Enter el programa terminará.
Ejecutar los programas por clic tiene muchas más limitaciones (por ejemplo detección de
errores).

- 27 -
TIC 1º BTO IES Grande Covián
Informática I Zaragoza

13. Programar con Sublime Text. Primer programa


Vamos a crear nuestro primer proyecto con Sublime Text. Será algo sencillo, un módulo que
muestre un mensaje por pantalla. Pero nos servirá para organizar nuestros trabajos
Pasos previos 1: Crear una carpeta de trabajo
Aunque no es necesario, es buena idea organizar nuestras aplicaciones en proyectos.
Un proyecto contendrá todos los archivos que vayamos a crear en nuestra aplicación.
Consideraremos como proyecto, todos los módulos que estén incluidos en una misma carpeta.
En primer lugar, crea una carpeta en tu disco duro donde guardar todos tus archivos .py. Te
recomiendo que se llame Python.
Abre Sublime Text y desde el menú File, open folder… selecciona la carpeta que has creado en
el punto anterior (en este tutorial se llamará Python). Selecciona en el menú View la opción Side
Bar, se abrirá un submenú. En el selecciona la opción Show Side Bar:

A partir de ese momento cuando abras Sublime Text siempre se abrirá ese directorio y se
mostrará la estructura de carpetas de tu directorio Python:

Pasos previos 2: Crear un nuevo proyecto


Aunque en rigor Sublime Text no trabaja con proyectos, vamos a agrupar nuestros trabajos en
carpeta. Llamaremos proyecto a cualquier carpeta que tenga su raíz en el directorio que hemos
creado en el punto anterior (Python).
Para crear un nuevo proyecto, puedes hacer clic con el
botón derecho del ratón sobre el icono de la carpeta Python y
seleccionar la opción New Folder…
Se abrirá una caja de texto en la parte inferior de la pantalla.
Asigna un nombre a la carpeta (por ejemplo: mi primer
proyecto).

Al aceptar se mostrará la nueva carpeta como


subcarpeta de Python en la ventana de la izquierda.

- 28 -
TIC 1º BTO IES Grande Covián
Informática I Zaragoza

Pasos previos 2: Crear un nuevo archivo de código fuente


Hacemos clic con el botón derecho sobre el icono de la carpeta mi
primer proyecto. Seleccionamos la opción New File…
Se mostrará la misma caja de texto que en el apartado anterior.
Escribimos en ella el nombre para nuestro archivo, sin olvidarnos de la
extensión .py. (por ejemplo [Link]).
Se mostrará el nombre del archivo, dentro de la carpeta “mi primer
proyecto” y en la parte de la derecha veremos la ventana de edición
con una etiqueta con el nombre [Link].

Comentando tus programas


Comentario: Línea/s de código que el compilador va a ignorar. Su única función es mejorar
la legibilidad del programa.
La forma de indicar al interprete el comienzo de un comentario es a través del símbolo #. A
partir de ese instante, y hasta que comience una nueva línea de código, el compilador ignorará la
información y a efectos prácticos no tendrá ningún valor.
Consejo: Iniciar el programa con un comentario que indique la finalidad del programa,
el autor, fecha y hora de la última modificación.
Código que genera el texto por pantalla
Utilizamos la función print para escribir por pantalla una cadena de caracteres
print('Bienvenido a la programación con Python')
Compilar y ejecutar la aplicación
Antes de ejecutar el archivo debes guardarlo (puedes usar la combinación de teclas Ctrl+S).
Si has configurado SubText como se indica en el capítulo Error: no se encontró el origen de la
referencia, teclea las teclas Ctrl+Alt+B.
Se abrirá una nueva pestaña en Sublime Text con
el nombre *REPL* [python]. En ella aparecerá el
resultado de la ejecución del módulo [Link]:
Cada vez que ejecutes tu módulo, el resultado se
mostrará en una nueva ventana como la anterior. Si
prefieres que no se te acumulen muchas ventanas
abiertas, puedes cerrar la ventana activa con la
combinación de letras Ctrl+W

- 29 -
TIC 1º BTO IES Grande Covián
Informática I Zaragoza

14. Pasando valores al programa –input()


input() Función que permite introducir información a través del teclado
Cuando es necesario transmitir un valor al programa, Python ofrece la función input(). La forma
más habitual de utilizar esta función será:
nombreVariable = input(‘mensaje’)
Cuando el intérprete de Python llegue a una instrucción como la anterior, mostrará por pantalla
el mensaje ‘mensaje’ y quedará esperando a que introduzcamos a través del teclado una cadena
de caracteres o un valor. En el momento que pulsemos la tecla Enter, el valor introducido por
teclado quedará almacenado en la variable nombreVariable y continuará con la ejecución de la
siguiente orden.
Así, por ejemplo:
valor=input('Introduce un número: ')
print('El número introducido es '+valor+'!')

El significado de los símbolos + en la orden print se explica más adelante


Se mostrará un texto solicitando un número. Tras introducirlo se generará un mensaje a través
de la función print uniendo dos cadenas de caracteres y el número introducido a través de la
función input() que ha sido almacenado en la variable valor.
De forma similar se podría introducir una cadena de caracteres:
nombre = input ("¿Cuál es tu nombre? ")
print("Hola, " + nombre + "!")
El resultado obtenido con los dos bloques de código anterior sería:
Introduce un número: 1
El número introducido es 1!
¿Cuál es tu nombre? Pedro
Hola, Pedro!

14.1 Números e input()


Por defecto input() convierte la respuesta en una cadena de caracteres, así si intentamos hacer
un cálculo obtendríamos un mensaje de error. Si se quiere que Python interprete la entrada como
un número habrá que utilizar una función para realizar la transformación:
Si queremos que la respuesta se tome como número entero: int()
valor=int(input('Introduce tu edad en años: '))
Si queremos que la respuesta se tome como un número decimal: float()
valor=float (input('Introduce el precio en euros: '))

- 30 -
TIC 1º BTO IES Grande Covián
Informática I Zaragoza

Si intentamos guardar un número con decimales en una variable int se generará un


mensaje de error. En cambio, sí almacenamos un número entero en una variable float
no habrá problema. (ej: float(8)=8.0)

14.2 Argumento de la función input()


Esta función sólo admite un único argumento. Por tanto en el código:
nombre = input("Dime tu nombre: ")
apellido = input("Dime tu apellido, ", nombre, ": ")
print("Me alegro de conocerte,", nombre, apellido)
La primera línea es correcta, sin embargo, la segunda generará un error.
Estamos intentando generar un mensaje complejo formado por dos cadenas de texto y el
contenido de una variable. La función input() sólo puede utilizar un argumento. Podemos resolver
el problema dos formas:
Escribo la pregunta utilizando la función print() y en la orden siguiente utilizo input().
nombre = input("Dime tu nombre: ")
print("Dime tu apellido", nombre+": ")
apellido=input()
print("Me alegro de conocerte,", nombre, apellido)
Utilizar en la segunda orden input la concatenación:
Concatenación unir dos elementos (variables o cadenas de texto) en uno único.
Para concatenar dos elementos es escribirán uno a continuación de otro, separados por medio
el símbolo de suma (+).
nombre = input("Dime tu nombre: ")
apellido = input("Dime tu apellido, "+ nombre+ ": ")
print("Me alegro de conocerte,", nombre, apellido)

Ejercicio: Crea un proyecto que sea capaz de leer dos números enteros que introduciremos a
través del teclado, realizará la suma de los dos y mostrará el resultado por pantalla. Añade tantos
comentarios como sea necesario para conseguir que el código sea fácilmente entendible.
La salida debe ser similar a:
Introduce el primer entero: 45
Introduce el Segundo entero: 72
La suma es: 117

- 31 -
TIC 1º BTO IES Grande Covián
Informática I Zaragoza

15. Sentencias condicionales: if… elif…else…


15.1 Sentencia condicional if… (Una opción)
La orden if evalúa una condición. Si la condición se cumple se ejecutan las ordenes
agrupadas dentro del bloque if. Si no se cumple no se ejecutarán las ordenes agrupadas en
el bloque if.
La sintaxis de un bloque if es:
if condición:
bloque de órdenes que se ejecutarán si la condición es cierta.
Estas órdenes pueden ocupar más de una línea.

es una expresión lógica que el programa evaluará y que generará


Condición
un valor cierto o falso.
: Símbolo que marca el final de la expresión lógica. Es obligatoria.
Conjunto de órdenes que se ejecutan solamente si la condición
Bloque de órdenes
lógica ha sido evaluada como verdadera.
El bloque de órdenes ha de ir indentado (sangrado). Python utiliza el sangrado para identificar
las órdenes que están asociadas al bloque if.
Todas las órdenes asociadas al if han de tener el mismo sangrado.
Normalmente el sangrado en Python es de cuatro espacios. Al escribir el símbolo (:),
Eclipse automáticamente realizará el sangrado.

15.1.1 Comparadores lógicos


Realizan una comparación entre dos expresiones. Cuando la expresión es cierta generan un
valor booleano True, cuando no lo es generan un valor booleano False.
Símbol Comparador Genera True Genera False
o
> Mayor que 3>2 2>3
< Menor que 2<3 3<2
>= Mayor o igual que 2>=1+1 2>=1+2
<= Menor o igual que 4-2<=1 4-2<=2
== Igual que 2==1+1 2==1
!= Distinto de 6/2!=2 6/2!=3

15.1.2 Operadores lógicos


Son tres y permiten construir condiciones más complejas.
Símbol Operador Genera True Genera False
o
true and false
and Y lógico true and true false and false
false and true

- 32 -
TIC 1º BTO IES Grande Covián
Informática I Zaragoza

true or true
or O lógico true or false false or false
false or true
not Negación not false not true

15.1.3 Expresiones compuestas


Son aquellas que están formadas por varios componentes. Se recomienda utilizar paréntesis
para asegurar el orden en que las expresiones son evaluadas.
Sin embargo, en Python no es obligatorio el uso de paréntesis. El orden de prioridad en este
lenguaje es: primero se evalúan los not, luego los and y por último los or.
Utiliza paréntesis!!!!!!!

Crea un módulo que pida al usuario un número positivo. La respuesta ha de ser almacenada en un
variable a la que llamaremos numero. Comprueba si el número es negativo. Si lo es, el programa
debe avisar del error. Finalmente, el programa muestra siempre el número por pantalla.

15.2 if … else … (dos opciones)


En este caso el if permite que el programa ejecute un bloque de instrucciones cuando se
cumple la condición incluida en la línea del if y otras cuando no se cumple.
La sintaxis de un bloque if…else… es:
if condición:
bloque de órdenes que se ejecutarán si la condición es cierta.
else:
Bloque de órdenes que se ejecutarán si la condición es falsa.
Los bloques de órdenes pueden tener más de una línea e irán indentados.
Todas las órdenes de un bloque han de tener el mismo sangrado, cada bloque puede
tener un sangrado distinto… aunque eso reduce la claridad del código.
La línea con la orden else solo ha de incluir el else y los dos puntos.
Aunque no es muy habitual, si deseamos dejar uno de los bloques vacío, el bloque de
instrucciones deberá contener la orden pass. Esta orden le dice a Python que no haga nada y salga
del bloque de órdenes.
Diseña un programa que pregunte la edad al usuario y la almacene en la variable ‘edad’. A
continuación, comprobad si la edad es inferior a 18 años. Si la condición es cierta el programa
debe avisar por pantalla de que el usuario es menor de edad y si es falsa de que es mayor de edad.
Finalmente, el programa se despide en cualquier caso.

15.3 if… elif… else… (más de dos opciones)


Esta sentencia condicional permite encadenar varias condiciones. elif es la abreviatura de
else if (si no).
La sintaxis de un bloque if…elif…else… es:

- 33 -
TIC 1º BTO IES Grande Covián
Informática I Zaragoza

if condición1:
bloque de órdenes que se ejecutarán si la condición1 es cierta.
elif condificón2:
bloque de órdenes que se ejecutará si la condición2 es cierta.
else:
bloque de órdenes que se ejecutarán si todas las condiciones son falsas.
Se pueden incluir tantos bloques elif como sean necesarios.
Observa que en este tipo de sentencia las opciones son siempre mutuamente
excluyentes. En cualquier caso solamente se ejecutará uno de los bloques.
En este tipo de estructuras hay que ser cuidadoso con el orden con que escribimos las
condiciones. Con ello:
- Evitaremos olvidar alguna de las situaciones posibles.
- Evitaremos que el programa ejecute un bloque de instrucciones no deseado.
Veamos el siguiente ejemplo:
Modifica el programa anterior de tal forma que distinga tres situaciones. Si introducimos un valor
negativo el programa mostrará un mensaje de error. Si el valor está comprendido entre 0 y 17,
mostrará un mensaje indicando que el usuario es menor de edad y si es mayor o igual a 18 el
mensaje informará de la mayoría de edad del usuario.
Existen múltiples soluciones sin embargo alguna de ellas nos puede dar resultados extraños
como informar de que una persona que tenga -14 años sea menor de edad por ser el valor menor
de 18. Investiga la mejor solución.
Compliquemos ahora las cosas un poco. Utilizando un único bloque if..elif..else diseña un
programa que indique si un número es múltiplo de dos, de dos y de cuatro o si no es múltiplo de
dos. El problema radica en que todos los múltiplos de cuatro son múltiplos de dos pero no todos
los múltiplos de dos son múltiplos de cuatro.

15.4 Sentencias condicionales anidadas


Una sentencia anidada condicional puede contener a su vez otra sentencia anidada. Por
ejemplo:
if condición1:
if condición2:
bloque de órdenes que se ejecutarán si la condición1 y la 2 son ciertas.
else:
Bloque de órdenes que se ejecutarán si la condición 1 es cierta y 2 es falsa.
else:
Bloque de órdenes que se ejecutarán si la condición 1 es falsa.
En este caso se considera la primera condición. Si es true se considera la segunda condición y si
también es cierta se ejecutan las ordenes contenidas en el primer bloque. Si la segunda no lo es se
ejecuta el segundo bloque de órdenes. Solo en el caso de que la primera condición sea falsa e
independientemente de cómo sea la segunda se ejecuta el tercer bloque de instrucciones.
Las estructuras anidadas pueden ser tan complicadas como se necesite y pueden contener
cualquiera de los tres tipos de sentencias if que hemos estudiado.

- 34 -
TIC 1º BTO IES Grande Covián
Informática I Zaragoza

Diseña un programa que haciendo sólo con dos preguntas al usuario sea capaz de adivinar el
número entre 1 y 4 que este está pensando.

15.5 Sintaxis alternativa con valores lógicos


Observa el siguiente código:
color=True
talla=False
if (color==True):
print("Ejemplo sencillo")
Hemos definido dos variables tipo booleano. Color toma el valor True y talla el valor False.
La condición incluida dentro del bucle if toma el valor True ya que se cumple la condición (el
valor de la variable color es True).
La respuesta del programa es pues:
Ejemplo sencillo
Es decir, lo que hace que se ejecute el contenido incluido dentro del bloque if es el hecho de
que el resultado que genera la comparación incluida en él es el valor True.
Eso se puede tener en cuenta de cara a definir un código similar pero más sencillo:
color=True
talla=False
if color:
print("Ejemplo sencillo")
En este caso el bloque if analiza el valor de la variable color, como este es True el resultado será
el mismo que en el caso anterior.
No ocurriría lo mismo con la variable talla, el código “completo” sería:
color=True
talla=False
if (talla==False):
print("Ejemplo sencillo")
Que daría el mismo resultado que en los casos anteriores.
Sin embargo, si intentamos simplificar el código en la forma anterior:
color=True
talla=False
if talla:
print("Ejemplo sencillo")
El programa no dará resultado, la línea if esta, recibe el valor False y no se cumple la condición.
Complicando un poco las cosas, supón que necesitamos escribir el código final si la variable
color toma el valor True y la variable talla el valor False. El código “completo” sería:

- 35 -
TIC 1º BTO IES Grande Covián
Informática I Zaragoza

color=True
talla=False
if ((color==True) and (talla==False)):
print("Ejemplo sencillo")
Si queremos simplificarlo podríamos hacer:
color=True
talla=False
if (color and talla==False):
print("Ejemplo sencillo")

15.6 Concatenación de comparadores lógicos


La comparación admite una sintaxis en la que utilicemos más de un comparador en la misma
expresión. Por ejemplo, si queremos determinar si número es mayor que 0 pero menor que 100:
valor=int(input("introduce tu edad:"))
if 0<valor<100:
print("Edad no válida")
else:
print("Edad válida")
La comparación del if evaluará de izquierda a derecha todas las comparaciones y si todas ellas son
True, generará un valor True.
Es una forma de ahorrar código. Podremos añadir todos los comparadores que deseemos.

15.7 If con el operador in


El operador in genera un valor True o False en función de que un elemento esté en una lista o
tupla. Eso permite:
print("Asginaturas optativas: Informática, Latín, Griego")
asignatura=input("Escoge una asignatura:")
if asignatura in ('Informática','Latín','Griego'):
print("Asignatura elegida:", asignatura)
else:
print("La asignatura",asignatura,"no está contemplada")

- 36 -
TIC 1º BTO IES Grande Covián
Informática I Zaragoza

16. El bucle for


En general un bucle en programación se definirá como:
Bucle: Estructura de control que repite un bloque de instrucciones.
En Python existen varios tipos de bucles. Un bucle for es:
Bucle for: Bucle que repite un bloque de instrucciones un número determinado de veces.
Llamaremos:
Iteración: Cada una de las veces que se ejecuta el cuerpo del bucle.
La sintaxis básica del bucle for es:
for variableControl in elemento de control
Cuerpo del bucle
Veamos la orden un poco más a fondo:

Variable que tomará en cada iteración un valor definido por


‘elemento de control’. La iteración se repetirá tantas veces como
variableControl
valores pueda tomar ‘variableControl’ y en cada iteración el valor
almacenado en la variable es definido por el elemento de control.

Elemento que define los distintos valores que va a ir tomando la


Elemento de control variable ‘variableControl’. Puede ser una lista, una cadena de
caracteres, un rango.

Cuerpo del bucle Indentado y contiene las órdenes a ejecutar en cada iteración.

Por costumbre se suele utilizar la letra i como nombre de la variable de control


Veamos varios ejemplos:
Bucle for controlado por una lista
En este caso:
- El bucle realizará tantas iteraciones como elementos tenga la lista.
- En cada iteración la variable irá tomando sucesivamente en cada iteración los valores
contenidos en la lista.
print("Comienzo")
for i in [1, 1, 1]:
print("Hola ", end="")
print()
print("Final")
El for del código anterior se ejecutará tres veces, la variable i tomará el valor 1 en las tres
iteraciones y como resultados se mostrará la palabra hola tres veces en la misma línea.
En este caso el valor que toma la variable de control no es importante, lo único que nos
interesa es que la iteración se realice tres veces.

- 37 -
TIC 1º BTO IES Grande Covián
Informática I Zaragoza

En otros casos el valor que toma la variable de control en cada iteración es fundamental.
Modifica el código del ejemplo anterior para, utilizando un bucle for con tres iteraciones, calcular
los cuadrados de 3, 4 y 5.

Python considerará que pertenece al bucle todo el código indentado que tenga la
misma indentación que la línea siguiente a la línea con la orden for.
La lista puede contener cualquier tipo de elementos, no sólo números.
Modifica el código del ejemplo anterior para, utilizando un bucle for con tres iteraciones, crear
tres saludos personalizados a tres amigos que se llaman Luis, Mireia y Andrés.
Bucle controlado por una cadena de caracteres
En este caso:
- El bucle realizará tantas iteraciones como caracteres tenga la cadena de caracteres.
- En cada iteración la variable irá tomando sucesivamente en cada iteración cada uno de
los caracteres.
for i in "AMIGO":
print("Dame una ", i)
print("¡AMIGO!")
Mostrará como resultado:
Dame una A
Dame una M
Dame una I
Dame una G
Dame una O
¡AMIGO!

Escribe un programa que, utilizando un bucle for, muestre la tabla de multiplicar de un número
que el usuario introduzca a través del teclado.
Bucle controlado por un range()
Un tipo range se puede definir de tres maneras:

El bucle deberá realizar a iteraciones.


range(a) La variable de control (i) toma el valor 0 en la primera iteración y va aumentando
una unidad en cada pasada hasta alcanzar el valor a-1.

El bucle deberá realizar b-a iteraciones.


range(a,b) La variable de control (i) toma el valor a en la primera iteración y va aumentando
una unidad en cada pasada hasta llegar al valor b-1.

Similar al anterior pero ahora:


range(a,b,c - El valor inicial de la variable de control es a.
) - El incremento del valor de la variable de control en cada iteración es c.
- El bucle termina cuando la variable de control llega al valor b.

- 38 -
TIC 1º BTO IES Grande Covián
Informática I Zaragoza

Ejemplo: Código para mostrar diez veces la palabra Hola utilizando un bucle for y un tipo
range(a).
print("Comienzo")
for i in range(10):
print("Hola ", end="")
print()
print("Final")
Ejemplo: Código muestra los 100 primeros números naturales utilizando un bucle for y un tipo
range(a,b).
for i in range(1,101):
print(i)
Ejemplo: Múltiplos del 3 contenidos entre 1 y 100.
for i in range(3,101,3):
print(i)

16.1 Contadores y acumuladores


En muchas ocasiones se necesitan variables que cuenten cuántas veces ha ocurrido algo o que
acumulen valores.
En ambos casos es necesario dar un valor inicial a la variable.

Contador: Variable que lleva la cuenta del número de veces que se ha cumplido una
condición.
El código asociado a un contador sería:
i=i+1

Crea un programa que determine cuantos números naturales menores de 100 son múltiplos de
tres.

Acumulador: Variable que en cada iteración va incrementando su valor en una cantidad


(constante o variable).
El código asociado a un acumulador sería:
i=i+a
Donde a podrá ser un número o una variable.
Crea un programa que, utilizando un bucle for, calcule la suma de los 100 primeros números
naturales.

- 39 -
TIC 1º BTO IES Grande Covián
Informática I Zaragoza

16.2 Bucles anidados


Bucle anidado: Bucle incluido dentro del bloque de instrucciones de otro bucle principal.
Hablaremos de:
Bucle interior: El que se encuentra dentro del otro.
Bucle exterior: Al bucle principal.
Existen dos tipos de bucles anidados. De variables independientes y de variables dependientes.
Bucle anidado con variables independientes
Las dos variables son independientes cuando los valores que toma la variable de control del
bucle interior no dependen del valor de la variable de control del bucle exterior. Por ejemplo:
for i in [0, 1, 2]:
for j in [0,1]:
print(‘i vale’, i, ‘y j vale’, j)
Es más recomendable utilizar tipos range() en lugar de listas. El código anterior quedaría:
for i in range(3):
for j in range(2):
print(‘i vale’, i, ‘y j vale’, j)
En ambos casos el resultado sería:
i vale 0 y j vale 0
i vale 0 y j vale 1
i vale 1 y j vale 0
i vale 1 y j vale 1
i vale 2 y j vale 0
i vale 2 y j vale 1

Habitualmente se utiliza la letra i como nombre de la variable de control del bucle


exterior y la j como nombre de la variable de control del bucle interior (k si hay un
tercer nivel de anidamiento.
Bucle anidado con variables dependientes
Los valores que toma la variable de control del bucle interior dependen del valor de la variable
de control del bucle exterior. Por ejemplo:
for i in [1, 2, 3]:
for j in range(i):
print("i vale", i, "y j vale", j)
Daría por resultado:
i vale 1 y j vale 0
i vale 2 y j vale 0
i vale 2 y j vale 1
i vale 3 y j vale 0
i vale 3 y j vale 1
i vale 3 y j vale 2

- 40 -
TIC 1º BTO IES Grande Covián
Informática I Zaragoza

17. Bucle while


Bucle while: Bucle que repite un bloque de instrucciones mientras se cumpla una condición.
La sintaxis básica del bucle while es:
while condición:
Cuerpo del bucle
Veamos la orden un poco más a fondo:

Expresión lógica que se evalúa antes de cada iteración. Si se evalúa


como true se ejecuta el cuerpo del bucle. Una vez ejecutado el
Condición
cuerpo del bucle se vuelve a ser evaluada. Si se evalúa como false se
termina la ejecución del bucle sin ejecutar el cuerpo del mismo.

Está indentado y contiene el conjunto de órdenes que se ejecutarán


Cuerpo del bucle
en cada iteración.

Variables que aparecen dentro de la condición. Estas variables


Variable(s) de
pueden definirse antes del bucle while pero también puede
control
modificarse su valor en el interior.

Veamos un ejemplo sencillo:


i=1
while i<= 3:
print(i)
i += 1
print("Programa terminado")
Definimos un valor inicial para la variable de control. La condición del bucle es comprobar si el
valor de la variable de control es menor o igual que tres. En caso de serlo escribiremos el valor de
i en una unidad y volveremos a evaluar la condición. En este caso el bloque del código se
ejecutará tres veces mostrando los valores 1, 2 y 3. Tras ello el Python saldrá del bucle y
continuará con la siguiente orden, en este caso el print.
Podríamos pensar que un bucle while es equivalente a un bucle for y en algunos casos serán
equivalentes pero existe una gran diferencia. Un bucle for se ejecutará un número fijo de veces.
Sin embargo un bucle while se ejecutará un número indefinido de ocasiones, hasta que deje de
cumplirse una condición. Por ejemplo:
Interpreta el siguiente código:
numero = int(input("Escriba un número positivo: "))
while numero < 0:
print("¡Ha escrito un número negativo! Inténtelo de nuevo")
numero = int(input("Escriba un número positivo: "))
print("Gracias por su colaboración")

- 41 -
TIC 1º BTO IES Grande Covián
Informática I Zaragoza

17.1 Bucles infinitos


Bucle infinito: Bucle en el que la condición se cumple siempre, el bucle no terminará nunca
de ejecutarse.
Aunque a veces es necesario utilizar bucles infinitos en un programa, normalmente se deben a
errores que se deben corregir.
Los bucles infinitos no intencionados deben evitarse pues significan perder el control del
programa. Para interrumpir un bucle infinito cuando estamos ejecutando un programa desde
pyDev es suficiente con hacer clic en la tecla stop (cuadrado rojo) en la ventana de consola:

Cuando se está ejecutando el programa desde otras instancias, la ejecución del mismo se
interrumpirá pulsando la combinación de teclas Ctrl+C. En ese caso se mostrará un mensaje tipo:
Traceback (most recent call last):
File "[Link]", line 3, in <module>
print(i)
Keyboard Interrupt

Encuentra la razón por la que se genera un bucle infinito en cada uno de los siguientes ejemplos:
i=1
while i<= 10:
print(i, "", end="")

i=1
while i> 0:
print(i, "", end="")
i += 1

i=1
while i!= 100:
print(i, "", end="")
i += 2

- 42 -
TIC 1º BTO IES Grande Covián
Informática I Zaragoza

17.2 Ordenes break, continue, pass y else en bucles


Estas órdenes permiten modificar la forma en la que se ejecuta la secuencia de comandos en un
bucle for y while. Su función es:

break Termina la ejecución del bucle más inmediato que la contiene.

continue Termina la ejecución de la iteración actual pasando a la siguiente.

else Solamente se ejecuta si el bucle termina normalmente (no por acción del break.

pass No hace nada. Se utiliza para dar contenido a una orden que no va a hacer nada
pero necesita por sintaxis tener algo escrito en ella.

17.2.1 break
Partimos del programa:
i=1
while i<= 10:
print(i,'- ',end='')
i += 1
print("Programa terminado")
El bucle se ejecutará normalmente, realizado diez iteraciones, mostrando el resultado:
1 – 2 – 3 – 4 – 5 – 6 – 7 – 8 – 9 – 10 – Programa terminado
Si simplemente introducimos la orden break:
i=1
while i<= 10:
print(i,'- ',end='')
i += 1
break
print("Programa terminado")
El resultado tendrá la forma:
1 - Programa terminado
La orden break actúa en la primera iteración y por lo tanto termina la ejecución del bucle mñas
próximo en la que está incluida (en este caso es el único).
Utilizar la orden break de esta forma no tiene mucho sentido ya que siempre se va a ejecutar,
deteniendo el bucle. Normalmente la orden estará incluida dentro de un condicional. Con ello el
bucle se saltará cuando se cumpla dicha condición. Un ejemplo sencillo:
i=1
while i<= 10:
print(i,'- ',end='')
i += 1
if i==7:
break

- 43 -
TIC 1º BTO IES Grande Covián
Informática I Zaragoza

print("Programa terminado")
En este caso la salida sería:
1 – 2 – 3 – 4 – 5 – 6 – Programa terminado

17.2.2 continue
Si en lugar de break utilizamos continue, el resultado es diferente:
i=1
while i<= 10:
print(i,'- ',end='')
i += 1
if i==7:
continue
print("Programa terminado")
El resultado será:
1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - Programa terminado
Parece que continue no ha hecho nada ya que el resultado es el mismo que en caso del
programa sencillo. Pero no es así, el problema es que el resultado no es apreciable. Piensa en
ello, continue termina la ejecución de la vuelta actual del bucle. Al estar colocado al final de la
iteración el que i sea igual a 7 o no lo sea no afecta al resultado del bucle. Debemos cambiar la
posición de la orden incremental:
i=1
while i<= 10:
print(i,'- ',end='')
if i==7:
continue
i += 1
print("Programa terminado")
En este caso el programa creará un bucle infinito que no terminará nunca ya que al llegar i al
valor 7, la condidicón del if es cierta, se ejecuta el continue, terminando la vuelta del bucle actual y
por lo tanto desde ese momento nunca se vuelve a ejecutar la orden i += 1 con lo que i continúa
valiendo 7.
Si queremos evitar este problema podemos utilizar el código:
i=1
while i<= 10:
print(i,'- ',end='')
if i==7:
i += 2
continue
i += 1
print("Programa terminado")
En este caso la salida será:
1 - 2 - 3 - 4 - 5 - 6 - 7 - 9 - 10 - Programa terminado

- 44 -
TIC 1º BTO IES Grande Covián
Informática I Zaragoza

Sin mostrar el valor 8 ya que cuando i vale 7 modificamos su valor sumando dos unidades en
lugar de una, la orden continue hace que i+=1 no se ejecute cuando i vale 7.
17.2.3 else
El else asociado a un bucle while o for delimita un conjunto de órdenes que solamente se
ejecutan si hemos salido del bucle sin que se haya ejecutado una orden break.
Según el ejemplo anterior:
i=1
while i<= 10:
print(i,'- ',end='')
if i==7:
break
i += 1
else:
print("Programa terminado")
La salida será:
1-2-3-4-5-6-7-
Cuando i=7 el bucle se interrumpe, por lo tanto el bloque de ordenes asociado a else no se
ejecutará.
En cambio:
i=1
while i<= 10:
print(i,'- ',end='')
if i==77:
break
i += 1
else:
print("Programa terminado")
La salida en este caso será:
1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - Programa terminado
La orden break no llega a ejecutarse ya que i nunca puede llegar a tomar el valor 77. Por lo
tanto el bucle termina normalmente y a continuación se ejecuta el bloque de instrucciones
asociados al else.
17.2.4 pass
La mejor forma de entender la funcionalidad de esta orden es ver un ejemplo. Siguiendo con el
caso anterior:
i=1
while i<= 10:
print(i,'- ',end='')
if i==77:
break
i += 1
else:

- 45 -
TIC 1º BTO IES Grande Covián
Informática I Zaragoza

Hemos eliminado las ordenes asociadas al bloque else:. El resultado es:


File "D:\Code\8. Ejercicios while 2\src\[Link]", line 9

^
SyntaxError: unexpected EOF while parsing
Se genera un error de sintáctico ya que else requiere que en su interior exista al menos una
orden. La solución es incluir la orden pass que no tiene ninguna utilidad más que la de dar
contenido (hacer montón).
i=1
while i<= 10:
print(i,'- ',end='')
if i==77:
break
i += 1
else:
pass
La salida es:
1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 -

- 46 -
TIC 1º BTO IES Grande Covián
Informática I Zaragoza

18. Funciones
Listado de las funciones más habituales.
Función Descripción
str() Transforma un número en cadena de caracteres.
int() Transforma una cadena de caracteres en un número entero.
float() Transforma una cadena de caracteres en un número decimal.
round(a,b) Redondea el número a con b decimales.
chr(num) Devuelve el carácter correspondiente al valor “num” en código ASCII.
ord(‘x’) Devuelve el código ASCII del carácter ‘x’.

18.1 Formateando la presentación de números


Podemos utilizar la función format para definir varios aspectos de la presentación de un valor
numérico por pantalla. Aquí tenéis varios ejemplos:
numero = 3141.59265

# Dos decimales de precisión:


print(format(numero, '0.2f'))

# Jusitificación a la derecha con diez caracteres, un decimal de precisión:


print(format(numero, '>10.1f'))

# Jusitificación a la izquierda con diez caracteres, un decimal de precisión:


print(format(numero, '<10.1f'), "hola")

# Separador de miles:
print(format(numero, ','))
print(format(numero, '0,.1f'))

# Notación científica:
print(format(numero, 'e'))
print(format(numero, '0.2E'))

19. Métodos
Listado de métodos de interés.
Función Descripción
[Link]() Devuelve la cadena de caracteres o variable en letras minúsculas.
[Link]() Devuelve la cadena de caracteres o variable en letras mayúsculas.

- 47 -
TIC 1º BTO IES Grande Covián
Informática I Zaragoza

Tabla de contenido
1. Introducción......................................................................................................................................1
2. Algoritmos........................................................................................................................................2
3. Diagramas de flujo............................................................................................................................3
3.1 Principales elementos en un Diagrama de Flujo.......................................................................................................3
3.2 Reglas para la elaboración de un Diagrama de Flujo................................................................................................4
3.3 Como hacer un diagrama de flujo.............................................................................................................................5
3.4 Ejemplos de Diagramas de Flujo................................................................................................................................6
4. Tipos de lenguajes de programación................................................................................................8
4.1 ¿Por qué Python?.......................................................................................................................................................9
5. Ejecutar un programa Python........................................................................................................10
6. Utilizar Python desde la línea de comandos..................................................................................13
7. Tipos de datos.................................................................................................................................14
8. Operadores. Trabajando con números..........................................................................................15
9. Comenzando a utilizar variables.....................................................................................................16
10. Cadenas de caracteres – función print()......................................................................................18
10.1 print() con más de un argumento..........................................................................................................................18
10.2 Opciones sencillas cadenas de caracteres y print()...............................................................................................19
10.3 Funciones de tipo f.................................................................................................................................................20
10.4 Índices en las cadenas de texto.............................................................................................................................21
11. Listas.............................................................................................................................................22
11.1 Opciones trabajando con listas............................................................................................................................23
12. Ejecutar un archivo .py.................................................................................................................26
12.1 Ejecutar el archivo desde la línea de comandos....................................................................................................26
12.2 Ejecutar haciendo clic en el icono del módulo.......................................................................................................27
13. Programar con Sublime Text. Primer programa..........................................................................28
14. Pasando valores al programa –input().........................................................................................30
14.1 Números e input()..................................................................................................................................................30
14.2 Argumento de la función input()...........................................................................................................................31
15. Sentencias condicionales: if… elif…else….....................................................................................32
15.1 Sentencia condicional if… (Una opción).................................................................................................................32
15.2 if … else … (dos opciones)......................................................................................................................................33
15.3 if… elif… else… (más de dos opciones)...................................................................................................................33
15.4 Sentencias condicionales anidadas.......................................................................................................................34
15.5 Sintaxis alternativa con valores lógicos.................................................................................................................35
15.6 Concatenación de comparadores lógicos..............................................................................................................36
15.7 If con el operador in...............................................................................................................................................36
16. El bucle for....................................................................................................................................37
16.1 Contadores y acumuladores..................................................................................................................................39
16.2 Bucles anidados.....................................................................................................................................................40
17. Bucle while....................................................................................................................................41
17.1 Bucles infinitos.......................................................................................................................................................42
17.2 Ordenes break, continue, pass y else en bucles.....................................................................................................43
18. Funciones......................................................................................................................................47
18.1 Formateando la presentación de números...........................................................................................................47
19. Métodos........................................................................................................................................47

- 48 -

También podría gustarte