Está en la página 1de 22

Estructura de datos, operaciones primitivas, estructuras de

control -secuencial, condicional y cíclica- y listas

OBJETIVOS DEL CAPITULO


Los elementos básicos para solucionar
problemas son las estructuras de datos, las
operaciones primitivas elementales y las
estructuras de control -secuencia,
selección/condición y cíclica/repetición)

A partir de ahora en adelante, se adoptará


la notación en lenguaje PYTHON para
representar las soluciones de los distintos
problemas planteados.

Estructura de datos

Las estructuras de variables,


constantes, tipos de datos, operaciones
primitivas.

Estructuras de control

Secuenciación, condicional y cíclica

Listas
1.1 INTRODUCCIÓN – LENGUAJE PYTHON

A partir de ahora, toda notación de este apunte estará relacionado al lenguaje Python.

Python es un lenguaje de programación interpretado cuya filosofía hace hincapié en la


legibilidad de su código (https://es.wikipedia.org/wiki/Python).

Porque lo adoptamos?. Consideramos que es un lenguaje altamente sencillo a la hora de


codificar los algoritmos, con una estructura de sintaxis que se asemeja mucho al
pseudocódigo y que no representa mayores inconvenientes de forma para su
implementación. Además es multiplataforma, de tipado dinámico y orientado a objetos.

Los programas realizados en Python, terminan con una extensión .py.

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.

Una variable tiene las siguientes características:

• Nombre: Es el identificador de la variable que servirá para referenciarla. Las reglas


para asignar nombres de variables y otros identificadores como métodos, funciones,
clases, objetos, etc. Son:
o Se pueden utilizar combinaciones de letras mayúsculas y minúsculas; dígitos y
el símbolo de subrayado
o El nombre debe iniciar con una letra
o Es conveniente que la longitud no supere los 20 caracteres
o No debe ser palabra reservada (como if, then, else, for, do, while, etc.)
• Contenido: Se puede considerar que toda variable tiene una “casilla” (espacio de
memoria) donde se almacena el valor que toma en cada ocasión. Esto es similar a
tener un casillero donde las casillas sirven para guardar objetos y tienen su
respectiva identificación que permite referenciarlas. Por ejemplo:

Nombre de Variable Casilla


nombreEmp
cuotaHora

1
horasTrab
• Tipo de datos: Toda variable debe estar asociada a un tipo de datos.

1.3 Constantes

Las constantes son valores específicos, y en consecuencia INVARIABLES.

Por ejemplo constantes de tipo:

Entero: 5, 10, -56

Real: 3.1416, 40.5, -1.5

Carácter: ‘s’, ‘n’, ‘N’

Cadena de Caracteres: “Tornillo X25 ¾”, “Ayacucho: “Tornillo X25 ¾”, “Ayacucho #365”

Booleam: True, False.

1.4 Tipos de datos

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.

Tabla 1 Tipos de datos

Tipo de dato Tamaño Descripción


Boolean 1 byte Valores Si/No o Verdadero / Falso
Date 8 byte Una fecha entre los años 100 y 9999
Un valor de coma flotante entre -3,402823E38 y -
11,401298E-45 para valores negativos, y desde
Float 4 byte
1,401298E-45 a 3,402823E38 para valores
positivos, y 0
Un valor de coma flotante entre -
1,79769313486232E308 y -4,94065645841247E-
Double 8 byte 324 para valores negativos, y 4,94065645841247E-
324 a 1,79769313486232E308 para valores
positivos y 0
Integer 4 byte Un entero entre -2.147.483.648 y 2.147.483.647
String / cadena 2 byte por carácter Desde 0 a 255 caracteres

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.

a) Constantes: Como ya se explicó, las constantes son valores específicos. Sin


embargo se pueden declarar constantes simbólicas. El formato es:
Constante

NOMCONSTANTE = Valor

En donde:

Constante: Identifica la acción que se va a realizar, o sea la declaración de


constantes.

NomConstante Es el identificador de la constante (optativo)

Valor El valor que se asigna como constante

Ejemplo: las constantes se definen per se, o asignando a una variable

Constantes (asignadas a variables)


