Está en la página 1de 2

Universidad Nacional de San Agustín de Arequipa

Escuela Profesional de Ingeniería de Telecomunicaciones

Ingeniero Renzo Bolivar - Docente DAIE

Curso : Computación 2

PRÁCTICA 03
PYTHON - LISTAS, DICCIONARIOS Y FUNCIONES

1.- Objetivos:
1. Construir listas y acceder a los elementos de esas listas.

a. Utilizar métodos para manipular las listas.

b. Realizar travesías de las listas para procesar los elementos de las listas.

1. Construir diccionarios y acceder a las entradas de esos diccionarios.

a. Usar métodos para manipular los diccionarios.

b. Determinar si una lista o un diccionario es una estructura de datos apropiada para una aplicación determinada.

1. Definir buenas practicas para crear funciones en Python con parámetros y valores de retorno.
2. Uso de enntornos de desarrollo "Jupyter Python" y "Spyder".
3. Practica Colaborativa con sincronización con GitLab.

Cita:

"Para aprender, hay que enseñar" - Cicerón

Nota: NO OLVIDAR INICIAR EL TRABAJO COLABORATIVO: en directorio: Practica_3 (con carpetas de Apellidos)

Primero:

JEFE DE PROYECTO: Inicia la practica Sincronizando repositorio local con proyecto GitLab.

(Ver Video: "Trabajo Colaborativo: Inicio Jefe de Proyecto").

Segundo:

COLABORADORES: Los colaboradores Clonan el proyecto de GitLab creado por el Jefe de Proyecto a
su repositorio local.

(Ver Video: "Trabajo Colaborativo: Inicio Colaboradores").

DESARROLLO

2.- Listas

Es una secuencias de valores de datos de cualquier tipo.

Una lista de compras para la tienda de comestibles


Una lista de cosas por hacer
Una lista para un equipo atlético
Una lista de invitados para una boda
Una receta, que es una lista de instrucciones
Un documento de texto, que es una lista de líneas
Los nombres en una guía telefónica

Python sigue una notación especial para representar las listas. Los valores de una lista deben estar encerrados entre corchetes y
separados por comas. Cada uno de los elementos de una lista está ordenado por su posición. Cada elemento de una lista tiene un
índice único que especifica su posición. El índice del primer elemento es 0, y el índice del último elemento es la longitud de la lista
menos 1.

Ingresamos al entorno de desarrollo Jupyter Notebook desde Anaconda Navigator.

Abrimos nuevo archivo Practica_03_listas.ipynb (dentro de nuestra carpeta con nuestro Apellido).

Digitamos lo siguiente.

Trabajando con Listas:

Lista simple de números

In [1]: [1972,1988,1999,2000,2001,2008,2020] 

Out[1]: [1972, 1988, 1999, 2000, 2001, 2008, 2020]

Lista de cadena de texto

In [2]: ["gato", "perro", "caballo" ] 

Out[2]: ['gato', 'perro', 'caballo']

Listas asignadas a una variable

In [3]: tiempo = [1972,1988,1999,2000,2001,2008,2020] 
tiempo 

Out[3]: [1972, 1988, 1999, 2000, 2001, 2008, 2020]

In [4]: num = list(range(1,10)) 
num 

Out[4]: [1, 2, 3, 4, 5, 6, 7, 8, 9]

In [5]: amigos = ["Milagros", "Henry", "Pablo", "Oscar"] 
amigos 

Out[5]: ['Milagros', 'Henry', 'Pablo', 'Oscar']

Indexación de listas

In [6]: amigos[0] 

Out[6]: 'Milagros'

In [7]: amigos[1] 

Out[7]: 'Henry'

In [8]: amigos[­1] 

Out[8]: 'Oscar'

Longitud de listas

In [9]: len(amigos) 

Out[9]: 4

In [10]: len(tiempo) 

Out[10]: 7

In [11]: len(num) 

Out[11]: 9

Concatenación de listas

In [12]: num + amigos 

Out[12]: [1, 2, 3, 4, 5, 6, 7, 8, 9, 'Milagros', 'Henry', 'Pablo', 'Oscar']

In [13]: num * 2 

Out[13]: [1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 2, 3, 4, 5, 6, 7, 8, 9]

In [14]: amigos * 2 

