# 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'])