PI = 3.14159265
CIEN = 100
COMENTARIO1 = ‘aprobado’

Constantes (definidas per se)


3.14159265
‘aprobado’

b) Variables: Esta acción permite representar en un programa las estructuras de datos


necesarias para abstraer y representar en la computadora la situación real del
problema o de la tarea que se manejará. El formato es:
En donde:
Variables Identifica la acción que se va a realizar, la cual es declaración de
variables.
nomVariable1, nomVariabl2, nomVariableN…… Son los nombres de las variables,
de acuerdo al formato que deben tener.

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:

Para representar la situación de pago de sueldos que ya se ha mencionado,


tendremos que hacer lo siguiente:

Variables
NombreEmp = “Juan Alfredo Perez”
HorasTrab = 20
CuotaHora = 50,50
Sueldo = 20500,75

1-5-2 Lectura de datos (entrada)

Esta operación nos permite introducir los datos a la computadora, es decir, introducir
materia prima para el proceso. El formato es:

nomVariable = tipo de dato (input())

En donde:

nomVariable = es el nombre de la variable

tipo de dato = es el tipo de dato que contendrá la variable. Si no se lo especifica se asume


tipo de dato igual a cadena o string

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.

Leer NombreEmp, HorasTrab, CuotaHora

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.

Operaciones Aritméticas Básicas


Signo Nombre
+ Suma
- Resta
* Multiplicación
/ División Real
// División entera
= Asignación
** Potencia

Formato:

Calcular variable = expresión

En donde:

Variable: es el nombre de la variable en la que se asignará el resultado de la expresión.

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:

sueldo = horasTrab * cuotaHora

Esta acción, calcula horasTrab * cuotaHora y el resultado se coloca en sueldo.

Otros ejemplos (con valores de arrastre)

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

Efecto: Calcula el coseno. En este caso calcula el coseno de un ángulo de 45 grados

Formato: import math

x = math.radians (45)

math.cos(x)

En donde: math.cos es la palabra que identifica a la función.

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.

Función: Raíz cuadrada

Efecto: Calcula la raíz cuadrada

Formato: import math

v = math.sqrt (x)

En donde: math.sqrt es la palabra que identifica a la función.

V es el parámetro que indica el valor al que se le calcula la raíz cuadrada de la variable X.

Puede ser de tipo entero o real. El tipo de dato del resultado es real.

Función: Potencia (otra forma de uso)

Efecto: Calcula la potencia de una base elevado a un exponente

Formato: pow (base, exponente)

En donde: pow es la palabra que identifica a la función.

Base es el parámetro que indica la base.

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.

Ejemplo: y = pow (x, 3) se calcula la potencia de x elevada a la 3, y se le asigna a y.

1-5-4 Escritura de datos (salida)

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.

En nuestros ejemplos usaremos la función print

Formato:

print (nomVariable1, nomVariable2, nomVariableN)

En donde:

print identifica la acción de escritura

nomVariable1, nomVariable2, nomVariableN

Son los nombres de las variables que contienen los datos que serán impresos

Ejemplo:

Print (nombreEmp, sueldo)

Print ( “Nombre = ”, nombreEmp, “Sueldo = ”, sueldo)

En el primer caso se indica que se imprime el nombre y el sueldo. En el segundo ejemplo,


se imprime el letrero “Nombre =, luego el contenido de la variable nombreEmp, luego se
imprime el letrero Sueldo = y por último se imprime el contenido de la variable sueldo.

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

La secuenciación es una estructura que permite controlar la ejecución de un conjunto de


acciones en orden secuencial, esto es, ejecuta la primera acción, luego la que sigue y así
sucesivamente hasta la última, como se muestra a continuación:

Def principal ()
1. acción uno
2. acción dos
3. acción tres
4. acción cuatro
principal ()

Nuestro primer problema

Elaborar un algoritmo para calcular e imprimir el sueldo de un empleado.

Siguiendo el proceso de programación se hace lo siguiente:

a) Definir el problema

Calcular el sueldo de un empleado

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.

Estructura y diseño de un algoritmo

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

c) Leer, calcular e imprimir