Out[14]: ['Milagros', 'Henry', 'Pablo', 'Oscar', 'Milagros', 'Henry', 'Pablo', 'Oscar']

Recorte de Listas

In [15]: tiempo [2:5] 

Out[15]: [1999, 2000, 2001]

Recorrer una lista

In [16]: for i in [amigos]: 
    print(i) 

['Milagros', 'Henry', 'Pablo', 'Oscar'] 

In [17]: varios = list(range(100,115)) 
print(varios) 

[100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114] 

Adicionar elementos al final de la Lista

In [18]: amigos.append("Mauricio") 
amigos 

Out[18]: ['Milagros', 'Henry', 'Pablo', 'Oscar', 'Mauricio']

Modificar un elemento de la lista

In [19]: amigos[­1] = "Carlos" 
amigos 

Out[19]: ['Milagros', 'Henry', 'Pablo', 'Oscar', 'Carlos']

Multiplicar cada elemento de la lista

In [20]: #creo lista nueva 
seis = [6,6,6,6,6,6] 
print(seis) 
 
#recorro lista multiplicando x 2 
for i in range(0, len(seis)): 
    seis[i]*=2 
print(seis) 

[6, 6, 6, 6, 6, 6] 
[12, 12, 12, 12, 12, 12] 

In [21]: #Agrego elementos a la lista 
seis = seis + [13,14,15] 
print(seis) 
 
##Borrar un elemento de la lista 
del seis[­1] 
print(seis) 
 
del seis[6] 
print(seis) 
 
del seis[­1] 
seis 

[12, 12, 12, 12, 12, 12, 13, 14, 15] 
[12, 12, 12, 12, 12, 12, 13, 14] 
[12, 12, 12, 12, 12, 12, 14] 

Out[21]: [12, 12, 12, 12, 12, 12]

Métodos del objeto Lista

list. append(x) − − list. extend(L) − − list. insert(i, x) − − list. remove(x) − − list. pop([i]) − − list. clear() − − list. index(x) − − list. count(x)

In [22]: #Agrega un ítem al final de la lista 
seis.append(6) 
seis 

Out[22]: [12, 12, 12, 12, 12, 12, 6]

In [23]: #Extiende la lista agregándole todos los ítems de la lista dada 
seis.extend([5,5,3,3,1,1]) 
seis 

Out[23]: [12, 12, 12, 12, 12, 12, 6, 5, 5, 3, 3, 1, 1]

In [24]: #Inserta un ítem en una posición dada. 
seis.insert(1,0) 
seis 

Out[24]: [12, 0, 12, 12, 12, 12, 12, 6, 5, 5, 3, 3, 1, 1]

In [25]: #Quita el primer ítem de la lista cuyo valor sea x es igual a __del lista[i]__ 
seis.remove(12) 
seis 

Out[25]: [0, 12, 12, 12, 12, 12, 6, 5, 5, 3, 3, 1, 1]

In [26]: #Quita el ítem en la posición dada de la lista, y lo devuelve. 
seis.pop(9) 

Out[26]: 3

In [27]: seis 

Out[27]: [0, 12, 12, 12, 12, 12, 6, 5, 5, 3, 1, 1]

In [28]: cinco = seis + [5,5,5] 
cinco 

Out[28]: [0, 12, 12, 12, 12, 12, 6, 5, 5, 3, 1, 1, 5, 5, 5]

In [29]: #Quita todos los elementos de la lista. 
cinco.clear() 
cinco 

Out[29]: []

In [30]: seis 

Out[30]: [0, 12, 12, 12, 12, 12, 6, 5, 5, 3, 1, 1]

In [31]: #Devuelve el índice en la lista del primer ítem cuyo valor sea x. 
seis.index(3) 

Out[31]: 9

In [32]: #Devuelve el número de veces que x aparece en la lista. 
seis.count(12) 

Out[32]: 5

EJEMPLOS:

Ejemplo 1: Crear una lista con las letras de una palabra:

In [33]: # Método tradicional 
palabra = input("Ingrese palabra : ") 
lista = [] 
for letra in palabra: 
    lista.append(letra) 
print(lista) 

Ingrese palabra : misti 
['m', 'i', 's', 't', 'i'] 

In [34]: # Método con comprensión de listas 
palabra = input("Ingrese palabra : ") 
lista = [letra for letra in palabra] 
print(lista) 

