Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Estructura de datos
Estructuras de control
Listas
1.1 INTRODUCCIÓN – LENGUAJE PYTHON
A partir de ahora, toda notación de este apunte estará relacionado al lenguaje Python.
Ejemplo: miprimer_programa.py
1.2 Variables
Las variables sirven para representar y manejar datos. Es un espacio de memoria que va a
contener un dato. Todo dato que vaya a ser introducido a la computadora y todo dato que
vaya ser generado o calculado a partir de otros datos para obtener algún resultado tienen
que identificarse y manejarse en forma de variable.
1
horasTrab
• Tipo de datos: Toda variable debe estar asociada a un tipo de datos.
1.3 Constantes
Cadena de Caracteres: “Tornillo X25 ¾”, “Ayacucho: “Tornillo X25 ¾”, “Ayacucho #365”
Los tipos de datos más comunes son los numéricos (entero –integer- y real –double-),
cadena de caracteres (alfabéticos o alfanuméricos - string), carácter y boolean, cada uno
de los cuales puede manejarse como una constante o como una variable. En adelante
manejaremos la siguiente notación para tipos de datos: numéricos (entero/real), cadena,
carácter, date y boolean.
2
1.5 Operaciones primitivas elementales
Las operaciones primitivas elementales son las acciones básicas que la computadora
puede ejecutar.
1-5-1 Declarar
Es una acción que se considera como no ejecutable, ya que mediante ésta se declara o
define el entorno en el que se ejecutará el algoritmo (programa). Se declaran variables,
constantes, tipos, objetos, etc.
NOMCONSTANTE = Valor
En donde:
3
Tipo de dato En Python (contrariamente a lo que ocurre en muchos
lenguajes), las variables se crean cuando se definen por primera
vez, es decir cuando se le asigna un valor esa vez.
Ejemplo:
Variables
NombreEmp = “Juan Alfredo Perez”
HorasTrab = 20
CuotaHora = 50,50
Sueldo = 20500,75
Esta operación nos permite introducir los datos a la computadora, es decir, introducir
materia prima para el proceso. El formato es:
En donde:
Ejemplo:
Para la situación de pago de sueldos que venimos siguiendo, se deben leer, el nombre del
empleado, el número de horas trabajadas y la cuota por hora.
Esta acción espera que se tecleen los datos correspondientes, los cuales se almacenarán
en las variables especificadas. En virtud de que los nombres de las variables son
nemónicos con respecto a los datos que representan, se facilita la comprensión de la
acción.
4
1-5-3 Operaciones aritméticas elementales
Estas operaciones permiten modificar la apariencia de los datos para generar información
desde el punto de vista aritmético.
Formato:
En donde:
Expresión: es un valor constante, una variable, una expresión algebraica o fórmula (para
calcular un valor), el cual se le asigna a la variable que está a la izquierda del símbolo =
Ejemplo:
Expresión Significado
a=1 a toma el valor 1
b=a+1 b toma el resultado de 2
b=b–1 b toma el resultado de b – 1
y=5/2 y toma el valor de 2.5 División Real (con decimales)
z = 5 // 2 z toma el valor de 2. División entera (sin decimales)
5
Funciones matemáticas
Para el uso de algunas funciones matemáticas en Python, en la cabecera (a los efectos de
prolijidad y hacerlo una sola vez) se importa el módulo math
Formato:
impor math
Función: Coseno
x = math.radians (45)
math.cos(x)
X el parámetro que indica el valor al que se le obtiene el coseno. Debe darse en radianes y
debe ser de tipo real. El tipo de dato del resultado que devuelve es real.
v = math.sqrt (x)
Puede ser de tipo entero o real. El tipo de dato del resultado es real.
6
Exponente es un parámetro que indica la potencia a la que se le elevará la base. El tipo de
dato puede ser entero o real.
Mediante la escritura damos salida a los datos de la computadora hacia un medio periférico
como por ejemplo una pantalla de video, impresora, disco u otro.
Formato:
En donde:
Son los nombres de las variables que contienen los datos que serán impresos
Ejemplo:
7
1.6 Estructuras de control
Son las formas lógicas de cómo trabaja internamente la computadora, y es mediante éstas
que se dirige su funcionamiento, es decir, le da orden lógico a las operaciones primitivas
elementales que actúan sobre los datos. Las estructuras de control son la secuenciación,
la selección o condicional: simple (if-then), doble (if-then-else) y múltiple o anidada (elif)- y
la repetición o cíclica: while, for.
1-6-5 Secuenciación
Def principal ()
1. acción uno
2. acción dos
3. acción tres
4. acción cuatro
principal ()
a) Definir el problema
b) Analizar el problema
Información por producir: Nombre, sueldo.
Datos disponibles: Nombre, Número de horas trabajadas y Cuota por hora.
Proceso por seguir: Sueldo = Número de horas trabajadas X Cuota por hora.
c) Diseñar el programa
Se diseña la estructura de la solución, elaborando el algoritmo de acuerdo con los
lineamientos siguientes que se detallan a continuación.
8
a) Encabezado
Todo algoritmo debe tener un encabezado como identificación, comenzando por la
palabra # Algoritmo, seguida por una breve explicación de lo que hace. Para el
problema que nos ocupa puede ser:
# Algoritmo CALCULA SUELDO DE UN EMPLEADO
El símbolo #, nos sirve para comentar la línea (ya sea en el encabezado, o entre
líneas de código del programa)
b) Clases
Un algoritmo está formado por un conjunto de una o más clases. Cada clase está
formada por un conjunto de uno o más métodos y en todo algoritmo debe haber un
método principal, que es donde inicia su funcionamiento. Con los métodos se
implementan las funciones que hace al algoritmo. Ejemplo
Def principal()
Acción 1
Acción 2
Acción 3
Acción 4
Acción 5
Principal ()
El algoritmo tiene un programa clase que inicia con Clase main.py. La clase tiene un método,
que es el método principal, el cual contiene las acciones que resuelven el problema y
comenzando con una definición del mismo Def principal() y al final una llamada del método
principal().
9
Hacer cálculos: El siguiente punto es procesar la entrada para producir la salida
mediante la ejecución de cálculos basados en expresiones aritméticas. En ejemplo
esta acción se expresa así:
1. def principal ()
a. print (“Ingrese nombre del empleado, número de horas trabajadas, cuota
por hora”)
b. nombreEmp = input()
horasTrab = int(input())
cuotaHora = float(input())
c. sueldo = horasTrab * cuotaHora
d. print (“Sueldo correspondiente a ”, nombreEmp, “es de ”, sueldo)
principal()
Fin
La Clase Main.py tiene un solo método: el método principal, el cual tiene las siguientes
acciones:
a. Se solicitan los datos: nombre del empleado, número de horas trabajadas y cuota
por hora. Esto significa que en la pantalla se imprime lo siguiente:
b. Se leen datos (input): nombre del empleado, número de horas trabajadas y cuota
por hora en las variables nombreEmp, horasTrab y cuotaHora. Esta acción espera a
que se teclee el dato correspondiente a cada petición y los datos tecleados se
guardan en las variables. Esquemáticamente que así:
sueldo 10000
Ejemplo:
Elaborar un algoritmo que permita leer el tamaño de un ángulo en radianes, luego calcule
e imprima el coseno del mismo.
1. Def principal ()
a. import math
b. print (“Ingrese tamaño de ángulo en radianes”)
c. radianes = float(input())
d. x=math.radians(x)
e. print (x)
principal ()
Explicación
11
son excluyentes, es decir, que solo tiene que ejecutarse una o la otra, pero no ambas en
forma simultanea; también puede presentarse el caso que se tengan varias opciones de
acción. En estos casos es necesario utilizar la estructura de control de selección. En toda
estructura de selección, intervienen las distintas formas de expresiones lógicas.
Formato Simple
if condición:
acción
Formato Doble
if condición:
acción
else:
acción
if condición:
acción
elif condición:
acción
elif condición:
acción
Expresiones lógicas
Las expresiones lógicas sirven para plantear condiciones mediante la comparación de dos
o más operandos que dan como resultado un valor booleano verdadero o falso, es decir,
se cumple o no se cumple la condición. Se pueden clasificar en simples o complejas.
12
Expresión lógica simple
Operando1 Operador relacional Operando2
En donde:
Operando1, Operando2 son dos variables o valores constantes de algún tipo de datos:
entero, real, cadena, etc. En una expresión, ambos operandos deben ser del mismo tipo de
datos.
Ejemplo
x == 1 ¿x es igual a 1?
¿n es no igual a z? o ¿n es distinto de
n != z
z?
n >= 5 ¿n es mayor o igual a 5?
z <= 5 ¿z es menor o igual a 5?
y == z ¿y es igual a z?
Expresión lógica compleja
Operando booleano1 Operador lógico Operando booleano2
En donde:
Cualquiera de los siguientes: AND, OR, NOT relaciona dos operadores booleanos.
13
Operador AND
Una escuela aplica dos exámenes a sus aspirantes, por lo que cada uno de ellos obtiene
dos calificaciones como c1 y c2. El aspirante que obtenga calificaciones de 80 o más en
ambos exámenes es aceptado; en caso contrario es rechazado.
Operador OR
Ejemplo:
Una escuela aplica dos exámenes a sus aspirantes, por lo que cada uno de ellos obtiene
dos calificaciones como c1 y c2. El aspirante que obtenga calificaciones, mayor a 90 en
cualquiera de los dos exámenes es aceptado; en caso contrario es rechazado.
Operador NOT
14
Ejemplo:
Un alumno tiene una calificación final (calFin) y se desea imprimir el resultado de aprobado
si la calificación es igual o mayor a 70; o bien, reprobado en caso contrario.
Ejemplos de algoritmos con estructura de secuencia más estructura de selección (if, elif).
# Alumno: XXXXXXX
# Carrera: VVVVVVVV
def principal():
print ("Calculo de numero mayor")
num1 = int(input(“Ingrese un número entero ”))
num2 = int(input(“Ingrese otro número entero ”))
if num1 > num2:
print ("el numero mayor es ", num1)
else:
print ("el numero mayor es ", num2)
principal()
# Alumno: XXXXXXX
# Carrera: VVVVVVVV
15
def principal():
print ("Calificación Alumno")
num1 = float(input(“Ingrese valor ”))
if not (num1 >= 80):
print ("Alumno Rechazado")
else:
print ("Alumno Aceptado")
principal()
# Alumno: XXXXXXX
# Carrera: VVVVVVVV
def principal():
print ("Ingrese primera calificación ")
num1 = float(input())
print ("Ingrese segunda calificación ")
num2 = float(input())
if (num1 >= 80) or (num2 >= 80) :
print ("Alumno Aceptado")
else:
print ("Alumno Rechazado")
principal()
# Alumno: XXXXXXX
# Carrera: VVVVVVVV
def principal():
print ("Ingrese primera calificación")
num1 = float(input())
if num1 != 10:
print ("Alumno No Sobresaliente")
else:
print ("Alumno Sobresaliente")
principal()
16
# Alumno: XXXXXXX
# Carrera: VVVVVVVV
def principal():
import math
print ("Ingrese promedio del alumno")
num1 = int(input())
math.cos(num1)
print (num1)
if num1 < 5:
print ("Alumno Libre")
elif (num1 < 7):
print ("Alumno Regular")
else:
print ("Alumno Promocional")
principal()
def principal():
num1 = float(input("Ingrese Promedio "))
if 0<num1<5:
print ("Alumno Libre")
if 4<num1<7:
print ("Alumno Regular")
if num1 >6:
print ("Alumno Promocional")
principal()
# Alumno: XXXXXXX
# Carrera: VVVVVVVV
def principal():
print ("Calculo de dos numeros ingresado")
num1 = float(input("Ingrese primer numero "))
num2 = float(input("Ingrese segundo numero "))
print ("Operaciones optativas: S=Suma -R=Resta - M=Multiplicar")
operacion=input("Escriba Letra S, R o M segun la opcion elegida ")
17
if operacion in ("S"): #la variable operacion recorre la cadena de datos de la
funcion input anterior
resultado = num1 + num2
print ("Suma Igual a :", resultado)
elif operacion in ("R"):
resultado = num1 - num2
print ("Resta Igual a :", resultado)
elif operacion in ("M"):
resultado = num1 * num2
print ("Producto Igual a :", resultado)
else:
print ("Operacion erronea")
principal()
1.7 Listas
Hasta ahora hemos visto variables que almacenaban un único valor pero, en python
(como en otros lenguajes) existen un tipo de variables que permiten almacenar una
colección de datos y acceder después por medio de un subíndice (ubicación del elemento
en la variable). Estas variables se llaman listas (vectores).
Llamamos colección a una serie de datos almacenados en una sola variable. Es como una
subdivisión de la estructura de una variable en otras.
Ejemplo: se tiene un número de unidades producidas por un obrero en cada uno de los 7
días de alguna semana. Elaborar un algoritmo que permita leer la producción de cada uno
de esos días, sin que se pierda la producción de ninguno de ellos; esto es, se lee la
producción del primer día, se lee la producción del segundo día, sin que se pierda la del
primero y así sucesivamente, de modo que al leer la producción de los 7 días no se pierda
la de ninguno de los 6 días anteriores.
a) Una opción sería usar 7 variables, una para cada día, de la siguiente manera:
producción1, producción2, producciòn3, …, producción7
b) Otra opción es usar una lista con una dimensión de 7 elementos, como se muestra
en la siguiente figura:
producción
18
0 1 2 3 4 5 6
Explicación:
En la figura tenemos una lista llamado producción con 7 elementos, el primero de ellos se
identifica con la posición 0, el segundo tiene la posición 1, el tercero la posición 2 y así
sucesivamente hasta el elemento 6 que tiene la posición 7. Así, la producción del día 1 se
almacena en el elemento número 0, la producción del día 2 se almacena en el elemento 1,
y así sucesivamente hasta la producción del día 7, que se almacena en la posición 6.
Cuando se define una lista, es necesario hacerlo como una variable. En la parte de
declaración de variables se utiliza el siguiente formato:
En donde:
dato Es el tipo de dato que tendrá el conjunto de elementos de la lista que se está
definiendo. Puede ser Entero, Float, Cadena, etc., o una mezcla de todos ellos. Python
acepta diferentes tipos de datos en la definición de una lista.
Si aplicamos los conceptos anteriores para definir una lista que nos sirva para
almacenar.
Ejemplo 1
Explicación:
Ejemplo 2
19
Explicación:
O bien, puede ser una expresión algebraica que dé un resultado de tipo entero, como:
produccion[i + 3]
produccion[i * 4 – j]
20
#saber la position de un elemento en la lista
print(milista.index("bb"))
print(milista[1])
#saber si un elemento se encuentra en una lista thru o false
print("bbv" in milista)
#eliminar elementos
milista.remove("bb")
print(milista)
#elimina el ultimo elemento de una lista
milista.pop()
print(milista)
#multiplica por 3 una lista
milista2=[1, 2, 3] * 3
print(milista2)
#concatena milista y milista2 en milista3
milista3=milista+milista2
print(milista3)
principal()
21