El segundo paso y los que le siguen pueden consistir en acciones tales como leer
datos, calcular alguna expresión aritmética e imprimir datos tantas veces como se
requieran y en el orden apropiado para resolver el problema en cuestión.
Lectura de datos. En este punto se empieza a introducir los datos disponibles como
materia prima mediante una operación de lectura precedida por una solicitud de los
datos en nuestro problema esto quedaría así:

Print(“ingrese nombre del empleado, número de horas


trabajadas, cuota por hora”)
nombreEmp = input()
horasTrab = int(input())
cuotaHora = float(input())

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

sueldo = horasTrab * cuotaHora


print (“el sueldo correspospondiente a ”, nombreEmp, “ es de ”, sueldo)

Impresión de datos: el último punto estriba en dar salida a la información


requerida, imprimiendo las variables que la contienen. En el ejemplo se expresa así:

d) Fin método principal, de la clase y el algoritmo

Por último se tiene el fin del método principal.

Ejemplo de un primer algoritmo. El mismo servirá para calcular el sueldo de un empleado


utilizando la estructura de control SECUENCIACION y todos los demás conceptos
explicados hasta ahora.

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:

Teclee nombre del empleado:____


Teclee número de horas trabajadas:_____
Teclee cuota por hora:___

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

nombreEmp Pedro Alonso


10
cuotaHora 250.00
horasTrab 40

c. Se hacen cálculos: el sueldo = horasTrab * cuotaHora. Se multiplican los contenidos


de las variables horasTrab por cuotaHora; es decir, 250 por 40, y el resultado se
coloca en la variable sueldo. Esquemáticamente queda así:

sueldo 10000

d. Se imprimen los datos: nombreEmp y sueldo. Es decir, se imprime lo siguiente:


El contenido de la variable nombreEmp, que es Pedro Alonso y el contenido de la
variable sueldo que es 10000.00.
Fin del Método principal.

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

Método principal, el cual tiene las siguientes acciones:

a. Se declara la sentencia import math (importa el módulo para usos de funciones)


b. Se solicita el tamaño del ángulo en radianes
c. Se lee el dato en radianes
d. Se calcula el coseno (utilizando la función match.radians)
e. Se imprimen el de dato de salida
f. Fin del Método principal

1-6-6 Selección o condicional

La selección es una estructura que permite controlar la ejecución de acciones que


requieren de ciertas condiciones para su realización. De acuerdo con dichas condiciones
se “selecciona” si las acciones se ejecutan o no. En ocasiones se tienen operaciones que

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.

611 Selección simple, doble y anidados (if-else-


elif)
Esta estructura de selección permite controlar la ejecución de acciones cuando se tienen
dos opciones alternativas de acción y, por la naturaleza de éstas, se debe ejecutar una o la
otra, pero no ambas a la vez, es decir, mutuamente excluyentes.

Formato Simple

if condición:
acción

Formato Doble

if condición:
acción
else:
acción

Formato anidado (múltiples opciones)

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.

Operador relacional cualquiera de los siguientes:

Operadores Relacionales Significado

< Menor que


> Mayor que
<= Menor o igual que
>= Mayor o igual que
== Igual o igual que
!= Diferente de o no igual a

Ejemplo

Operador Relacional Significado

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:

Operando booleano1 son expresiones lógicas que proporcionan


Operando booleano2 un valor verdadero (V) o falso (F)
Operador lógico AND, OR, NOT

Cualquiera de los siguientes: AND, OR, NOT relaciona dos operadores booleanos.

13
Operador AND

EXP1 EXP2 (EXP1) AND (EXP2)


V V V
V F F
F V F
F F F

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.

if (c1 >= 80) AND (c2 >= 80):


print (“Aceptado”)
else:
print (“Rechazado”)

Operador OR

EXP1 EXP2 (EXP1) OR (EXP2)


V V V
V F V
F V V
F F F

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.

if (c1 > 90) OR (c2 > 90):


print (“Aceptado”)
else:
print (“Rechazado”)

Operador NOT

EXP NOT (EXP)


V F
F V

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.

if not (calFin >= 70)


print (“Reprobado”)
else:
print (“Aprobado”)