Ingrese palabra : chachani 
['c', 'h', 'a', 'c', 'h', 'a', 'n', 'i'] 

Ejemplo 2: Crear una lista con las potencias de 2 de los primeros 10 números:

In [35]: # Método tradicional 
lista = [] 
for numero in range(0,11): 
    lista.append(numero**2) 
print(lista) 

[0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100] 

In [36]: # Método con comprensión de listas 
lista = [numero**2 for numero in  range(0,11)] 
print(lista) 

[0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100] 

In [37]: # Con comprensión de listas 
# usando funciones "math" 
import math 
lista = [int(math.pow(numero,2)) for numero in  range(0,11)] 
print(lista) 

[0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100] 

In [38]: #Lista sin creación de variables: Creando lista con comando map y la funcion lambda. ﴾averiguar como fu
ncionan﴿ 
cuadra2 = list(map(lambda x: x**2, range(11))) 
cuadra2 

Out[38]: [0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

Ejemplo 3: Crear una lista de pares por comparación (dos métodos):

Para la solución uso Tuplas

Nota: una Tupla se crea con parentesis " () " y se diferencia con una lista porque sus valores no varian

In [39]: # Método tradicional 
pares = [] 
for x in [1,2,3]: 
    for y in [3,1,4]: 
        if x != y: 
            pares.append((x,y)) 
             
print(pares) 

[(1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)] 

In [40]: # Con comprensión de listas 
[(x, y) for x in [1,2,3] for y in [3,1,4] if x != y] 

Out[40]: [(1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)]

Ejemplo 4: Crear una lista de pares o Tuplas asi (número, cuadrado de número):

In [41]: # Método comprensión de listas 
[(x, x ** 2) for x in range(6)] 

Out[41]: [(0, 0), (1, 1), (2, 4), (3, 9), (4, 16), (5, 25)]

Ejemplo 5: Crear una lista por teclado:

In [42]: # Método tradicional 
lista = [] 
for a in range(5): 
    elemento = int(input("Dame un Elemento de una lista: ")) 
    lista.append(elemento) 
     
print(lista) 

Dame un Elemento de una lista: 50 
Dame un Elemento de una lista: 40 
Dame un Elemento de una lista: 30 
Dame un Elemento de una lista: 20 
Dame un Elemento de una lista: 10 
[50, 40, 30, 20, 10] 

In [43]: # Método reducido 
listados = [0] * 5 
for a in range(5): 
    listados[a] = int(input("Dame un Elemento de una lista: ")) 
     
print(listados) 

Dame un Elemento de una lista: 100 
Dame un Elemento de una lista: 90 
Dame un Elemento de una lista: 80 
Dame un Elemento de una lista: 70 
Dame un Elemento de una lista: 60 
[100, 90, 80, 70, 60] 

Ejemplo 6: Ordenación de listas : Método Burbuja

In [44]: lista =[15,20,5,1,10] 
for i in range(1, len(lista)): 
    print("Pasada",i) 
    for j in range(0, len(lista)­i): 
        print("  Comparación de lista[{0}] y lista[{1}]".format(j,j+1)) 
        if lista[j] > lista[j+1]: 
            elemento = lista[j] 
            lista[j] = lista[j+1] 
            lista[j+1] = elemento 
            print("  Se intercambián") 
        print("  Estado Actual de la lista", lista) 
         
print(lista) 

Pasada 1 
  Comparación de lista[0] y lista[1] 
  Estado Actual de la lista [15, 20, 5, 1, 10] 
  Comparación de lista[1] y lista[2] 
  Se intercambián 
  Estado Actual de la lista [15, 5, 20, 1, 10] 
  Comparación de lista[2] y lista[3] 
  Se intercambián 
  Estado Actual de la lista [15, 5, 1, 20, 10] 
  Comparación de lista[3] y lista[4] 
  Se intercambián 
  Estado Actual de la lista [15, 5, 1, 10, 20] 
Pasada 2 
  Comparación de lista[0] y lista[1] 
  Se intercambián 
  Estado Actual de la lista [5, 15, 1, 10, 20] 
  Comparación de lista[1] y lista[2] 
  Se intercambián 
  Estado Actual de la lista [5, 1, 15, 10, 20] 
  Comparación de lista[2] y lista[3] 
  Se intercambián 
  Estado Actual de la lista [5, 1, 10, 15, 20] 
Pasada 3 
  Comparación de lista[0] y lista[1] 
  Se intercambián 
  Estado Actual de la lista [1, 5, 10, 15, 20] 
  Comparación de lista[1] y lista[2] 
  Estado Actual de la lista [1, 5, 10, 15, 20] 
Pasada 4 
  Comparación de lista[0] y lista[1] 
  Estado Actual de la lista [1, 5, 10, 15, 20] 
[1, 5, 10, 15, 20] 

EJERCICIOS:

Ejercicio 1: Tenemos la lista data=[5, 3, 7] Ingrese las siguientes expresiones en bloques separados:

a. data[2] 
b. data[­1] 
c. len(data) 
d. data[0:2] 
e. 0 in data 
f. data + [2, 10, 5] 
g. tuple(data)

Ejercicio 2: Tenemos la lista data=[145, 69, 106, 210, 35, 5]. Escriba las expresiones que realizan las siguientes tareas:

   a. Reemplazar el valor en la posición 0 en **data** con la negación de ese valor. 
 
   b. Adicionar el valor 10 al final de **data**. 
 
   c. Insertar el valor 22 en la posición 2 en **data**. 
 
   d. Eliminar el valor de la posición 1 en **data**. 
 
   e. Añada los valores en la lista nueva **newData** las posiciones invertidas de **data**. 
 
   f. Localizar el índice del valor 106 en **data**, de forma automática. 
 
   g. Ordenar los valores en **data**.

Ingresamos al entorno de desarrollo Spyder desde Anaconda Navigator.

Abrimos nuevo archivo con el nombre: Practica_02_listas.py (dentro de nuestra carpeta con nuestro Apellido).

Digitamos todas las lineas anteriores y luego ejecutamos para verificar que esta correcto, al final guardamos.

3.- Funciones.

Función: Una función es un conjunto de líneas de código que realizan una tarea específica; puede retornar un valor.

Ventajas:

Reutilización de Código
Trabajo por módulos (Divide y Venceras)

Algunas funciones están predefinidas (abs, round, etc.) mientras que otras deben importarse de módulos antes de poder ser usadas (por
ejemplo, sin y cos se importan del módulo math).

Ahora aprenderemos a definir nuestras propias funciones. Definiendo nuevas funciones estaremos «enseñando» a Python a hacer cálculos
que inicialmente no sabe hacer y, en cierto modo, adaptando el lenguaje de programación al tipo de problemas que deseamos resolver,
enriqueciéndolo para que el programador pueda ejecutar acciones complejas de un modo sencillo: llamando a funciones desde su
programa.

Tambien usaremos módulos, es decir, archivos que contienen funciones y variables de valor predefinido que se puede importar en los
programas.

Aprenderemos a crear nuestros propios módulos, de manera de reutilizar nuestras funciones en varios programas resultará
extremadamente sencillo: bastará con importarlas.

Las funciones nos permite organizar nuestro código en las siguientes líneas de código de manera más eficaz.

Sintaxis

def <nombre de la funcion>(<parametro­1>, ..., <parametro­n>):  
        <linea(s) de comandos> 

Ingresamos al entorno de desarrollo Jupyter Notebook desde Anaconda Navigator.

Abrimos nuevo archivo Practica_03_funciones.ipynb (dentro de nuestra carpeta con nuestro Apellido).

Digitamos lo siguiente.

Ejemplos

Ejemplo 1: Crear una función de ejemplo que calcula el valor promedio en una lista de números.

In [45]: def promedio(lista): 
    """Devuelve el promedio de los números en la lista.""" 
    theSum = 0 
    for number in lista: 
        theSum += number 
    return theSum / len(lista) 
 
 
promedio([1, 3, 5, 7])        

Out[45]: 4.0

Ejemplo 2: Crear una función que devuelve "True" si el número enviado es impar, o "False" en caso es par.

In [46]:  def odd(x): 
        """Devuelve True si x es impar o False en caso contrario.""" 
        if x % 2 == 1: 
            return True 
        else: 
            return False 
         
odd(5) 

Out[46]: True

Buena Practicas en Python

Definimos la función principal main, que permite agrupar varias funciones.

Ejemplo 3: Crear un programa que me calcule el exponente 2 y 3 de un número ingresado por teclado

In [47]: """ 
       Definición de una función principal. 
""" 
def main(): 
    """La función principal para este script."""  
    num = float(input("Ingrese el Número: "))  
    resultado = cuadrado(num) 
    resultado3 = cubo(num) 
    print("El número: ", num, " con exponente 2 es: ", resultado) 
    print("El número: ", num, " con exponente 3 es: ", resultado3) 
     
def cuadrado(x): 
    """Devuelve el cuadrado de x.""" 
    return x * x 
def cubo(x): 
    """Devuelve x elevado a 3.""" 
    return x * x * x 
 
# Ejecución del programa 
if __name__ == "__main__": 
    main() 

Ingrese el Número: 5 
El número:  5.0  con exponente 2 es:  25.0 
El número:  5.0  con exponente 3 es:  125.0 

Ejemplo 4: Crear un programa que me calcule el cambio en dólares y euros de un valor en soles ingresado por teclado

In [49]: #Menú de tipo de cambio 
#Permite cambiar soles a dólares y euros 
print("Programa cambio de soles a dólares y euros") 
def main (): 
    print() 
    print("1. Dolares") 
    print("2. Euros") 
    print("¿Cuantos soles tienes?: ") 
    global soles 
    soles = input() 
    soles = float(soles) 
    print() 
    print("Ingrese el tipo de cambio que desea realizar: ") 
    op = input() 
    op = int(op) 
    #Evaluación 
    if (op==1): 
        #Llamando a funcion dolares 
        dolares() 
    elif (op==2): 
        #Llamando funcion euros 
        euros() 
    else: 
        print ("El tipo de cambio no existe") 
    print("Desea hacer otro tipo de cambio Si/No?: ") 
    global resp 
    resp = input() 
    resp = resp.lower() 
    repetir() 
 
#Funcion dolares 
def dolares(): 
    valorD = float(input("Ingrese precio del dólar el día de hoy: ")) 
    dolares = soles/valorD 
    print("Tienes ", dolares, " Dólares") 
 
 
#Funcion euros 
def euros(): 
    valorE = float(input("Ingrese precio del euro el día de hoy: ")) 
    euros = soles/valorE 
    print("Tienes ", euros, " Euros") 
 
#Funcion repetir 
def repetir(): 
    while(resp != "no"): 
        main() 
 
 
#Llamando a la función main 
if __name__ == "__main__": 
    main() 

Programa cambio de soles a dólares y euros 
 
1. Dolares 
2. Euros 
¿Cuantos soles tienes?:  
1000 
 
Ingrese el tipo de cambio que desea realizar:  

Ingrese precio del dólar el día de hoy: 3.5 
Tienes  285.7142857142857  Dólares 
Desea hacer otro tipo de cambio Si/No?:  
SI 
 
1. Dolares 
2. Euros 
¿Cuantos soles tienes?:  
1000 
 
Ingrese el tipo de cambio que desea realizar:  

Ingrese precio del euro el día de hoy: 4 
Tienes  250.0  Euros 
Desea hacer otro tipo de cambio Si/No?:  
no 

Excepciones en Python

Ejemplo 5:

Excepciones: Averiguar como mejorar el ejemplo 4 para que no termine inesperadamente por mal ingreso del teclado, utilizando
Excepciones en Python.

Ingresamos al entorno de desarrollo Spyder desde Anaconda Navigator.

Abrimos nuevo archivo con el nombre: Practica_03_funciones.py (dentro de nuestra carpeta con nuestro Apellido).

Digitamos todas las lineas anteriores y luego ejecutamos para verificar que esta correcto, al final guardamos.

4- Diccionario.
Loading [MathJax]/jax/output/HTML-CSS/jax.js
Un Diccionario es una estructura de datos y un tipo de dato en Python con características especiales que nos permite almacenar
cualquier tipo de valor como enteros, cadenas, listas e incluso otras funciones. Estos diccionarios nos permiten además identificar
cada elemento por una clave (Key).

Ingresamos al entorno de desarrollo Jupyter Notebook desde Anaconda Navigator.

Abrimos nuevo archivo Practica_03_diccionario.ipynb (dentro de nuestra carpeta con nuestro Apellido).

Digitamos lo siguiente.

Trabajando con diccionarios

Para definir un diccionario, se encierra el listado de valores entre llaves. Las parejas de clave y valor se separan con
comas, y la clave y el valor se separan con dos puntos.

Definición e Impresión

In [50]: diccionario = {'nombre' : 'Henry', 'edad' : 30, 'cursos': ['Python','C++','JavaScript'] } 
diccionario 

Out[50]: {'nombre': 'Henry', 'edad': 30, 'cursos': ['Python', 'C++', 'JavaScript']}

In [51]: print (diccionario['nombre']) 
print (diccionario['edad']) 
print (diccionario['cursos']) 

Henry 
30 
['Python', 'C++', 'JavaScript'] 

Indexación de diccionario

In [52]: print (diccionario['cursos'][0]) 
print (diccionario['cursos'][1]) 
print (diccionario['cursos'][2]) 

Python 
C++ 
JavaScript 

Recorrer diccionario

In [53]: for key in diccionario: 
  print (key, ":", diccionario[key]) 

nombre : Henry 
edad : 30 
cursos : ['Python', 'C++', 'JavaScript'] 

Métodos del objeto diccionario


In [54]: notas = {'nombre' : 'Pablo', 'nota1' : 12, 'nota2': 18, 'nota3': 15 } 

In [55]: len(notas) 

Out[55]: 4

items( ) : Devuelve una lista de tuplas, cada tupla se compone de dos elementos: el primero será la clave y el segundo, su
valor.

In [56]: item = notas.items() 
item 

Out[56]: dict_items([('nombre', 'Pablo'), ('nota1', 12), ('nota2', 18), ('nota3', 15)])

keys( ): Retorna una lista de elementos, los cuales serán las claves de nuestro diccionario.

In [57]: key = notas.keys() 
key 

Out[57]: dict_keys(['nombre', 'nota1', 'nota2', 'nota3'])

values( ) : Retorna una lista de elementos, que serán los valores de nuestro diccionario.

In [58]: valor = notas.values() 
valor 

Out[58]: dict_values(['Pablo', 12, 18, 15])

copy( ) : Retorna una copia del diccionario original.

In [59]: copia = notas.copy() 
copia 

Out[59]: {'nombre': 'Pablo', 'nota1': 12, 'nota2': 18, 'nota3': 15}

clear( ) : Elimina todos los ítems del diccionario dejándolo vacío.

In [60]: vacio = copia.clear() 
print(vacio) 

None 

Ejemplos

Ejemplo 1: Escribir un programa que almacene el diccionario con los créditos de las asignaturas de un curso {'Matemáticas': 6, 
'Física': 4, 'Química': 5} y después muestre por pantalla los créditos de cada asignatura en el formato <asignatura> 
tiene <créditos> créditos , donde <asignatura> es cada una de las asignaturas del curso, y <créditos> son sus créditos.
Al final debe mostrar también el número total de créditos del curso.

In [61]: curso = {'Matemáticas': 6, 'Física': 4, 'Química': 5} 
total_creditos = 0 
for nombre, credito in curso.items(): 
    print(nombre, 'tiene', credito, 'créditos') 
    total_creditos += credito 
print('Número total de créditos del curso: ', total_creditos) 

Matemáticas tiene 6 créditos 
Física tiene 4 créditos 
Química tiene 5 créditos 
Número total de créditos del curso:  15 

Ejemplo2 :Escribir un programa que cree un diccionario simulando una cesta de la compra. El programa debe preguntar el artículo y su
precio y añadir el par al diccionario, hasta que el usuario decida terminar. Después se debe mostrar por pantalla la lista de la compra y el
coste total, con el siguiente formato

Lista de la compra

Artículo 1 Precio

Artículo 2 Precio

Artículo 3 Precio

... ...

Total Coste

In [62]: cont = {} 
p = 'si' 
while p == 'si': 
    item = input('Introduce un artículo: ') 
    precio = float(input('Introduce el precio de ' + item + ': ')) 
    cont[item] = precio 
    p = input('¿Quieres añadir artículos a la lista (si/no)? ') 
costo = 0 
print('Lista de la compra') 
for item, precio in cont.items(): 
    print(item, '\t', precio) 
    costo += precio 
print('Coste total: ', costo) 

Introduce un artículo: papas 
Introduce el precio de papas: 1.5 
¿Quieres añadir artículos a la lista (si/no)? si 
Introduce un artículo: camote 
Introduce el precio de camote: 3 
¿Quieres añadir artículos a la lista (si/no)? si 
Introduce un artículo: maiz 
Introduce el precio de maiz: 5 
¿Quieres añadir artículos a la lista (si/no)? si 
Introduce un artículo: tomate 
Introduce el precio de tomate: 2 
¿Quieres añadir artículos a la lista (si/no)? no 
Lista de la compra 
papas    1.5 
camote   3.0 
maiz    5.0 
tomate   2.0 
Coste total:  11.5 

Ejercicios

Ejercicio 1: Escribir un programa que cree un diccionario vacío y lo vaya llenado con información sobre una persona (por ejemplo nombre,
edad, sexo, teléfono, correo electrónico, etc.) que se le pida al usuario. Cada vez que se añada un nuevo dato debe imprimirse el
contenido del diccionario.

Resultado:

¿Qué dato quieres introducir?  Nombre 
Nombre:  Alfredo Sánchez 
{'Nombre': 'Alfredo Sánchez'} 
¿Quieres añadir más información (Si/No)?  Si 
¿Qué dato quieres introducir?  Dirección 
Dirección:  Madrid 
{'Nombre': 'Alfredo Sánchez', 'Dirección': 'Madrid'} 
¿Quieres añadir más información (Si/No)?  Si 
¿Qué dato quieres introducir?  email 
email:  asalber@ceu.es 
{'Nombre': 'Alfredo Sánchez', 'Dirección': 'Madrid', 'email': 'asalber@ceu.es'} 
¿Quieres añadir más información (Si/No)?  No

Ingresamos al entorno de desarrollo Spyder desde Anaconda Navigator.

Abrimos nuevo archivo con el nombre: Practica_03_diccionario.py (dentro de nuestra carpeta con nuestro Apellido).

Digitamos todas las lineas anteriores y luego ejecutamos para verificar que esta correcto, al final guardamos.

5.- Adicional.

5.1.- Matrices.

Las Matrices son disposiciones bidimensionales de valores. En notación matemática, una matriz se denota encerrando entre
paréntesis los valores, que se disponen en filas y columnas. He aquí una matriz M:

( )
1 2 3
2 12 6
M =
1 0 −3
0 −1 0

Esta matriz tiene 4 filas y 3 columnas, lo cual abreviamos diciendo que es una matriz de dimensión 4 × 3.

Las listas permiten representar series de datos en una sola dimensión. Para Representar una Matriz debemos crear una lista de lista de
números de la siguiente manera:

Ingresamos al entorno de desarrollo Jupyter Notebook desde Anaconda Navigator.

Abrimos nuevo archivo Practica_03_matrices.ipynb (dentro de nuestra carpeta con nuestro Apellido).

Digitamos lo siguiente.

Ejemplos
In [63]: M = [[1,2,3],[2,12,6],[1,0,­3],[0,­1,0]] 
print(M) 

[[1, 2, 3], [2, 12, 6], [1, 0, ­3], [0, ­1, 0]] 

In [64]: #Creación de una Matriz 
#Solicitamos dimensión de Matriz 
m = int(input("Ingrese el Número de Filas de la Matriz: ")) 
n = int(input("Ingrese el Número de Columnas de la Matriz: ")) 
 
#Creamos Matriz nula 
M = [] 
for i in range(m): 
    M.append( [0] * n ) 
     
#Llenamos la Matriz por teclado 
for i in range(m): 
    for j in range(n): 
        M[i][j] = int(input("Ingrese el componente ({0},{1}): ".format(i,j))) 
 
print(M) 

Ingrese el Número de Filas de la Matriz: 3 
Ingrese el Número de Columnas de la Matriz: 4 
Ingrese el componente (0,0): 40 
Ingrese el componente (0,1): 50 
Ingrese el componente (0,2): 60 
Ingrese el componente (0,3): 70 
Ingrese el componente (1,0): 10 
Ingrese el componente (1,1): 20 
Ingrese el componente (1,2): 30 
Ingrese el componente (1,3): 80 
Ingrese el componente (2,0): 90 
Ingrese el componente (2,1): 70 
Ingrese el componente (2,2): 30 
Ingrese el componente (2,3): 20 
[[40, 50, 60, 70], [10, 20, 30, 80], [90, 70, 30, 20]] 

In [65]: #Dimensión de la Matrix 
len(M) 

Out[65]: 3

In [66]: len(M[0]) 

Out[66]: 4

In [67]: matrizdos = [ 
...     [1, 2, 3, 4], 
...     [5, 6, 7, 8], 
...     [9, 10, 11, 12], 
... ] 

In [68]: matrizdos 

Out[68]: [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]]

