1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
| #-- coding=utf-8 --
import csv
import json
from math import *
#Fichiers utilisés
ListeVilleLatitudeLongitude = csv.reader(open("liste_ville.csv","rb"),delimiter=",") #fichier csv contenant le classement des villes, leurs noms, leur latitudes, leurs longitudes et les pays où sont les villes
Info_avion = json.load(open("full_all.json")) #fichier json fournit contenant les données sur les avions
#Listes créés à partir du fichier "liste_ville.csv" car une boucle utilisant row ne peut être utilisé qu'une fois dans un programme
villes=[]
latitudes=[]
longitudes=[]
for row in ListeVilleLatitudeLongitude:
villes.append(row[1]) #lister les villes
latitudes.append(row[2]) #lister les latitudes
longitudes.append(row[3]) #lister les longitudes
#Partie du programme servant à calculer la vitesse moyenne
vitesse_totale=0 #initialisation de la vitesse cumulée des avions
mon_dictionnaire=dict(Info_avion) #création du dictionnaire à partir du fichier json
nombre_avion=0 #initialisation du nombre d'avion
for key,value in mon_dictionnaire.items():
if (value[5]>200):
nombre_avion=nombre_avion+1
vitesse_totale=vitesse_totale + value[5]
vitesse_moyenne=vitesse_totale/nombre_avion
#Pour recommencer le programme autant de fois que nécessaire si l'utilisateur n'est pas satisfait de sa recherche et qu'il veut recommencer le programme.
z=0
while (z==0):
#Partie I demande de la ville
print "Quelle est votre ville cible parmis les 50 plus grandes villes mondiales? (merci d'éviter les accents)\nMettre des tirets à la place des espaces."
ville=raw_input().upper()
i=0
while (i==0):
for j in range(0,len(villes)):
if (villes[j]==ville):
i=1
numero_ville=j
if (i==0):
print "Vous vous êtes trompés lors de la saisie de votre ville ou vous n'avez pas choicit une des plus grandes 50 villes.\n Merci de la resaisir."
ville=raw_input().upper()
print "Vous avez bien marqué une ville faisait partie des 50 plus grandes villes du monde."
#Partie II demande du temps moyen et calcul de la distance
#Partie II.1 Demande du temps moyen
print "Quel est le temps moyen dont vous disposez pour détrourner votre avion (temps en minute, minimum 1 min)?"
Temps_Moyen=float(raw_input())
i=0
while(i==0):
if (Temps_Moyen>1):
Temps_Plus_10pourcent=Temps_Moyen*1.1
Temps_Moins_10pourcent=Temps_Moyen*0.9
print Temps_Plus_10pourcent
print Temps_Moins_10pourcent
i=1
else:
print "Le temps moyen n'est pas de minimum 1 minute. Merci de retaper un temps."
Temps_Moyen=float(raw_input())
print "Le temps marqué est correct."
#Partie II.2 Calcul de la distance
Distance_Plus_10pourcent=Temps_Plus_10pourcent*vitesse_moyenne/60
Distance_Moins_10pourcent=Temps_Moins_10pourcent*vitesse_moyenne/60
#Partie III Trouver les avions disponibles
avion_proche=0
for key,value in mon_dictionnaire.items():
if (value[5]>200 and acos(sin(radians(latitudes(numero_ville)))*sin(radians(value[1]))+cos(radians(latitudes(numero_ville)))*cos(radians(value[1]))*cos(radians(longitudes(numero_ville)-value[2])))*6371<Distance_Plus_10pourcent and Distance_Moins_10pourcent<acos(sin(radians(latitudes(numero_ville)))*sin(radians(value[1]))+cos(radians(latitudes(numero_ville)))*cos(radians(value[1]))*cos(radians(longitudes(numero_ville)-value[2])))*6371):
avion_proche=avion_proche+1 |
Partager