coucou747

Ce blog présente principalement les évolutions du compilateur metalang : les nouveaux backends, les nouvelles corrections de bugs, les nouvelles features, nouvaux tests, son utilisation dans le cadre du concours prologin.

Le mois dernier

Estimation si les abstentionnistes avaient voté.

En regardant le résultat des européennes arriver en temps réel, j'ai eu un choc : à Paris, l'abstention ne fait que 42,12, alors que dans d'autres départements, c'est plus élevé de façon significative : 47,80 en loire atlantique par exemple. 61,99 d'abstention en corse, 85,63 en gouadeloupe, 86,59 en guyane, 69,34 à la réunion, 84,78 en martinique, 71,36 à mayotte... Même en ile de france, on ressent un décalage entre les zones défavorisées et les quartiers riches : 60,59 d'abstention pour le 93, contre 44,82 pour le 92. Avec bien évidement, des listes différentes en tête entre là ou on vote, et là ou on s'abstient.

J'aime penser que globalement, on vote en fonction d'intérets et de convictions, et qu'on a globalement les mêmes idées politiques que nos voisins de paliers, j'ai donc pris le fichier des bureaux de vote pour tenter d'avoir un chiffre qui correspondrait au résultat si les gens étaient allé voter.


"""
pré traitement :

cat resultats-provisoires-par-bureau-de-vote.txt | cut -d ';' -f 1,2,3,4,5,7,8,9,10,12,13,15,16,17,18,19 --complement > resultats-provisoires-par-bureau-de-vote2.txt 

ici, la variable exprimes n'a pas le même sens qu'au ministère de l'interieur. Pour moi, blanc ou null, c'est une expression !

"""
import sys
from functools import reduce

nlist=34
encoding="latin-1"

def sum(x,y):
    return x + y

def bureau(line):
    lst=line.decode(encoding).split(";")
    inscrits=int(lst[0])
    blancs=lst[1]
    nuls=lst[2]
    votes=[blancs, nuls]
    for i in range(0, nlist):
        votes.append(lst[7 + 7 * i])
    votes = list(map(int, votes))
    return [inscrits, votes]

def sum2(line1, s):
    return list([line1[i] + s[i] for i in range(0, len(s))])

def traitement(line):
    exprimes = reduce(sum, line[1])
    missing=line[0] - exprimes
    if exprimes == 0:
        return line[1]
    else:
        return list(map( lambda x: x + missing * x / exprimes, line[1]))
    return line[1] # résultats officiels
               
lines =  open(0, 'rb').readlines();
lines.pop(0)
labels0 = lines[1].decode(encoding).split(";")
labels=["blancs", "nuls"];
for i in range(0, nlist):
    labels.append(labels0[5 + 7 * i])
        
cols = map(bureau, lines)
scores=list(reduce(sum2, map(traitement, cols), [0]*(nlist + 2)))
total = reduce(sum, scores)

lili = []
for i in range(0, nlist + 2):
    lili.append( [ scores[i] * 100 / total, labels[i]])
lili.sort(reverse = True)
for l in lili:
    print("%2.2f %s" % (l[0], l[1]));

Je pensais que ça changerait les scores... En fait, pas tellement.
22.25 PRENEZ LE POUVOIR, LISTE SOUTENUE PAR MARINE LE PEN
21.10 RENAISSANCE SOUTENUE PAR LA RÉPUBLIQUE EN MARCHE, LE MODEM ET SES PARTENAIRES
12.75 EUROPE ÉCOLOGIE
7.89 UNION DE LA DROITE ET DU CENTRE
6.35 LA FRANCE INSOUMISE
5.89 ENVIE D'EUROPE ÉCOLOGIQUE ET SOCIALE
3.29 LE COURAGE DE DÉFENDRE LES FRANÇAIS AVEC NICOLAS DUPONT-AIGNAN. DEBOUT LA FRANCE ! - CNIP
3.18 LISTE CITOYENNE DU PRINTEMPS EUROPÉEN AVEC BENOÎT HAMON SOUTENUE PAR GÉNÉRATION.S ET DÈME-DIEM 25
2.41 POUR L'EUROPE DES GENS CONTRE L'EUROPE DE L'ARGENT
2.38 LES EUROPÉENS
2.37 blancs
2.28 nuls
2.03 PARTI ANIMALISTE
1.77 URGENCE ÉCOLOGIE
1.19 ENSEMBLE POUR LE FREXIT
0.80 LUTTE OUVRIÈRE - CONTRE LE GRAND CAPITAL, LE CAMP DES TRAVAILLEURS
0.64 ENSEMBLE PATRIOTES ET GILETS JAUNES : POUR LA FRANCE, SORTONS DE L'UNION EUROPÉENNE !
0.51 ALLIANCE JAUNE, LA RÉVOLTE PAR LE VOTE
0.21 LES OUBLIÉS DE L'EUROPE - ARTISANS, COMMERÇANTS, PROFESSIONS LIBÉRALES ET INDÉPENDANTS - ACPLI -
0.16 UNE EUROPE AU SERVICE DES PEUPLES
0.13 PARTI PIRATE
0.08 ESPÉRANTO - LANGUE COMMUNE ÉQUITABLE POUR L'EUROPE
0.05 PARTI FÉDÉRALISTE EUROPÉEN - POUR UNE EUROPE QUI PROTÈGE SES CITOYENS
0.05 À VOIX ÉGALES
0.04 DÉCROISSANCE 2019
0.03 ALLONS ENFANTS
0.03 PACE - PARTI DES CITOYENS EUROPÉENS
0.03 MOUVEMENT POUR L'INITIATIVE CITOYENNE
0.02 UDLEF (UNION DÉMOCRATIQUE POUR LA LIBERTÉ ÉGALITÉ FRATERNITÉ)
0.02 LISTE DE LA RECONQUÊTE
0.02 DÉMOCRATIE REPRÉSENTATIVE
0.01 UNE FRANCE ROYALE AU COEUR DE L'EUROPE
0.01 NEUTRE ET ACTIF
0.01 ÉVOLUTION CITOYENNE
0.01 LA LIGNE CLAIRE
0.01 PARTI RÉVOLUTIONNAIRE COMMUNISTES

ça inverse juste les deux listes suivantes : LES EUROPÉENS POUR L'EUROPE DES GENS CONTRE L'EUROPE DE L'ARGENT ainsi que : PARTI PIRATE et UNE EUROPE AU SERVICE DES PEUPLES. Dans tous les cas, ce n'est pas significatif. Donc si l'abstention a proffité à quelqu'un, ce n'est pas visible dans ces chiffres là, il faudrait les croiser avec peut-être les données de la présidentielle ou autre (mais ça ne rendrait pas compte des 2 ans passés, donc ça n'aurait pas beaucoup de valeur)

Dans Catégories.

Sujets : #python