Python - Proyecto Fast Food Resuelto PDF

Title Python - Proyecto Fast Food Resuelto
Author Fernando Hidalgo
Course Fundamentos de Programación
Institution Universidad de Sevilla
Pages 3
File Size 61.4 KB
File Type PDF
Total Downloads 73
Total Views 144

Summary

Proyecto Fast Food Resuelto en Python...


Description

Python - Proyecto Fast Food Resuelto import csv import math from matplotlib import pylab as plt def lee_fichero(fichero): ''' Cabecera del fichero: name,province,city,address,postalCode,latitude,longitude ''' registros=[] with open(fichero,'r',encoding='utf-8') as f: lector=csv.DictReader(f) for dicc in lector: dicc['postalCode']=int(dicc['postalCode']) dicc['latitude']=float(dicc['latitude']) dicc['longitude']=float(dicc['longitude']) registros.append(dicc) return registros def rest_en_provincia(registros,estado): ''' Devuelve los restaurantes que están ubicados en el estado (province) que se pasa como parámetro. El resultado no debe tener elementos repetidos, y sólo debe contener los nombres de los restaurantes ordenados en orden alfabético. ''' return sorted({reg['name'] for reg in registros if reg['province']==estado}) def porc_rest_nombre(registros, nombre): ''' Devuelve el porcentaje de restaurantes con el nombre dado como parámetro ''' rest_nom=[reg for reg in registros if reg['name']==nombre] return len(rest_nom)*100/len(registros) def rest_mayor_porc(registros): ''' Devuelve una tupla de la forma (porcentaje,nombre) con el restaurante con mayor presencia en el dataset ''' nombres={reg['name'] for reg in registros} tuplas=[(porc_rest_nombre(registros, n),n) for n in nombres] return max(tuplas)

def distancia(coordenadas1,coordenadas2): ''' Devuelve la distancia euclídea entre las dos coordenadas que se pasan como parámetro y que son de la forma (latitud, longitud) ''' x1=coordenadas1[0] y1=coordenadas1[1] x2=coordenadas2[0] y2=coordenadas2[1] return math.sqrt((x2-x1)**2+(y2-y1)**2) def rest_cercanos(registros,coordenadas,radio=0.5): ''' Devuelve una lista con los restaurantes más cercanos a las coordenadas que se pasan como parámetro. Es decir,se considerarán aquellos cuyas coordenadas con respecto a las coordenadas que se pasan como parámetro, estén situadas a una distancia menor o igual que el radio que se pasa como parámetro. La lista debe estar compuesta por tuplas de la forma (distancia,nombre,ciudad) y debe estar ordenada por distancia ''' tuplas=[(distancia(coordenadas,(reg['latitude'],reg['longitude'])),reg['name'],reg['city']) for reg in registros if distancia(coordenadas,(reg['latitude'],reg['longitude']))...


Similar Free PDFs