# Crear una función precio que nos calcule el precio de un viaje de la siguiente manera # precioViaje(tipoCliente,destino) # si el cliente es 'vip' y el destino es 'Atenas' 1000 # si el cliente es 'normal' y el destino es 'Atenas' 1300 # si el cliente es 'vip' y el destino es 'Roma' 600 # si el cliente es 'normal' y el destino es 'Roma' 900 def precioViaje(tipoCliente, destino): tabla = [{"tipo": "vip", "destinos": [{"destino": "Atenas", "precio": 1000}, {"destino": "Roma", "precio": 600}]}, {"tipo": "normal", "destinos": [{"destino": "Atenas", "precio": 1300}, {"destino": "Roma", "precio": 900}]} ] for cliente in tabla: for destinos in cliente["destinos"]: if cliente["tipo"] == tipoCliente and destinos["destino"] == destino: return destinos["precio"] return 0 def precioViaje2(tipoCliente, destino): if tipoCliente == 'vip': if destino == 'Atenas': return 1000 if destino == 'Roma': return 600 if tipoCliente == 'normal': if destino == 'Atenas': return 1300 if destino == 'Roma': return 900 return 0 # Crear una función iniciales a la que le pasamos una cadena y nos devuelve una lista # con las primeras letras de cada palabra # iniciales("hola que tal")->['h','q','t'] def iniciales01(cadena): # cogería cada palabra # apuntaría la primera letra palabras = cadena.split() # me convierte una cadena en una lista de palabras res = [] # recorrer las palabras for palabra in palabras: res.append(palabra[0]) return res def iniciales(cadena): # cogería cada palabra # apuntaría la primera letra palabras = cadena.split() # me convierte una cadena en una lista de palabras return [palabra[0] for palabra in palabras] # Crear una función menorLongitud a la que le pasamos una cadena y un numero y nos devuelve # una lista con las palabras que tengan menor longitud que ese numero # menorLongitud("hola que tal estamos. Yo estupendo",4)->['que','tal','Yo'] def menorLongitud01(cadena, numero): palabras = cadena.split() res = [] for palabra in palabras: if len(palabra) < numero: res.append(palabra) return res def menorLongitud(cadena, numero): palabras = cadena.split() return [palabra for palabra in palabras if len(palabra) < numero]
from unittest import TestCase from ejercicios_preexamen01 import precioViaje from ejercicios_preexamen01 import iniciales from ejercicios_preexamen01 import menorLongitud class Test(TestCase): def test_precio_viaje(self): precio = precioViaje('vip', 'Atenas') self.assertEqual(precio, 1000) precio = precioViaje('vip', 'Roma') self.assertEqual(precio, 600) precio = precioViaje('normal', 'Atenas') self.assertEqual(precio, 1300) precio = precioViaje('normal', 'Roma') self.assertEqual(precio, 900) def test_iniciales(self): lista = iniciales("hola que tal") self.assertListEqual(lista, ["h", "q", "t"]) lista = iniciales("yo muy bien sabes") self.assertListEqual(lista, ["y", "m", "b", "s"]) def test_menor_longitud(self): lista=menorLongitud("hola que tal estamos. Yo estupendo",4) self.assertListEqual(lista,['que','tal','Yo']) lista = menorLongitud("aa bbb ccc dddd eeeee fffff ggggggg", 5 ) self.assertListEqual(lista, ['aa', 'bbb', 'ccc','dddd'])