ELIF (If anidados)


Una estructura de selección (if) puede tener anidada a otra y ésta a otra y así
sucesivamente. La sentencia ELIF, significa de lo contrario, si se cumple la expresión
condicional se ejecuta el bloque de sentencias seguidas.

Ejemplos de algoritmos con estructura de secuencia más estructura de selección (if, elif).

# Alumno: XXXXXXX
# Carrera: VVVVVVVV

# Salida: Mostrar el numero mayor


# Entrada: dos numeros enteros
# Supuestos: se supone que se ingresan números enteros y distintos

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

# Salida: Mostrar si el alumno es rechazado o aceptado


# Entrada: una calificacion
# Reglas: se aprueba con nota mayor o igual a 80
# Supuestos: se supone que se ingresa un número decimal

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

# Salida: Mostrar si el alumno es rechazado o aceptado


# Entrada: dos calificaciones
# Reglas: se aprueba con nota mayor o igual a 80 en al menos una de las materias
# Supuestos: se supone que se ingresan números decimales

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

# Salida: Mostrar si el alumno es sobresaliente


# Entrada: una calificacion
# Reglas: nota = 10
# Supuestos: se supone que se ingresa un número decimal

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

# Salida: Mostrar la condición final del alumno


# Entrada: un promedio
# Reglas: libre (promedio < 5), regular (nota >= 5 y < 7) o promocional (nota >= 7)
# Supuestos: se supone que se ingresa un número decimal

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

Otra forma de resolución (Mismo ejercicio anterior)

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

# Salida: Mostrar Resultado de una operación aritmética de dos numeros


# Entrada: dos numeros
# Reglas: S=Suma, R=Resta y M=multiplicación
# Supuestos: se supone que se ingresa dos números decimales

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.

Analógicamente una variable es un cajón dentro de una cajonera. La lista es la cajonera. Y


en dichos cajones es pueden guardar diferentes elementos. En otras palabras, una lista
puede representar diferentes datos.

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:

nombreVariable: [dato1, dato2,….daton]

En donde:

nombreVariable Es el nombre de identificación de la variable

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

produccion=[200, 352, 352, 322, 400, 211, 300]

Explicación:

• producciones el nombre de la variable que se está declarando


• Es una lisya que contiene 7 elementos (del 0 al6)
• Cada elemento de la lista es un dato de tipo entero

Ejemplo 2

produccion=[200, “feriado”, 352, 322, 400, 211, “sin producción”]

19
Explicación:

• produccion es el nombre de la variable que se está declarando


• Es una lista que contiene 7 elementos (del 0 al6)
• En este caso encontramos elementos con datos tipo entero y otros cadena.

Cada elemento individual de una lista se relaciona con el nombre de la variable y un


número que indica la posición que ocupa el elemento dentro de la lista. Dicho número, se
pone entre [] y se llama subíndice o directamente índice. De acuerdo a los ejemplos
anteriores tenemos que:

El elemento 1 se relaciona con produccion [0]

El elemento 2 se relaciona con produccion [1]


……..
……..

El elemento 7 se relaciona con producción [6]

El subíndice puede ser un valor constante de tipo entero como: 0, 1, 2, … ,6.

También puede ser una variable de tipo entero como:


produccion[i]

O bien, puede ser una expresión algebraica que dé un resultado de tipo entero, como:

produccion[i + 3]

produccion[i * 4 – j]

A continuación dejamos un ejemplo de distintos usos de una lista a partir de cómo se le


carga los datos, se borra, se agrega, se inserta y también se genera una tercera lista a
partir de dos.
def principal ():
#cargar una lista
milista=["aa", "bb", "vv", 2, "gg", 0]
print(milista)
#pregunta la existencia de un valor en la lista
if milista[0] == "aa":
print ("existe")
else:
print ("no existe")
#agregar un elemento a una lista
milista.append("hhh")
print(milista)
#insertar un elemento en una posicion de la lista
milista.insert(1, "insert1")
print(milista)
#insertar elementos al final de la lista
milista.extend(["ex1", "ex2", "ex3"])
print(milista)

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

También podría gustarte