Subido por indira martinez truhillo

python

Anuncio
PYTHON
Araceli Trujillo
Primer encuentro
INTRODUCCIÓN E INSTALACIÓN DE PYTHON
Un programa de Python es un fichero de texto plano con la extensión .py (o .pyw). Se puede crear un programa de Python
con cualquier editor de texto plano, pero se recomienda utilizar editores de programación que incluyen herramientas que
facilitan la escritura de programas, como IDLE o Visual Studio Code.
Para la descarga del lenguaje Python lo hacemos del sitio: python.org (descargar la
versión que sea acorde al sistema operativo que se tenga instalado)
Ejecutamos el programa que descargamos y procedemos a instalarlo (marcamos 'Add
Python3.8 to PATH'):
Diferencia entre .py y .pyw
Los programas Python pueden tener dos extensiones: .py y .pyw. La más utilizada es la primera, .py.
Si se ejecutan desde IDLE, no hay diferencia entre ambas extensiones.
Pero si se ejecutan desde un terminal o haciendo doble clic sobre los ficheros, entonces sí que hay diferencias. Los archivos
.py son ejecutados por python.exe, mientras que los archivos .pyw son ejecutados por pythonw.exe. La principal diferencia es
que python.exe crea una ventana de terminal (o aprovecha la ventana de terminal desde la que se ejecuta el programa),
ventana que permite pedir valores al usuario o imprimir mensajes, mientras que pythonw.exe no crea ninguna ventana de
terminal.
Solamente se debe utilizar la extensión .pyw si el programa crea y gestiona su propia ventana de interfaz de usuario o si no
queremos ni pedir datos al usuario ni mostrarle ninguna salida del programa. En caso contrario, es mejor utilizar la extensión
.py.
Otra diferencia es que python.exe ejecuta los programas de forma síncrona, es decir, que en un terminal no se puede ejecutar
un nuevo programa .py hasta que ha terminado el programa anterior, mientras que pythonw.exe ejecuta los programas de
forma asíncrona, es decir, que se pueden ir ejecutando nuevos programas aunque los anteriores no hayan terminado de
ejecutarse.
Una vez que iniciamos el Python aparece la siguiente ventana:
Luego de haberse instalado
podemos ejecutarlo desde el menú
de opciones de Windows:
Para crear nuestro primer programa debemos seleccionar
desde el menú de opciones "File"->"New File":
En esta nueva ventana debemos codificar
nuestro programa en Python, el programa
mínimo es mostrar un mensaje por pantalla:
Para ejecutar el programa que codificamos
debemos seleccionar desde la ventana de
nuestro editor la opción "Run" -> "Run Module":
Procedemos a guardar en
el "disco duro" el primer
programa en Python
seleccionando la opción
"File"->"Save" creamos un
directorio donde
almacenaremos cada uno
de nuestros ejercicio que
desarrollaremos durante las
clases.
Podemos ver en otra ventana el resultado
de la ejecución de nuestro primer programa
en Python:
Si el editor que
viene por defecto
con Python no le
convence por ser
muy limitado y
aplicado
fundamentalmente
en el aprendizaje
de programación,
puede consultar
otros editores
disponibles para
Python.
Mi recomendación
es el editor VS
Code.
Ejecutar programas en ventana de terminal
Para ejecutar un programa en una ventana de terminal, es necesario estar situado en el directorio en el que se
encuentra el programa.
Abrir la ventana de terminal en Windows
Puede abrir una ventana de terminal o de PowerShell de varias maneras, que se muestran a continuación. La
primera de ellas es más cómoda porque abre la ventana de terminal directamente en la carpeta en la que se
encuentra el programa y no es necesario escribir comandos cd para desplazarse hasta ella, como ocurre en las
dos siguientes formas.
•Muestre en el Explorador de archivos de Windows la carpeta que contiene el programa, haga Shift + clic
derecho y elija la opción "Abrir la ventana de PowerShell aquí" (en Windows 10) o "Abrir ventana de
comandos aquí" (en Windows 7).
Ejecutar el programa
Una vez abierta la ventana de terminal en el directorio en el que se encuentra el programa, puede ejecutar el programa de
varias formas. En los ejemplos siguientes, se ejecuta un programa prueba.py en la carpeta pruebas que escribe ¡Hola,
mundo! en la pantalla.
En una ventana de comandos de Windows 7 o Windows 10, puede ejecutar un programa de varias maneras:
escriba simplemente el nombre del programa:
C:\Users\Barto\Documents\LMSGI Barto\Python\pruebas>prueba.py
¡Hola, mundo!
C:\Users\Barto\Documents\LMSGI Barto\Python\pruebas>
BREVE HISTORIA DE PYTHON
Python es un lenguaje de programación de propósito general muy poderoso y flexible, a la vez que sencillo y fácil
de aprender. Es un lenguaje de alto nivel, que permite procesar fácilmente todo tipo de estructuras de datos, tanto
numéricos como de texto.
Python fue creado a finales de los ochenta por Guido van Rossum en el Centro para las Matemáticas y la Informática
(CWI, Centrum Wiskunde & Informatica), en los Países Bajos, como un sucesor del lenguaje de programación ABC,
capaz de manejar excepciones e interactuar con el sistema operativo Amoeba.
El nombre del lenguaje proviene de la afición de su creador por los humoristas británicos Monty Python
Python se desarrolla bajo una licencia de Open source o código abierto aprobada por OSI, por lo
que se puede usar y distribuir libremente, incluso para uso comercial.
Es software libre, y está implementado en todas las plataformas y sistemas operativos habituales.
La Python Software Foundation (PSF) es una corporación sin fines de lucro que posee los
derechos de propiedad intelectual detrás del lenguaje de programación Python. Administran las
licencias de código abierto para Python versión 2.1 y posteriores, y poseen y protegen las marcas
comerciales asociadas con Python.
Guido van Rossum,
creador de Python,
en la convención
OSCON 2006
El gran software es soportado por grandes personas. La base de usuarios es entusiasta, dedicada a fomentar el uso
del lenguaje y comprometida a que sea diversa y amigable.
Comunidad(es) de Python en Venezuela La Fundación Python de Venezuela (FPyVE) es una organización sin
fines de lucro creada el 2 de febrero de 2015 dedicada a fomentar al lenguaje de programación Python. El
objetivo principal es el desarrollo, ejecución y/o consultoría de proyectos científicos, tecnológicos y productivos,
para cumplir fines de interés público en torno al desarrollo Nacional, haciendo uso y promoviendo
para tal fin, el uso del lenguaje de programación Python y las tecnologías asociadas a éste. Más información
visite http://pyve.github.io/
 Python como lenguaje Back-end
Qué es un lenguaje backend
Lo primero es entender de qué estamos hablando. Los lenguajes backend son nomenclaturas de programación
que están compuestas por tres elementos centrales: un servidor, una aplicación y una base de datos.
El backend también es conocido como el lado del script y una de sus principales funciones es crear
arquitecturas robustas y seguras que no comprometan el desempeño de las aplicaciones web.
Las tecnologías backend suelen recurrir a los frameworks para que los usuarios puedan interactuar y
desempeñar ciertas tareas o generar respuestas.
Existen cientos de lenguajes backend. Dado que es prácticamente imposible tener un conocimiento
profundo de cada uno de ellos, le indicamos que Python se encuentra entre los primeros tres lenguajes
backend.
Python es una tecnología derivada de muchos otros lenguajes como Algol-68, Modula-3, ABC y SmallTalk;
mientras que sus ventajas tienen que ver con que la capacidad de admitir métodos de programación
estructurados y funcionales.
Dicho lenguaje posee un formato simple, una sintaxis muy definida y pocas keywords, lo que permite que
el aprendizaje sea muy rápido para quienes se inician en el ámbito del desarrollo backend.
Esta facilidad en su comprensión provoca que Python también cuente con un código más simple de leer y de
mantener por parte de otros desarrolladores involucrados en el proyecto. También resulta ideal para el desarrollo
de prototipos, ya que su mantenimiento es fácil de manejar.
En cuanto a sus librerías, estas son bastante grandes, portables y compatibles con Windows, UNIX y Mac. Y lo
mejor es que se trata de un lenguaje backend de código abierto, lo que significa que puede ser descargado y
usado gratuitamente, además de ser modificado y redistribuido sin coste alguno.
Python resalta también por su legibilidad y limpieza en el código, la posibilidad de utilizar programación basada
en objetos con clases y herencia múltiple y de agrupar el código en módulos y paquetes.
Este lenguaje ofrece varios tipos de datos básicos como números, strings, diccionarios y listas; mientras que sus
opciones avanzadas permiten el uso de generadores y listas por comprensión.
Frameworks asociados: destacamos Django, un framework full-stack de código abierto lanzado en 2005 y que
cuenta con una amplia colección de librerías, mapeo objeto-relacional (ORM), migraciones de esquemas de
bases de datos y mecanismos de autenticación. Su gran ventaja es que ayuda a los desarrolladores a crear
códigos y aplicaciones complejas de una manera fácil y en menor tiempo que con otros frameworks. Esto la
convierte en una opción más eficiente y que ha sido capaz de cautivar a empresas como Mozilla, The Washington
Times y Pinterest, entre otras.
Sintaxis del lenguaje
Python es sensible a mayúsculas y minúsculas, no es lo mismo llamar a la función input con la sintaxis: Input.
Los nombres de variables también son sensibles a mayúsculas y minúsculas. Son dos variables distintas si en un lugar
iniciamos a la variable "superficie" y luego hacemos referencia a "Superficie"
Los nombres de variable no pueden tener espacios en blanco, caracteres especiales y empezar con un número.
En Python, a diferencia de muchos otros lenguajes, no se declara el tipo de la variable al crearla.
Las variables se definen de forma dinámica, lo que significa que no se tiene que especificar cuál es su tipo de antemano y
puede tomar distintos valores en otro momento, incluso de un tipo diferente al que tenía previamente.
Se usa el símbolo = para asignar valores.
x=1
x = "texto" # Esto es posible porque los tipos son asignados dinámicamente
Los nombres de variables pueden contener números y letras pero deben comenzar por una letra, además existen 28
palabras reservadas:
Todo el código debe escribirse en la misma columna, estará
or
global
elif
and
incorrecto si escribimos:
pass
if
else
assert
print
import
except
break
lado=input("Ingrese la medida del lado del cuadrado:")
raise
in
exec
class
lado=int(lado)
return
is
finally
continue
superficie=lado*lado
try
lambda
for
def
print("La superficie del cuadrado es")
while
not
from
del
print(superficie)
En caso de indexación, lo da la herramienta IDLE
Entrada/Salida en Python
Los programas serían de muy poca utilidad si no fueran capaces de interaccionar con el usuario.
Para pedir información al usuario, debe utilizar las funciones integradas en el interprete del lenguaje, así como los
argumentos de línea de comandos.
Ejemplo de la función input:
La función input() siempre devuelve un valor de cadenas de caracteres:
>>> nombre = input('Ana: ¿Cómo se llama usted?: ')
Ana: ¿Cómo se llama usted?: Leonardo
>>> print nombre
Leonardo
Ejemplo de la función input:
La función input() siempre devuelve un valor numérico:
>>> edad = input('Ana: ¿Que edad tiene usted?: ')
Ana: ¿Que edad tiene usted?: 38
>>> print edad
38
La forma general de mostrar información por pantalla es
mediante una consola de comando, generalmente podemos
mostrar texto y variables separándolos con comas, para este
se usa la sentencia print
TIPOS DE DATOS
Los tipos de datos se pueden resumir en esta tabla:
•Mutable: si su contenido (o dicho valor) puede cambiarse en tiempo de ejecución.
•Inmutable: si su contenido (o dicho valor) no puede cambiarse en tiempo de ejecución.
Cómo diferenciar entre distintos tipos de datos?
En python, existen distintos tipos de datos. Algunos de
ellos son números enteros como los números del 1 al 10
(enteros) o números continuos como los float o tipo texto
con palabras o los booleanos que son el true o false o
verdadero y falso
Para saber cuál es el tipo de datos de una variable,
podemos utilizar la función type(). A continuación una
muestra de los distintos tipos de datos en python
DATOS
Los números enteros son aquellos que no tienen decimales, tanto positivos como negativos (además del cero). En
Python se pueden representar mediante el tipo int (de integer, entero) o el tipo long (largo). La única diferencia
es que el tipo long permite almacenar números más grandes. Es aconsejable no utilizar el tipo long a menos que
sea necesario, para no malgastar memoria.
Para representar un número real en Python se escribe primero la parte entera, seguido de un punto y por último la
parte decimal,
real = 0.2703
También se puede utilizar notación científica, y añadir una e (de exponente) para indicar un exponente en base 10.
Por ejemplo: real = 0.1e-3
sería equivalente a 0.1 x 10-3 = 0.1 x 0.001 = 0.0001
Los números complejos son aquellos que tienen parte imaginaria. La mayor parte de los lenguajes de programación
carecen de este tipo, aunque sea muy utilizado por ingenieros y científicos en general.
En el caso de que necesites utilizar números complejos, o simplemente tengas curiosidad, este tipo, llamado complex en
Python, también se almacena usando coma flotante, debido a que estos números son una extensión de los números
reales. En concreto se almacena en una estructura de C, compuesta por dos variables de tipo double, sirviendo una de
ellas para almacenar la parte real y la otra para la parte imaginaria.
Los números complejos en Python se representan de la siguiente forma:
complejo = 2.1 + 7.8j
Cadenas de Caracteres
Hasta este momento hemos visto como definir variables enteras y flotantes. Realizar su carga por asignación y por teclado.
Para iniciarlas por asignación utilizamos el operador =
#definición de una variable entera
cantidad=20
#definición de una variable flotante
altura=1.92
Como vemos el intérprete de Python diferencia una variable flotante de una variable entera por la presencia del caracter
punto. Para realizar la carga por teclado utilizando la función input debemos llamar a la función int o float para convertir
el dato devuelto por input:
cantidad=int(input("Ingresar la cantidad de personas:"))
altura=float(input("Ingresar la altura de la persona en metros ej:1.70:"))
A estos dos tipos de datos fundamentales (int y float) se suma un tipo de dato muy utilizado que son las cadenas de
caracteres. Una cadena de caracteres está compuesta por uno o más caracteres. También podemos iniciar una cadena de
caracteres por asignación o ingresarla por teclado.
Inicialización de una cadena por asignación:
#definición e inicio de una cadena de caracteres
dia="lunes"
Igual resultado obtenemos si utilizamos la comilla simple:
#definición e inicio de una cadena de caracteres
dia='lunes'
Para la carga por teclado de una cadena de caracteres utilizamos la función input que retorna una cadena de caracteres:
nombre=input("ingrese su nombre:")
Los operadores relacionales
== Igualdad
!= Desigualdad
< menor
<= menor o igual
> mayor
>= mayor o igual
Cadenas de escape
Para escapar caracteres dentro de cadenas de caracteres se usa el carácter \
seguido de cualquier carácter ASCII.
También es posible
encerrar una cadena
entre triples comillas
(simples o dobles). De
esta forma puede escribir
el texto en varias líneas, y
al imprimir la cadena, se
respetarán los saltos de
línea que se introdujeron
sin tener que recurrir a los
caracteres escapados y
las comillas como los
anteriores.
 Operadores aritméticos
Operador
+
*
**
/
//
%
Descripción
Ejemplo
Suma>>> 3 + 2
5
Resta>>> 4 – 7
-3
Negación>>> -7
-7
Multiplicación>>> 2 * 6
12
Exponente>>> 2 ** 6
64
División >>> 3.5 / 2
1.75
División entera >>> 3.5 // 2 1.0
Módulo >>> 7 % 2
1
Operadores lógicos
Operador
and
or
not
Descripción
¿se cumple a y b?
¿se cumple a o b?
No al valor
Ejemplo
>>> True and False
>>> True or False
>>> not True
False
True
False
Operadores asignación
=
+=
-=
*=
/=
**=
//=
%=
Descripción
asigna valor a una variable
Ejemplo
>>> r = 5
>>> r1 = r
suma el valor a la variable
>>> r = 5
>>> r += 10; r
15
resta el valor a la variable
>>> r = 5
>>> r -= 10; r
-5
multiplica el valor a la variable
>>> r = 5
>>> r *= 10; r
50
divide el valor a la variable
>>> r = 5
>>> r /= 10; r
0
calcula el exponente del valor de la variable
>>> r = 5
>>> r **= 10; r
9765625
calcula la división entera del valor de la variable >>> r = 5
>>> r //= 10; r
0
devuelve el resto de la división del valor de la variable
>>> r = 5
>>> r %= 10; r
5
COMENTARIOS DE UNA LÍNEA
El signo para indicar el comienzo de un comentario
en Python es el carácter numeral #, a partir del
cual y hasta el fin de la línea, todo se considera un
comentario y es ignorado por el intérprete Python.
El carácter # puede estar al comienzo de línea (en
cuyo caso toda la línea será ignorada), o después de
finalizar una instrucción válida de código.
COMENTARIOS MULTILÍNEA
Python no dispone de un método para delimitar bloques de
comentarios de varias líneas.
Al igual que los comentarios de un sola línea, son cadenas de
caracteres, en este caso van entre triples comillas (simples o dobles),
esto tiene el inconveniente que, aunque no genera código
ejecutable, el bloque delimitado no es ignorado por el intérprete
Python, que crea el correspondiente objeto de tipo cadena de
caracteres.
>>> """comentarios en varias líneas"""
'comentarios en varias líneas'
>>> '''comentarios en varias líneas'''
'comentarios en varias líneas'
A continuación, una comparación entre comentarios multilínea y
comentarios en solo una línea:
>>> # Programa que calcula la sucesión
... # de números Fibonacci
...
>>> # se definen las variables
... a, b = 0, 1
>>> while b < 100: # mientras b sea menor a 100 itere >>> # Calcula la sucesión
... # de números Fibonacci
... print b,
...
... a, b = b, a + b # se calcula la sucesión Fibonacci
>>> """Calcula la sucesión
... de números Fibonacci"""
Estructura de programación secuencial
Cuando en un problema sólo participan operaciones, entradas y salidas se la denomina una estructura
secuencial.
Los problemas diagramados y codificados previamente emplean solo estructuras secuenciales.
La programación requiere una práctica ininterrumpida de diagramación y codificación de problemas.
Problema: Realizar la carga de dos números enteros por teclado e imprimir su suma y su producto.
Diagrama de flujo:
Tenemos dos entradas num1 y num2, dos operaciones: la suma y el producto de los
valores ingresados y dos salidas, que son los resultados de la suma y el producto de
los valores ingresados. En el símbolo de impresión podemos indicar una o más
salidas, eso queda a criterio del programador, lo mismo para indicar las entradas por
teclado.
CODIGO
num1=int(input("ingrese primer valor:"))
num2=int(input("ingrese segundo valor:"))
suma=num1+num2
producto=num1*num2
print("La suma de los dos valores es")
print(suma)
print("El producto de los dos valores es")
print(producto)
Realizar la carga del precio de un producto y la
cantidad a llevar. Mostrar cuanto se debe pagar (se
ingresa un valor entero en el precio del producto)
Diagrama de flujo:
Tenemos dos entradas: precio y cantidad, una operación
para calcular el importe y una salida.
precio=int(input("Ingrese el precio del producto:"))
cantidad=int(input("Ingrese la cantidad de productos a
llevar:"))
importe=precio*cantidad
print("El importe a pagar es")
print(importe)
Ver ejercicio compra
EJERCICIOS PROPUESTOS
1. Realizar la carga del lado de un cuadrado, mostrar por pantalla el perímetro del mismo (El perímetro de un cuadrado
se calcula multiplicando el valor del lado por cuatro)
Ver ejercicio cuadrado
2. Escribir un programa en el cual se ingresen cuatro números, calcular e informar la suma de los dos primeros y el
producto del tercero y el cuarto.
Ver ejercicio suma y producto
3. Realizar un programa que lea cuatro valores numéricos e informar su suma y promedio.
4. Calcular el sueldo mensual de un operario conociendo la cantidad de horas trabajadas y el valor por hora.
Ver ejercicio sueldo
Ejercicio 2
Ejercicio 1
lado=int(input("Ingrese el lado del cuadrado:"))
num1=int(input("Ingrese primer valor:"))
perimetro=lado*4
num2=int(input("Ingrese segundo valor:"))
print("El perimetro del cuadrado es")
num3=int(input("Ingrese tercer valor:"))
print(perimetro)
num4=int(input("Ingrese cuarto valor:"))
suma=num1+num2
producto=num3*num4
print("La suma de los dos primero valores es")
print(suma)
print("El producto del tercer y cuarto valor es")
print(producto)
Ejercicio 4
Ejercicio 3
num1=int(input("Ingrese primer valor:"))
num2=int(input("Ingrese segundo valor:"))
num3=int(input("Ingrese tercer valor:"))
num4=int(input("Ingrese cuarto valor:"))
suma=num1+num2+num3+num4
promedio=suma/4
print("La suma de los cuatro valores es")
print(suma)
print("El promedio es")
print(promedio)
horastrabajadas=int(input("Ingrese la cantidad de horas
trabajadas:"))
valorhora=int(input("Importe a pagar por hora:"))
sueldo=horastrabajadas*valorhora
print("Sueldo a pagar")
print(sueldo)
Estructura condicional IF - SIMPLE
No todos los problemas pueden resolverse
empleando estructuras secuenciales. Cuando
hay que tomar una decisión aparecen las
estructuras condicionales.
En nuestra vida diaria se nos presentan
situaciones donde debemos decidir.
¿Elijo la carrera A o la carrera B?
¿Me pongo este pantalón?
Para ir al trabajo, ¿Elijo el camino A o el camino
B?
Al cursar una carrera, ¿Elijo el turno mañana,
tarde o noche?
Es común que en un problema se combinan
estructuras secuenciales y condicionales.
Estructura condicional simple.
Cuando se presenta la elección tenemos la
opción de realizar una actividad o no realizar
ninguna.
Representación gráfica de una estructura
condicional a utilizar en un diagrama de flujo:
Podemos observar: El rombo representa la condición.
Hay dos opciones que se pueden tomar. Si la condición
da verdadera se sigue el camino del verdadero, o sea el
de la derecha, si la condición da falsa se sigue el camino
de la izquierda donde no hay ninguna actividad.
Se trata de una estructura CONDICIONAL SIMPLE
porque por el camino del verdadero hay actividades y por
el camino del falso no hay actividades.
Por el camino del verdadero pueden existir varias
operaciones, entradas y salidas, inclusive ya veremos que
puede haber otras estructuras condicionales.
Ejercicio:
Programa: sueldo.py
Ingresar el sueldo de una persona, si supera los 3000
dólares mostrar un mensaje en pantalla indicando que
debe abonar impuestos.
Diagrama de flujo:
sueldo=int(input("Ingrese cual es su sueldo:"))
if sueldo>3000:
print("Esta persona debe abonar impuestos")
La palabra clave "if" indica que estamos en presencia de
una estructura condicional; seguidamente disponemos la
condición y finalizamos la línea con el caracter dos
puntos.
La actividad dentro del if se indenta generalmente a 4
espacios.
Todo lo que se encuentre en la rama del verdadero del if
se debe disponer a 4 espacios corrido a derecha.
Podemos observar lo siguiente: Siempre se hace la
carga del sueldo, pero si el sueldo que ingresamos
supera 3000 dolares se mostrará por pantalla el mensaje
"Esta persona debe abonar impuestos", en caso que la
persona cobre 3000 o menos no aparece nada por
pantalla.
La indentación es una característica obligatoria del
lenguaje Python para codificación de las estructuras
condicionales, de esta forma el intérprete de Python
puede identificar donde finalizan las instrucciones
contenidas en la rama verdadera del if.
Ejecutando el programa e ingresamos un
sueldo superior a 3000. Podemos observar
como aparece en pantalla el mensaje "Esta
persona debe abonar impuestos", ya que la
condición del if es verdadera:
Si lo volvemos a ejecutar e ingresamos un valor igual o
inferior a 3000 podemos observar que la instrucción que
se encuentra por la rama del verdadero del if no se
ejecuta:
Estructura condicional IF compuesta.
Cuando se presenta la elección tenemos la opción de realizar una actividad u otra. Es decir tenemos actividades
por el verdadero y por el falso de la condición. Lo más importante que hay que tener en cuenta que se realizan
las actividades de la rama del verdadero o las del falso, NUNCA se realizan las actividades de las dos ramas.
En una estructura condicional compuesta tenemos
actividades tanto por la rama del verdadero como por la
rama del falso.
Ejercicio:
Realizar un programa que solicite ingresar dos números distintos y muestre por pantalla el mayor de ellos.
Se hace la entrada de num1 y num2 por teclado. Para saber cual
variable tiene un valor mayor preguntamos si el contenido de
num1 es mayor (>) que el contenido de num2, si la respuesta es
verdadera vamos por la rama de la derecha e imprimimos num1,
en caso que la condición sea falsa vamos por la rama de la
izquierda (Falsa) e imprimimos num2.
Como podemos observar nunca se imprimen num1 y num2
simultáneamente.
Estamos en presencia de una ESTRUCTURA CONDICIONAL
COMPUESTA ya que tenemos actividades por la rama del
verdadero y del falso.
Programa: mayor.py
num1=int(input("Ingrese primer valor:"))
num2=int(input("ingrese segundo valor:"))
print("El valor mayor es")
if num1>num2:
print(num1)
else:
print(num2)
Cotejemos el diagrama de flujo y la
codificación y observemos que el primer
bloque después del if representa la rama del
verdadero y el segundo bloque después de la
palabra clave else representa la rama del falso.
Ejecutamos el programa, si hubo errores
sintácticos corrijamos y carguemos dos
valores, como por ejemplo:
Ingrese el primer valor: 10
Ingrese el segundo valor: 4
El valor mayor es
10
Si ingresamos los valores 10 y 4 la condición del if retorna
verdadero y ejecuta el primer bloque.
Un programa se controla y corrige probando todos sus
posibles resultados.
Ejecutemos nuevamente el programa e ingresemos:
Ingrese el primer valor: 10
Ingrese el segundo valor: 54
El valor mayor es
54
Cuando a un programa le corregimos
todos los errores sintácticos y lógicos
ha terminado nuestra tarea y podemos
entregar el mismo al USUARIO que nos
lo solicitó.
En una condición deben disponerse únicamente
variables, valores constantes y operadores relacionales.
Problemas propuestos
•Realizar un programa que solicite la carga por teclado de dos números, si el primero es mayor al segundo
informar su suma y diferencia, en caso contrario informar el producto y la división del primero respecto al
segundo. Ver
ejercicio operaciones según numero mayor
•Se ingresan tres notas de un alumno, si el promedio es mayor o igual a siete mostrar un mensaje
"Promocionado". Ver
ejercicio promocionado
•Se ingresa por teclado un número positivo de uno o dos dígitos (1..99) mostrar un mensaje indicando si el
número tiene uno o dos dígitos.
(Tener en cuenta que condición debe cumplirse para tener dos dígitos un número entero)
•Ver ejercicio cantidad de dígitos
Segundo encuentro
Estructuras condicionales anidadas IF-ELSE
Estamos en presencia de una estructura condicional anidada cuando por la rama del verdadero o el falso de
una estructura condicional hay otra estructura condicional.
El diagrama de flujo que se presenta contiene dos estructuras condicionales. La principal se trata de una
estructura condicional compuesta y la segunda es una estructura condicional simple y está contenida por la
rama del falso de la primer estructura.
Es común que se presenten estructuras condicionales anidadas aún más complejas.
Ejercicio:
Confeccionar un programa que pida por teclado tres notas de un alumno, calcule el promedio e imprima alguno
de estos mensajes:
Si el promedio es >=7 mostrar "Promocionado".
Analicemos el siguiente diagrama. Se ingresan tres
Si el promedio es >=4 y <7 mostrar "Regular".
valores por teclado que representan las notas de un
Si el promedio es <4 mostrar "Reprobado".
alumno, se obtiene el promedio sumando los tres valores
y dividiendo por 3 dicho resultado (Tener en cuenta que el
resultado es un valor real ya que se utiliza el operador /).
Primeramente preguntamos si el promedio es superior o
igual a 7, en caso afirmativo va por la rama del verdadero
de la estructura condicional mostramos un mensaje que
indica "Promocionado" (con comillas indicamos un texto
que debe imprimirse en pantalla).
En caso que la condición nos de falso, por la rama del
falso aparece otra estructura condicional, porque todavía
debemos averiguar si el promedio del alumno es superior
o igual a cuatro o inferior a cuatro.
Estamos en presencia de dos estructuras condicionales
compuestas.
Programa: notas.py
nota1=int(input("Ingrese primer nota:"))
nota2=int(input("Ingrese segunda nota:"))
nota3=int(input("Ingrese tercer nota:"))
prom=(nota1+nota2+nota3)/3
if prom>=7:
print("Promocionado")
else:
if prom>=4:
print("Regular")
else:
print("Reprobado")
Codifiquemos y ejecutemos este programa. Al correr el programa deberá solicitar por teclado la carga de tres notas
y mostrarnos un mensaje según el promedio de las mismas.
A la codificación del if anidado podemos observarla por el else del primer if.
Como vemos debemos indentar a 8 caracteres las ramas del verdadero y falso del if anidado
Problemas propuestos
 Se cargan por teclado tres números distintos. Mostrar por pantalla el mayor de ellos. Ver ejercicio numero mayor (3
números)
 Se ingresa por teclado un valor entero, mostrar una leyenda que indique si el número es positivo, negativo o nulo (es decir
cero) Ver ejercicio positivo negativo o nulo
 Confeccionar un programa que permita cargar un número entero positivo de hasta tres cifras y muestre un mensaje
indicando si tiene 1, 2, o 3 cifras. Mostrar un mensaje de error si el número de cifras es mayor. Ver ejercicio cantidad
de dígitos (3 dígitos)
 Un postulante a un empleo, realiza un test de capacitación, se obtuvo la siguiente información: cantidad total de
preguntas que se le realizaron y la cantidad de preguntas que contestó correctamente. Se pide confeccionar un programa
que ingrese los dos datos por teclado e informe el nivel del mismo según el porcentaje de respuestas correctas que ha
obtenido, y sabiendo que:

Nivel máximo:Porcentaje>=90%.

Nivel medio: Porcentaje>=75% y <90%. Ver ejercicio nivel de capacitación

Nivel regular: Porcentaje>=50% y <75%.

Fuera de nivel:
Porcentaje<50%.
Operadores lógicos and y or
Estos dos operadores se emplean fundamentalmente en las estructuras condicionales para agrupar varias
condiciones simples.
Operador and
Confeccionar un programa que lea por teclado
tres números enteros distintos y nos muestre el
mayor.
Traducido se lo lee como “Y”. Si la Condición 1 es
verdadera Y la condición 2 es verdadera luego ejecutar la
rama del verdadero.
Cuando vinculamos dos condiciones con el operador
“and”, las dos condiciones deben ser verdaderas para que
el resultado de la condición compuesta de Verdadero y
continúe por la rama del verdadero de la estructura
condicional.
La utilización de operadores lógicos permiten en muchos
casos plantear algoritmos más cortos y comprensibles.
Este ejercicio se puede resolver sin operadores lógicos pero el utilizarlos nos permite que sea mas simple la solución.
La primera estructura condicional es una ESTRUCTURA CONDICIONAL COMPUESTA con una CONDICION COMPUESTA.
Podemos leerla de la siguiente forma:
Si el contenido de la variable num1 es mayor al contenido de la variable num2 "Y" si el contenido de la variable num1 es
mayor al contenido de la variable num3 entonces la CONDICION COMPUESTA resulta Verdadera.
Si una de las condiciones simples da falso la CONDICION COMPUESTA da Falso y continúa por la rama del falso.
Es decir que se mostrará el contenido de num1 si y sólo si num1 > num2 y num1 > num3.
En caso de ser Falsa la condición, analizamos el contenido de num2 y num3 para ver cual tiene un valor mayor.
En esta segunda estructura condicional no se requieren operadores lógicos al haber una condición simple.
Programa: mayores.py
num1=int(input("Ingrese primer valor:"))
num2=int(input("Ingrese segundo valor:"))
num3=int(input("Ingrese tercer valor:"))
print("El mayor de los tres valores es")
if num1>num2 and num1>num3:
print(num1)
else:
if num2>num3:
print(num2)
else:
print(num3)
Operador or
Traducido se lo lee como “O”. Si la condición 1 es Verdadera o la
condición 2 es Verdadera, luego ejecutar la rama del Verdadero.
Cuando vinculamos dos o más condiciones con el operador “or",
con que una de las dos condiciones sea Verdadera alcanza para
que el resultado de la condición compuesta sea Verdadero.
Se carga una fecha (día,
mes y año) por teclado.
Mostrar un mensaje si
corresponde al primer
trimestre del año (enero,
febrero o marzo) Cargar
por teclado el valor
numérico del día, mes y
año.
Ejemplo: dia:10 mes:2
año:2018
La carga de una fecha se hace por partes,
ingresamos las variables dia, mes y año.
Mostramos el mensaje "Corresponde al primer
trimestre" en caso que el mes ingresado por
teclado sea igual a 1, 2 ó 3.
En la condición no participan las variables dia y
año.
Programa: trimestre.py
dia=int(input("Ingrese nro de día:"))
mes=int(input("Ingrese nro de mes:"))
año=int(input("Ingrese nro de año:"))
if mes==1 or mes==2 or mes==3:
print("Corresponde al primer trimestre")
Problemas propuestos
•Realizar un programa que pida cargar una fecha cualquiera, luego verificar si dicha fecha corresponde a
Navidad. Ver ejercicio navidad
•Se ingresan por teclado tres números, si todos los valores ingresados son menores a 10, imprimir en pantalla la
leyenda "Todos los números son menores a diez". Ver ejercicio menores a 10
•Se ingresan por teclado tres números, si al menos uno de los valores ingresados es menor a 10, imprimir en
pantalla la leyenda "Alguno de los números es menor a diez". Ver ejercicio menores a 10 (or)
•Se ingresan tres valores por teclado, si todos son iguales se imprime la suma del primero con el segundo y a
este resultado se lo multiplica por el tercero.
•Escribir un programa que pida ingresar la coordenada de un punto en el plano, es decir dos valores enteros x e
y (distintos a cero).
Posteriormente imprimir en pantalla en que cuadrante se ubica dicho punto. (1º Cuadrante si x > 0 Y y > 0 , 2º
Cuadrante: x < 0 Y y > 0, etc.) Ver ejercicio punto en el plano
•De un operario se conoce su sueldo y los años de antigüedad. Se pide confeccionar un programa que lea los
datos de entrada e informe:
a) Si el sueldo es inferior a 500 y su antigüedad es igual o superior a 10 años, otorgarle un aumento del 20 %,
mostrar el sueldo a pagar.
b)Si el sueldo es inferior a 500 pero su antigüedad es menor a 10 años, otorgarle un aumento de 5 %.
c) Si el sueldo es mayor o igual a 500 mostrar el sueldo en pantalla sin cambios.
•Escribir un programa en el cual: dada una lista de tres valores numéricos distintos se calcule e informe su
rango de variación (debe mostrar el mayor y el menor de ellos)
BUCLES WHILE
Hasta ahora hemos empleado estructuras SECUENCIALES y CONDICIONALES. Existe otro tipo de estructuras
tan importantes como las anteriores que son las estructuras REPETITIVAS.
Una estructura repetitiva permite ejecutar una instrucción o un conjunto de instrucciones varias veces.
Una estructura repetitiva se caracteriza por:
- La sentencia o las sentencias que se repiten.
- El test o prueba de condición antes de cada repetición, que motivará que se repitan o no las instrucciones.
No debemos confundir la representación gráfica de la estructura repetitiva while (Mientras) con la estructura
condicional if (Si)
Funcionamiento: En primer lugar se verifica la condición, si la misma resulta verdadera se ejecutan las
operaciones que indicamos por la rama del Verdadero.
A la rama del verdadero la graficamos en la parte inferior de la condición. Una línea al final del bloque de
repetición la conecta con la parte superior de la estructura repetitiva.
En caso que la condición sea Falsa continúa por la rama del Falso y sale de la estructura repetitiva para
continuar con la ejecución del algoritmo.
El bloque se repite MIENTRAS la condición sea Verdadera.
Importante: Si la condición siempre retorna verdadero estamos en
presencia de un ciclo repetitivo infinito. Dicha situación es un error de
programación lógico, nunca finalizará el programa.
Realizar un programa que imprima en pantalla los números del 1 al 100.
Sin conocer las estructuras repetitivas podemos resolver el problema empleando una estructura secuencial.
Iniciamos una variable con el valor 1, luego imprimimos la variable, incrementamos nuevamente la variable y así
sucesivamente.
Si continuamos con el
diagrama veríamos que es
casi interminable.
Emplear una estructura
secuencial para resolver
este problema produce un
diagrama de flujo y un
programa en Python muy
largo.
Ahora veamos la solución
empleando una estructura
repetitiva while:
Es muy importante analizar este diagrama:
La primera operación inicializa la variable x en 1, seguidamente comienza la estructura repetitiva while y disponemos la
siguiente condición ( x <= 100), se lee MIENTRAS la variable x sea menor o igual a 100.
Al ejecutarse la condición retorna VERDADERO porque el contenido de x (1) es menor o igual a 100. Al ser la condición
verdadera se ejecuta el bloque de instrucciones que contiene la estructura while. El bloque de instrucciones contiene una
salida y una operación.
Se imprime el contenido de x, y seguidamente se incrementa la variable x en uno.
La operación x=x+1 se lee como "en la variable x se guarda el contenido de x más 1". Es decir, si x contiene 1 luego de
ejecutarse esta operación se almacenará en x un 2.
Al finalizar el bloque de instrucciones que contiene la estructura repetitiva se verifica nuevamente la condición de la
estructura repetitiva y se repite el proceso explicado anteriormente.
Mientras la condición retorne verdadero se ejecuta el bloque de instrucciones; al retornar falso la verificación de la
condición se sale de la estructura repetitiva y continua el algoritmo, en este caso finaliza el programa.
Lo más difícil es la definición de la condición de la estructura while y que bloque de instrucciones se van a repetir. Observar
que si, por ejemplo, disponemos la condición x >=100 ( si x es mayor o igual a 100) no provoca ningún error sintáctico pero
estamos en presencia de un error lógico porque al evaluarse por primera vez la condición retorna falso y no se ejecuta el
bloque de instrucciones que queríamos repetir 100 veces.
No existe una RECETA para definir una condición de una estructura repetitiva, sino que se logra con una práctica continua
solucionando problemas.
Una vez planteado el diagrama debemos verificar si el mismo es una solución válida al problema (en este caso se debe
imprimir los números del 1 al 100 en pantalla), para ello podemos hacer un seguimiento del flujo del diagrama y los valores
que toman las variables a lo largo de la ejecución:
x
1
2
3
4
.
.
100
101 Cuando x vale 101 la condición de la estructura repetitiva retorna falso,
en este caso finaliza el diagrama.
Importante: Podemos observar que el bloque repetitivo puede no ejecutarse ninguna vez si la condición retorna falso la
primera vez.
La variable x debe estar inicializada con algún valor antes que se ejecute la operación x=x+1 en caso de no estar
inicializada aparece un error de compilación.
Programa: numeros.py
x=1
while x<=100:
print(x)
x=x+1
Recordemos que un problema no estará 100% solucionado si
no codificamos el programa en nuestro caso en Python que
muestre los resultados buscados.
Es importante notar que seguido de la palabra clave while
disponemos la condición y finalmente los dos puntos. Todo el
código contenido en la estructura repetitiva debe estar
indentado (normalmente a cuatro espacios)
Probemos algunas modificaciones de este programa
y veamos que cambios se deberían hacer para:
1 - Imprimir los números del 1 al 500.
2 - Imprimir los números del 50 al 100.
3 - Imprimir los números del -50 al 0.
4 - Imprimir los números del 2 al 100 pero de 2 en 2
(2,4,6,8 ....100).
Respuestas:
1 - Debemos cambiar la condición del while con
x<=500.
2 - Debemos inicializar x con el valor 50.
3 - Inicializar x con el valor -50 y fijar la condición x<=0.
4 - Inicializar a x con el valor 2 y dentro del bloque
repetitivo incrementar a x en 2
(x=x+2)
Ejercicio
Codificar un programa que solicite la carga de un valor positivo y nos muestre desde 1 hasta el valor ingresado
de uno en uno.
Ejemplo: Si ingresamos 30 se debe mostrar en pantalla los números del 1 al 30.
Es de FUNDAMENTAL importancia analizar los diagramas de flujo y la posterior codificación en Python de los
siguientes problemas, en varios problemas se presentan otras situaciones no vistas en el ejercicio anterior.
Podemos observar que se ingresa por teclado la variable n. El operador puede
cargar cualquier valor.
Si el usuario carga 10 el bloque repetitivo se ejecutará 10 veces, ya que la
condición es “Mientras x<=n ”, es decir “mientras x sea menor o igual a 10”;
pues x comienza en uno y se incrementa en uno cada vez que se ejecuta el
bloque repetitivo.
A la prueba del diagrama la podemos realizar dándole valores a las variables;
por ejemplo, si ingresamos 5 el seguimiento es el siguiente:
n x
5
1 (Se imprime el contenido de x)
2
"
"
3
"
"
4
"
"
5
"
"
6 (Sale del while porque 6 no es menor o igual a 5)
Programa: valorfinal.py
n=int(input("Ingrese el valor final:"))
x=1
while x<=n:
print(x)
x=x+1
Los nombres de las variables n y x
pueden ser palabras o letras
(como en este caso)
La variable x recibe el nombre de
CONTADOR. Un contador es un
tipo especial de variable que se
incrementa o disminuye con
valores constantes durante la
ejecución del programa.
El contador x nos indica en cada
momento la cantidad de valores
impresos en pantalla.
Problema 3:
Desarrollar un programa que permita la carga de 10 valores por teclado
y nos muestre posteriormente la suma de los valores ingresados y su
promedio.
En este problema, a semejanza de los anteriores,
tenemos un CONTADOR llamado x que nos sirve
para contar las vueltas que debe repetir el while.
También aparece el concepto de ACUMULADOR
(un acumulador es un tipo especial de variable
que se incrementa o disminuye con valores
variables durante la ejecución del programa)
Hemos dado el nombre de suma a nuestro
acumulador. Cada ciclo que se repita la estructura
repetitiva, la variable suma se incrementa con el
contenido ingresado en la variable valor.
La prueba del diagrama se realiza dándole valores a las variables:
valor
suma
x
promedio
0
0
(Antes de entrar a la estructura repetitiva estos son los valores).
5
5
1
16
21
2
7
28
3
10
38
4
2
40
5
20
60
6
5
65
7
5
70
8
10
80
9
2
82
10
8
90
11
9
Este es un seguimiento del diagrama
planteado. Los números que toma la
variable valor dependerá de qué cifras
cargue el operador durante la ejecución
del programa.
El promedio se calcula al salir de la
estructura repetitiva (es decir primero
sumamos los 10 valores ingresados y
luego los dividimos por 10)
Hay que tener en cuenta que cuando en
la variable valor se carga el primer valor
(en este ejemplo 5) al cargarse el
segundo valor (16) el valor anterior 5 se
pierde, por ello la necesidad de ir
almacenando en la variable suma los
valores ingresados.
Programa: promedio.py
x=1
suma=0
while x<=10:
valor=int(input("Ingrese un valor:"))
suma=suma+valor
x=x+1
promedio=suma/10
print("La suma de los 10 valores es")
print(suma)
print("El promedio es")
print(promedio)
El resultado del promedio es un valor real es decir con coma. Si
queremos que el resultado de la división solo retorne la parte
entera del promedio debemos utilizar el operador //:
promedio=suma//10
El interprete de Python sabe que el promedio se calcula al
finalizar el while ya que se encuentra codificado en la columna 1.
Las tres instrucciones contenidas en el while están indentadas.
Problema 4:
Una planta que fabrica perfiles de hierro posee un lote de n piezas.
Confeccionar un programa que pida ingresar por teclado la cantidad de piezas a procesar y luego ingrese la
longitud de cada perfil; sabiendo que la pieza cuya longitud esté comprendida en el rango de 1.20 y 1.30 son
aptas. Imprimir por pantalla la cantidad de piezas aptas que hay en el lote.
Podemos observar que dentro de una estructura repetitiva puede haber estructuras
condicionales (inclusive puede haber otras estructuras repetitivas que veremos más
adelante)
En este problema hay que cargar inicialmente la cantidad de piezas a ingresar ( n ),
seguidamente se cargan n valores de largos de piezas.
Cada vez que ingresamos un largo de pieza (largo) verificamos si es una medida
correcta (debe estar entre 1.20 y 1.30 el largo para que sea correcta), en caso de ser
correcta la CONTAMOS (incrementamos la variable cantidad en 1)
Al contador cantidad lo inicializamos en cero porque inicialmente no se ha cargado
ningún largo de pieza.
Cuando salimos de la estructura repetitiva porque se han cargado n largos de piezas
mostramos por pantalla el contador cantidad (que representa la cantidad de piezas
aptas). En este problema tenemos dos CONTADORES:
x
(Cuenta la cantidad de piezas cargadas hasta el momento)
cantidad (Cuenta los perfiles de hierro aptos)
Programa: piezas.py
cantidad=0
x=1
n=int(input("Cuantas piezas cargara:"))
while x<=n:
largo=float(input("Ingrese la medida de la pieza:"))
if largo>=1.2 and largo<=1.3:
cantidad=cantidad+1
x=x+1
print("La cantidad de piezas aptas son")
print(cantidad)
Veamos algunas cosas nuevas:
Cuando queremos cargar por teclado un valor con decimales
debemos utilizar la función float en lugar de int:
largo=float(input("Ingrese la medida de la pieza:"))
Problemas propuestos
 Escribir un programa que solicite ingresar 10 notas de alumnos y nos informe cuántos tienen notas mayores o iguales a 7 y cuántos
menores. Ver ejercicio notas
 Se ingresan un conjunto de n alturas de personas por teclado. Mostrar la altura promedio de las personas. Ver ejercicio altura
 En una empresa trabajan n empleados cuyos sueldos oscilan entre $100 y $500, realizar un programa que lea los sueldos que cobra cada
empleado e informe cuántos empleados cobran entre $100 y $300 y cuántos cobran más de $300. Además el programa deberá informar
el importe que gasta la empresa en sueldos al personal. Ver ejercicio sueldo 300
 Realizar un programa que imprima 25 términos de la serie 11 - 22 - 33 - 44, etc. (No se ingresan valores por teclado) Ver ejercicio ciclo
a 11
 Mostrar los múltiplos de 8 hasta el valor 500. Debe aparecer en pantalla 8 - 16 - 24, etc. Ver ejercicio ciclo en 8
 Realizar un programa que permita cargar dos listas de 15 valores cada una. Informar con un mensaje cual de las dos listas tiene un valor
acumulado mayor (mensajes "Lista 1 mayor", "Lista 2 mayor", "Listas iguales") Ver ejercicio listas y ciclos
 Tener en cuenta que puede haber dos o más estructuras repetitivas en un algoritmo.
 Desarrollar un programa que permita cargar n números enteros y luego nos informe cuántos valores fueron pares y cuántos impares.
Ver ejercicio pares o impares
 Emplear el operador “%” en la condición de la estructura condicional (este operador retorna el resto de la división de dos valores, por
ejemplo 11%2 retorna un 1):
if valor%2==0:
BUCLE FOR
Cualquier problema que requiera una estructura repetitiva se puede resolver empleando la estructura while,
pero hay otra estructura repetitiva cuyo planteo es más sencillo en ciertas situaciones que tenemos que recorrer
una lista de datos.
En general, la estructura repetitiva for se usa en aquellas situaciones en las cuales queremos que una variable
vaya tomando un valor de una lista definida de valores.
Tenemos primero la palabra clave for y
Veremos con una serie de ejemplos el empleo del for.
seguidamente el nombre de la variable que
Problema 1:
almacenará en cada vuelta del for el valor
Realizar un programa que imprima en pantalla los
entero que retorna la función range.
números del 0 al 100. Este problema lo podemos resolver La función range retorna la primera vez el
perfectamente con el ciclo while pero en esta situación lo valor 0 y se almacena en x, luego el 1 y así
resolveremos empleando el for.
sucesivamente hasta que retorna el valor que
le pasamos a range menos uno (es decir en
for x in range(101):
nuestro ejemplo al final retorna un 100)
print(x)
Tengamos en cuenta que este mismo
problema resuelto con la estructura while
debería ser:
x=0
while x<101:
print(x)
x=x+1
Problema 2:
Realizar un programa que imprima en pantalla
los números del 20 al 30.
Programa: numerodeveinte.py
for x in range(20,31):
print(x)
La función range puede tener dos
parámetros, el primero indica el valor inicial
que tomará la variable x, cada vuelta del for
la variable x toma el valor siguiente hasta
llegar al valor indicado por el segundo
parámetro de la función range menos uno.
Problema 3:
Imprimir todos los números impares que hay entre 1 y 100.
Programa: numeroscien.py
for x in range(1,100,2):
print(x)
La función range puede tener también tres parámetros, el
primero indica el valor inicial que tomará la variable x, el
segundo parámetro el valor final (que no se incluye) y el
tercer parámetro indica cuanto se incrementa cada vuelta
x.
En nuestro ejemplo la primer vuelta del for x recibe el
valor 1, la segunda vuelta toma el valor 3 y así
sucesivamente hasta el valor 99.
Problema 4:
Desarrollar un programa que permita la carga de 10
valores por teclado y nos muestre posteriormente la
suma de los valores ingresados y su promedio. Este
problema ya lo desarrollamos, lo resolveremos
empleando la estructura for para repetir la carga de los
diez valores por teclado.
Programa: sumadevalores.py
suma=0
for f in range(10):
valor=int(input("Ingrese valor:"))
suma=suma+valor
print("La suma es")
print(suma)
promedio=suma/10
print("El promedio es:")
print(promedio)
Como vemos la variable f del for solo sirve para
iterar(repetir) las diez veces el bloque contenido en el
for.
El resultado hubiese sido el mismo si llamamos a la
funcion range con los valores: range(1,11)
Problema 5:
Escribir un programa que solicite por teclado 10 notas
de alumnos y nos informe cuántos tienen notas
mayores o iguales a 7 y cuántos menores.
Programa: aprobados.py
aprobados=0
reprobados=0
for f in range(10):
nota=int(input("Ingrese la nota:"))
if nota>=7:
aprobados=aprobados+1
else:
reprobados=reprobados+1
print("Cantidad de aprobados")
print(aprobados)
print("Cantidad de reprobados")
print(reprobados)
Nuevamente utilizamos el for ya que sabemos que el
ciclo repetitivo debe repetirse 10 veces. Recordemos
que si utilizamos el while debemos llevar un contador
y recordar de incrementarlo en cada vuelta.
Problema 6:
Escribir un programa que lea 10 números enteros y luego
muestre cuántos valores ingresados fueron múltiplos de 3
y cuántos de 5. Debemos tener en cuenta que hay
números que son múltiplos de 3 y de 5 a la vez.
Programa: multiplos.py
mul3=0
mul5=0
for f in range(10):
valor=int(input("Ingrese un valor:"))
if valor%3==0:
mul3=mul3+1
if valor%5==0:
mul5=mul5+1
print("Cantidad de valores ingresados múltiplos de 3")
print(mul3)
print("Cantidad de valores ingresados múltiplos de 5")
print(mul5)
Si ejecutamos el programa tenemos una salida similar a
esta:
Problema 7:
Codificar un programa que lea n números enteros y calcule la cantidad de valores mayores o iguales a 1000 (n
se carga por teclado)
Este tipo de problemas también se puede resolver empleando la estructura repetitiva for. Lo primero que se hace
es cargar una variable que indique la cantidad de valores a ingresar. Dicha variable se carga antes de entrar a la
estructura repetitiva for.
Programa: ejercicio46.py
cantidad=0
n=int(input("Cuantos valores ingresará:"))
for f in range(n):
valor=int(input("Ingrese el valor:"))
if valor>=1000:
cantidad=cantidad+1
print("La cantidad de valores ingresados mayores o iguales a
1000 son")
print(cantidad)
Problemas propuestos
•Confeccionar un programa que lea n pares de datos, cada par de datos corresponde a la medida de la base y la
altura de un triángulo. El programa deberá informar:
a) De cada triángulo la medida de su base, su altura y su superficie.
b) La cantidad de triángulos cuya superficie es mayor a 12. Ver ejercicio triángulo
•Desarrollar un programa que solicite la carga de 10 números e imprima la suma de los últimos 5 valores
ingresados. Ver ejercicio suma últimos 5
•Desarrollar un programa que muestre la tabla de multiplicar del 5 (del 5 al 50) Ver ejercicio tabla 3
•Confeccionar un programa que permita ingresar un valor del 1 al 10 y nos muestre la tabla de multiplicar del
mismo (los primeros 12 términos)
Ejemplo: Si ingreso 3 deberá aparecer en pantalla los valores 3, 6, 9, hasta el 36 Ver ejercicio tabla de multiplicar
•Realizar un programa que lea los lados de n triángulos, e informar:
a) De cada uno de ellos, qué tipo de triángulo es: equilátero (tres lados iguales), isósceles (dos lados iguales), o
escaleno (ningún lado igual)
b) Cantidad de triángulos de cada tipo. Ver ejercicio tipo de triángulo
1. Escribir un programa que pida ingresar coordenadas (x,y) que representan puntos en el plano.
Informar cuántos puntos se han ingresado en el primer, segundo, tercer y cuarto cuadrante. Al comenzar el
programa se pide que se ingrese la cantidad de puntos a procesar.
2. Se realiza la carga de 10 valores enteros por teclado. Se desea conocer:
a) La cantidad de valores ingresados negativos.
b) La cantidad de valores ingresados positivos.
c) La cantidad de múltiplos de 15.
d) El valor acumulado de los números ingresados que son pares.
3. Se cuenta con la siguiente información:
Las edades de 5 estudiantes del turno mañana.
Las edades de 6 estudiantes del turno tarde.
Las edades de 11 estudiantes del turno noche.
Las edades de cada estudiante deben ingresarse por teclado.
a) Obtener el promedio de las edades de cada turno (tres promedios)
b) Imprimir dichos promedios (promedio de cada turno)
c) Mostrar por pantalla un mensaje que indique cual de los tres turnos tiene un promedio de edades mayor.
ejercicio1.py
cant1=0
cant2=0
cant3=0
cant4=0
n=int(input("Cantidad de puntos:"))
for f in range(n):
x=int(input("Ingrese coordenada x:"))
y=int(input("Ingrese coordenada y:"))
if x>0 and y>0:
cant1=cant1+1
else:
if x<0 and y>0:
cant2=cant2+1
else:
if x<0 and y<0:
cant3=cant3+1
else:
if x>0 and y<0:
cant4=cant4+1
print("Cantidad de puntos en el primer cuadrante:")
print(cant1)
print("Cantidad de puntos en el segundo cuadrante:")
print(cant2)
print("Cantidad de puntos en el tercer cuadrante:")
print(cant3)
print("Cantidad de puntos en el cuarto cuadrante:")
print(cant4)
ejercicio2.py
negativos=0
positivos=0
mult15=0
sumapares=0
for f in range(10):
valor=int(input("Ingrese valor:"))
if valor<0:
negativos=negativos+1
else:
if valor>0:
positivos=positivos+1
if valor%15==0:
mult15=mult15+1
if valor%2==0:
sumapares=sumapares+valor
print("Cantidad de valores negativos:")
print(negativos)
print("Cantidad de valores positivos:")
print(positivos)
print("Cantidad de valores múltiplos de 15:")
print(mult15)
print("Suma de los valores pares:")
print(sumapares)
ejercicio3.py
suma1=0
suma2=0
suma3=0
for f in range(5):
edad=int(input("Ingrese edad:"))
suma1=suma1+edad
pro1=suma1/5
print("Promedio de edades del turno mañana:")
print(pro1)
for f in range(6):
edad=int(input("Ingrese edad:"))
suma2=suma2+edad
pro2=suma2/6
print("Promedio de edades del turno tarde:")
print(pro2)
for f in range(11):
edad=int(input("Ingrese edad:"))
suma3=suma3+edad
pro3=suma3/11
print("Promedio de edades del turno noche:")
print(pro3)
if pro1<pro2 and pro1<pro3:
print("El turno mañana tiene un promedio menor de
edades.")
else:
if pro2<pro3:
print("El turno tarde tiene un promedio menor de
edades.")
else:
print("El turno noche tiene un promedio menor de
edades.")
Problema 1:
Mostrar la tabla de multiplicar del 5 empleando primero el while y seguidamente de nuevo empleando el for.
Programa: multiplicar.py (Practicando comentarios de una línea y de muchas líneas)
"""
Mostrar la tabla de 5 con las estructuras repetitivas:
while
y
for
"""
#utilizando el while
print("Tabla del 5 empleando el while")
x=5
while x<=50:
print(x)
x=x+5
#utilizando el for
print("Tabla del 5 empleando el for")
for x in range(5,51,5):
print(x)
Tercer encuentro
¿Dónde quedó el do-while?
Una de las estructuras de control de ejecución que no está presente en el lenguaje de programación Python es el ciclo
do-while.
Diagrama de flujo respectivo:
La diferencia central entre el ciclo while y ciclo do-while radica en el número mínimo de veces que se ejecuta el
cuerpo respectivo. En el caso de la instrucción while, el cuerpo se ejecuta un mínimo de cero veces, mientras
que la instrucción do-while el mínimo es una vez. A nivel sintáctico, la diferencia entre ambos ciclos se enfatiza
por la posición en la que debe ir la expresión condicional: en la instrucción while va antes del cuerpo y en la
instrucción do-while va después de éste
Para ayudarles a entender la diferencia entre estos dos tipos de ciclos, tenemos el siguiente ejemplo:
Hay un chico tímido que está con una chica que le gusta y desea darle de besos (todos los que se puedan).
Existen dos alternativas:
•Alternativa 1: El chico le pregunta a la chica si la puede besar. Si la chica dice que no, el chico no le
queda mas que aguantarse. Pero si la chica dice que sí, el chico besa a la chica y luego le vuelve a
preguntar si la puede besar otra vez, repitiendo este proceso hasta que la chica diga que no.
•Alternativa 2: El chico besa a la chica. El chico le pregunta a la chica si la puede besar otra vez. Si la
chica dice que sí, el chico besa nuevamente a la chica y luego le vuelve a preguntar si la puede besar una
vez más, repitiendo este proceso hasta que la chica diga que no.
En la alternativa 1, si la chica no quiere besos, entonces el chico nunca la podrá besar. Sin embargo en la alternativa 2,
si la chica no quiere besos, el chico por lo menos le alcanza a robar uno. Por tanto la alternativa 1 es un ejemplo del
ciclo while, mientras que la alternativa 2 es un ejemplo del ciclo do-while.
sentencia switch-case
En Python no existe la estructura de control switch porque sus desarrolladores no se pusieron de acuerdo y no
llegaron a una solución satisfactoria para su implementación. Entre los motivos principales destaco, por un
lado, la sintaxis, pues no les convencía ninguna propuesta, y por otro, la poca voluntad o disposición general
para hacerlo.
Switch con sentencias if elif
Tal vez esta sea la solución preferida por muchos. Ten en cuenta que esta solución implica que todas las ramas son
excluyentes entre sí, es decir, solo se puede ejecutar una. Veamos un ejemplo
dia = 4
if dia == 1:
print('lunes')
elif dia == 2:
print('martes')
elif dia == 3:
print('miércoles')
elif dia == 4:
print('jueves')
elif dia == 5:
print('viernes')
elif dia == 6:
print('sábado')
elif dia == 7:
print('domingo')
else:
print('error')
Crear calculadora en Python
print("
Calculadora que ejecuta las cuatro operaciones
básicas")
print("
Suma de dos valores")
num1=int(input("Ingrese primer valor:"))
num2=int(input("Ingrese segundo valor:"))
suma=num1+num2
print("La suma de los dos valores es: ")
print(suma)
print("
Resta de dos valores")
num1=int(input("Ingrese primer valor:"))
num2=int(input("Ingrese segundo valor:"))
resta=num1-num2
print("La resta de los dos valores es: ")
print(resta)
print("
Multiplicación de dos valores")
num1=int(input("Ingrese primer valor:"))
num2=int(input("Ingrese segundo valor:"))
mult=num1*num2
print("La multiplicación de los dos valores es: ")
print(mult)
print("
División de dos valores")
num1=int(input("Ingrese primer valor:"))
num2=int(input("Ingrese segundo valor:"))
div=num1/num2
print("La división de los dos valores es: ")
print(div)
•Ver ejercicio calculadora (con menú)
Igual resultado obtenemos si utilizamos la comilla simple:
#definición e inicio de una cadena de caracteres
dia='lunes'
Para la carga por teclado de una cadena de caracteres utilizamos la función input que retorna una cadena de caracteres:
nombre=input("ingrese su nombre:")
Problema 1:
Realizar la carga por teclado del nombre, edad y altura de dos personas. Mostrar por pantalla el nombre de la
persona con mayor altura.
Programa: datos.py
print("Datos de la primer persona")
nombre1=input("Ingrese nombre:")
Es importante notar que cuando cargamos un entero el dato
edad1=int(input("Ingrese la edad:"))
devuelto por la función input se lo pasamos a la función int que
altura1=float(input("Ingrese la altura Ej 1.75:"))
tiene por objetivo convertirlo a entero:
print("Datos de la segunda persona")
edad1=int(input("Ingrese la edad:"))
nombre2=input("Ingrese nombre:")
Cuando cargamos un valor con decimal el dato devuelto por la
edad2=int(input("Ingrese la edad:"))
función input se lo pasamos a la función float que tiene por
altura2=float(input("Ingrese la altura Ej 1.75:"))
objetivo convertirlo a float:
print("La persona mas alta es:")
altura1=float(input("Ingrese la altura Ej 1.75:"))
if altura1>altura2:
Finalmente cuando cargamos una cadena de caracteres como
print(nombre1)
es en este caso el nombre de una persona la función input
else:
retorna directamente una cadena de caracteres.
print(nombre2)
nombre1=input("Ingrese nombre:")
Funciones en python
Una función es un conjunto de líneas de código que realizan una tarea específica y pueden
tomar Argumentos para diferentes Parámetros que modifiquen su funcionamiento y los datos de
salida. Una función nos permite implementar operaciones que son frecuentemente utilizadas en un
programa y así reducir la cantidad de código.
Toda función recibe parámetros ya sea que se los indiquemos nosotros o por defecto, a la hora de llamar a
esa función se le brindan los argumentos que son los datos que la función utilizará como valor del parámetro.
Podemos hacer referencia a una calculadora, tu puedes ingresar dos números (Parámetros) por ej: 10 y
30 (Argumentos). ¿Pero qué operación quieres realizar con estos números? ¿Sumarlos, restarlos, dividirlos o
multiplicarlos?, en este caso según la operación que elijas obtendrás diferentes resultados. Podemos ver a los
números (10 y 30) como Argumentos para los Parámetros de la función, estos serán los “datos de
entrada“, a la operación SUMA como una “función” y al resultado como un “dato de salida“.
Parámetros –>
Operación –>
Datos de Salida
Argumentos(Datos de entrada) –
>
Función –>
Resultado
10, 30
Suma
40
10, 30
Resta
-20
10, 30
Multiplicación
300
10, 30
División
0,333..
Declaración de una función
Por ejemplo vamos a declarar la función suma:
def Suma(parametro1, parametro2):
Resultado = parametro1 + parametro2
Llamada de una función en python
Suma(argumento1, argumento2)
#En este caso podria ser: Suma(10, 30)
Pero si ahora yo quisiera sumar 2 y 5 lo único que tengo que hacer es cambiar los “Argumentos” y
cambiarían los resultados. No es necesario cambiar nada en la función!. Por eso las funciones en
python nos ahorran escribir mucho código, solo necesitamos definir una función y enviando
diferentes argumentos a sus parámetros obtendremos diferentes resultados.
Tipos de funciones en python
Hay dos tipos de funciones, las que podemos crear nosotros y aquellas que ya
vienen predefinidas por el lenguaje. Hay muchas funciones que podemos “Llamar” y
utilizarlas sin nosotros declararlas (crearlas).
Primeramente nos vamos a enfocar en las predefinidas por el lenguaje que son funciones
que ya vienen declaradas para facilitarnos las cosas y poder empezar a programar rápidamente.
Luego aprenderemos a crear las nuestras propias.
Sintaxis de la Función Print
Una de las primeras funciones que debemos aprender es la función Print, que significa “Imprimir”
en inglés. Esta función lo que hace sencillamente es imprimir en pantalla lo que nosotros le
indiquemos como Argumento!!
Ejecutando este código estamos
invocando la función predefinida
Print y nos debería mostrar en
pantalla “Hola esto es una cadena
de texto”. Puesto que la función
toma como argumento para
parámetro el texto que está
entre comillas.
Evitar los errores de sintaxis
•El texto siempre, siempre! debe estar entre comillas porque sino se interpretara a las
palabras como algún objeto que por supuesto no existe!! y nos dará un Error de
sintaxis!
•Siempre respeta la Sintaxis de la llamada de las funciones en python colocando luego de
ella los paréntesis, aunque no le indiques ningún Argumento debe llevar los paréntesis
que serán los que indiquen que es una función!. Por ejemplo: print() , esto no imprimirá
nada, pero no nos dará ningún error.
Invocar una función
Función(Argumentos)
Función seguida de paréntesis y dentro de los paréntesis van los Argumentos para los parámetros!
Sintaxis
•Recuerda que el texto siempre se encuentra entre comillas simples, dobles o triples!
•Las comillas deben ir dentro del paréntesis porque son el parámetro de la función print
– ¿Pero cuando sabemos que comillas utilizar? ¿y si quiero incluir comillas en mi texto?
Podremos anidar comillas dentro de otras! Supongamos que yo quiero imprimir el texto :
Hola “carambolas” para esto debes emplear comillas simples, ejemplo:
print ('Hola "carambolas"')
Funciones predefinidas en Python
Funciones numéricas en python
Funciones de cadenas en python
Función
Utilidad
Ejemplo
Resultado
print()
Imprime en pantalla el
argumento.
print (“Hola”)
“Hola”
len()
Determina la longitud en
caracteres de una cadena.
len(“Hola Python”)
11
join()
Convierte en cadena
utilizando una separación
Lista = [‘Python’, ‘es’]
‘-‘.join(Lista)
split()
Convierte una cadena con
un separador en una lista
a = (“hola esto sera una
lista”)
Lista2 = a.split()
print (Lista2)
Reemplaza una cadena
por otra
texto = “Manuel es mi
amigo”
print (texto.replace (‘es’,
‘era’))
replace()
Función
Utilidad
Ejemplo
Resultado
range()
Crea un rango de
números
x = range (5)
print (list(x))
[0, 1, 2, 3, 4]
str()
Convierte un valor
numérico a texto
str(22)
’22’
‘Python-es’
int()
Convierte a valor
entero
int(’22’)
22
[‘hola’, ‘esto’, ‘sera’, ‘una’,
‘lista’]
float()
Convierte un valor a
decimal
float(‘2.22’)
2.22
max()
Determina el máximo
entre un grupo de
números
x = [0, 1, 2]
print (max(x))
2
min()
Determina el mínimo
entre un grupo de
números
x = [0, 1, 2]
print (min(x))
0
sum()
Suma el total de una
lista de números
x = [0, 1, 2]
print (sum(x))
3
Manuel era mi amigo
upper()
Convierte una cadena en
Mayúsculas
texto = “Manuel es mi
amigo”
texto.upper()
‘MANUEL ES MI AMIGO’
lower()
Convierte una cadena en
Minúsculas
texto = “MaNueL eS mI
AmIgO”
texto.lower()
‘manuel es mi amigo’
Otras funciones útiles en python
Función
Utilidad
Ejemplo
Resultado
list()
Crea una lista a partir de un elemento
x = range (5)
print (list(x))
[0, 1, 2, 3, 4]
tuple()
Crea o convierte en una tupla
print(tuple(x))
(0, 1, 2, 3, 4)
open()
Abre, crea, edita un elemento (archivo)
with open(“Ejercicios/Ejercicio.py”, “w”) as variables:
variables.writelines(“Eje”)
Crea el archivo “Ejercicio.py”
con el contenido “Eje”
ord()
Devuelve el valor ASCII de una cadena o carácter.
print(ord(‘A’))
65
round()
Redondea después de la coma de un decimal
print (round(12.723))
13
type()
Devuelve el tipo de un elemento
type(x)
<class ‘range’>
input()
Permite la entrada de datos al usuario en Python 3
y = int(input(“Ingrese el número”))
print (y)
3
3
Estas son solo algunas funciones predefinidas de Python que yo considero por ahora las más
importantes, pero probablemente encuentres algunas más. Puedes ver en la tabla los ejemplos de
su utilidad y los beneficios que presentan a la hora de ahorrarnos código.
Como crear tus propias funciones
En python para crear una función recurrimos a la instrucción def y seguido el nombre que le
queramos dar a la función siempre y cuando lo hagamos utilizando la sintaxis correcta al igual que
cuando creamos una variable! y continuamos con paréntesis y finalizamos con dos puntos de la
siguiente manera:
De esta manera creamos la función “sumar” y debajo de esta colocamos
def sumar(a, b):
identado el código con el que opera la misma.
x=a+b
print (("Resultado"), (x))
Llamar nuestras funciones
Ahora si llamamos la función lo hacemos de la siguiente
manera:
sumar(2, 3)
Sintaxis de una función
Donde “2” y “3” son los
argumentos para los parámetros
“a” y “b” que establecimos al
crear nuestra función. Esta función
debe ser declarada al inicio de
nuestro código fuente, es decir,
debemos llamarla debajo de donde la
creamos. Nunca podemos llamar una
función que no fue creada
anteriormente.
Funciones en python: ejemplo de la calculadora
Como hemos dicho anteriormente las funciones nos servirán para reutilizar código de esta
manera creamos una función y podemos utilizarla cada vez que la necesitemos cambiando los
argumentos para obtener un resultado diferente. O bien utilizamos las funciones internas si estas
aplican a lo que queremos realizar.
Creamos cuatro funciones
correspondientes al cálculo que
habrá disponible (pero aun no
las llamamos). Habiendo creado
las funciones pasamos a la
parte dos.
Creamos un bucle (que se repite
para no dejar continuar al usuario
hasta que ingrese los números con
lo que va a trabajar nuestra
calculadora, los cuales se almacenan
en variables). El try/except se utiliza
para que si surgiera un error no
finalizara el programa y nos
mostrara un “Error” personalizado
(Todo esto lo veremos más adelante
pero al menos ya puedes
comprender el funcionamiento del
código en su totalidad).
Una vez que presentamos las
entradas también le presentamos al
usuario la elección de 4 opciones
correspondientes al cálculo a
realizar el cual se almacena en la
variable op.
Determinamos el número
almacenado en la
variable op mediante un If/elif y
según sea el número ejecutamos la
llamada a la función
correspondiente al cálculo que
quiere realizar.
Espero que hayas comprendido el
funcionamiento de este código, que
es muy sencillo a decir verdad.. Si
aún no logras comprender el
funcionamiento no te frustres, que
luego los veremos nuevamente
aplicando funciones más
detenidamente.
Descargar