In [69]: #Matriz transpuesta con función zip﴾﴿ 
list(zip(*matrizdos)) 

Out[69]: [(1, 5, 9), (2, 6, 10), (3, 7, 11), (4, 8, 12)]

Ingresamos al entorno de desarrollo Spyder desde Anaconda Navigator.

Abrimos nuevo archivo con el nombre: Practica_03_matrices.py (dentro de nuestra carpeta con nuestro Apellido).

Digitamos todas las lineas anteriores y luego ejecutamos para verificar que esta correcto, al final guardamos.

5.2.- Tuplas:

Una Tupla consiste de un número de valores separados por comas, las tuplas son inmutables y normalmente contienen una
secuencia heterogénea de elementos que son accedidos al desempaquetar o indizar. Las listas son mutables, y sus elementos
son normalmente homogéneos y se acceden iterando a la lista.

Ingresamos al entorno de desarrollo Jupyter Notebook desde Anaconda Navigator.

Abrimos nuevo archivo Practica_03_tuplas.ipynb (dentro de nuestra carpeta con nuestro Apellido).

Digitamos lo siguiente.

Ejemplos
In [70]: t = 12345, 54321, 'hola!' 
t[0] 

Out[70]: 12345

In [71]: print(t) 

(12345, 54321, 'hola!') 

In [72]: # Las tuplas pueden anidarse: 
... u = t, (1, 2, 3, 4, 5) 
>>> u 

Out[72]: ((12345, 54321, 'hola!'), (1, 2, 3, 4, 5))

In [73]: # Las tuplas son inmutables: 
... t[0] = 88888 

­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­ 
TypeError                                 Traceback (most recent call last) 
<ipython­input­73­5394e925360d> in <module> 
      1 # Las tuplas son inmutables: 
­­­­> 2 t[0] = 88888 
 
TypeError: 'tuple' object does not support item assignment

Ingresamos al entorno de desarrollo Spyder desde Anaconda Navigator.

Abrimos nuevo archivo con el nombre: Practica_03_tuplas.py (dentro de nuestra carpeta con nuestro Apellido).

Digitamos todas las lineas anteriores (menos el ultimo que es para ver propiedad de tupla no varia) y luego ejecutamos para verificar
que esta correcto, al final guardamos.

6.- Sincronizar cuanta veces sea necesario los cambios con git:

Ingresamos a la linea de comando.

En nuestro directorio de Practica_03 .

Añadimos los cambios de archivos a git:

(Programacion2) renzo@misti:~$ git add ­A 
 
(Programacion2) renzo@misti:~$ git commit ­m "Finalizando Practica 02" 

Actualizamos nuestros repositorio local con los cambios del respositorio de GitLab:

(Programacion2) renzo@misti:~$ git pull origin master 

Enviamos nuestros cambios al repositorio remoto de GitLab:

(Programacion2) renzo@misti:~$ git push origin master 

Si se hace cambios repetir los pasos anteriores de comandos git.

Para tener evidencia del trabajo realizado envía un solo integrante al Aula Virtual, la carpeta con todo el proyecto en zip.

Finaliza la Práctica

Bibliografía

[1] A. M. Varó, P. G. Sevilla, and I. G. Luengo, Introducción a la Programación con Python 3. Universitat Jaume I. Servei de Comunicació i
Publicacions, 2014.

[2] G. D. Raul, “Python para todos,” Creative Commons Reconocimiento, vol. 2, 2010.

[3] G. Van Rossum and F. L. Drake Jr, “Tutorial python,” Disponible gratuitamente en https://tutorial.python.org.ar/en/latest/, 2004.

[4] P. Gries, J. Campbell, and J. Montojo, Practical programming: an introduction to computer science using Python 3. Pragmatic
Bookshelf, 2013.

[5] J. M. Vilar Torres et al., “Python : Conceptos básicos y ejercicios,” 2010.

Loading [MathJax]/jax/output/HTML-CSS/jax.js

También podría gustarte