CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

compteur par ligne python-tkinter

aurelien281
aurelien281
Niveau 1
17 avril 2020 à 16:00:23

Bonjour à tous,

Je suis un novice en python... Je dois réaliser un projet avec le logiciel python. Mon projet est de créer une plateforme de compatibilité amoureuse ou sentimentale en utilisant Tkinter.

Bon, en bref, je lance mon programme, on rentre son nom, son prénom, on répond à une série de 11 questions avec 4 choix de réponses possibles. Chaque réponse à chaque question est enregistré automatiquement dans un fichier CSV. Chaque réponse est assimilé à une variable (1, 2, 3, ou 4) en fonction de la réponse choisie. Mon fichier CSV se présente sous la forme d'une liste avec : Sexe, Nom, Prénom, rep. à la qu.1, rep à la qu.2 etc jusqu'à la question 11.

Voila mon problème, j'ai une base de données de 10 personnes qui ont répondu préalablement aux questions et qui sont dans mon fichier CSV. Le but est : la personne qui va faire le quizz aura toutes ces réponses enregistrer dans le fichier CSV et je veux qu'à la fin toutes ces réponses soient comparées à celle de ma base de données et que ça sortent la personne qui a le plus de réponses similaires avec elle.

J'avais pensé que chaque ligne avec chaque prénom jouent un rôle de compteur dès que la personne qui répond au quizz a répondu similairement à une personne de ma base de données, la ligne de cette personne gagne un point et à la fin, le nom et prenom de la personne ayant le plus de points soit retournée dans ma fenêtre.

Voici le code de mon fichier CSV :

F = open("Grand_projet.csv","a")
F.write ( g+ ";" +n+ ";" +p+ ";" +v+ ";" +v1+ ";" +v2+ ";" +v3+ ";" +v4+ ";" +v5+ ";" +v6+ ";" +v7+ ";" +v8+ ";" +v9+ ";" +v10+ ";")
F.close()

Merci pour votre aide

MonsieurBeauf
MonsieurBeauf
Niveau 10
17 avril 2020 à 16:33:39

Pour que ta gestion des données soit claire et que tu montes bien en compétence, go utiliser pandas. Pour trouver la personne dont les réponses sont les plus proches, tu peux ségréguer les gens en un vecteur de réponse et trouver le plus proche voisin de ton candidat (tu comprendras même comment marche la méthode des k plus proches voisins qui d'ailleurs la méthode n°1 pour les problèmes comme le tiens). Pour calculer une distance, tu connais déjà la formule de la distance euclidienne pour trouver la distance entre 2 points 2D : sqrt( (x1-x2)²+(y1-y2)² ).

Maintenant imagine que tes points soient les vecteurs de personne que tu as déjà, des points de dimension 11 si tu veux. Tu n'as qu'à calculer la distance entre ton candidat et toutes les autres personnes et celui qui aura la distance la plus petite (plus proche voisin) sera le bon ! Bien entendu, tu n'as pas que la distance euclidienne pour t'aider, tu en as d'autres qui te satisferont surement plus mais c'est une piste.

aurelien281
aurelien281
Niveau 1
17 avril 2020 à 16:53:49

Le 17 avril 2020 à 16:33:39 MonsieurBeauf a écrit :
Pour que ta gestion des données soit claire et que tu montes bien en compétence, go utiliser pandas. Pour trouver la personne dont les réponses sont les plus proches, tu peux ségréguer les gens en un vecteur de réponse et trouver le plus proche voisin de ton candidat (tu comprendras même comment marche la méthode des k plus proches voisins qui d'ailleurs la méthode n°1 pour les problèmes comme le tiens). Pour calculer une distance, tu connais déjà la formule de la distance euclidienne pour trouver la distance entre 2 points 2D : sqrt( (x1-x2)²+(y1-y2)² ).

Maintenant imagine que tes points soient les vecteurs de personne que tu as déjà, des points de dimension 11 si tu veux. Tu n'as qu'à calculer la distance entre ton candidat et toutes les autres personnes et celui qui aura la distance la plus petite (plus proche voisin) sera le bon ! Bien entendu, tu n'as pas que la distance euclidienne pour t'aider, tu en as d'autres qui te satisferont surement plus mais c'est une piste.

Il faut donc que je prenne mon problème à l'envers : la personne ayant le moins de points est la personne compatible ? Je ne sais pas du tout ce qu'est panda ?!

MonsieurBeauf
MonsieurBeauf
Niveau 10
17 avril 2020 à 17:05:10

En gros pandas te permet de traiter des données, si ton système pour récupérer et enregistrer fonctionne déjà pas vraiment la peine de te casser le cul avec pandas mais pandas c'est une librairie qui te permet de traiter des données (ouvrir, sauvegarder et modifier quoi ).
Ben pour ton problème, oui, tu peux calculer les distances entre les personnes et prendre la plus petite distance qui sera donc la personne la plus proche de ton candidat

aurelien281
aurelien281
Niveau 1
17 avril 2020 à 17:33:57

Le 17 avril 2020 à 17:05:10 MonsieurBeauf a écrit :
En gros pandas te permet de traiter des données, si ton système pour récupérer et enregistrer fonctionne déjà pas vraiment la peine de te casser le cul avec pandas mais pandas c'est une librairie qui te permet de traiter des données (ouvrir, sauvegarder et modifier quoi ).
Ben pour ton problème, oui, tu peux calculer les distances entre les personnes et prendre la plus petite distance qui sera donc la personne la plus proche de ton candidat

Ah oui d'accord je comprends, et si mon fichier CSV pour enregistrer mes variables marchent très bien, mon problème résident juste dans le fait de comparer les donner de mon candidats avec les personnes ayant déjà réaliser le questionnaire ! Mais je vais essayer de regarder avec le système de vecteurs avec panda ! Merci

MonsieurBeauf
MonsieurBeauf
Niveau 10
17 avril 2020 à 18:11:17

Le 17 avril 2020 à 17:33:57 aurelien281 a écrit :

Le 17 avril 2020 à 17:05:10 MonsieurBeauf a écrit :
En gros pandas te permet de traiter des données, si ton système pour récupérer et enregistrer fonctionne déjà pas vraiment la peine de te casser le cul avec pandas mais pandas c'est une librairie qui te permet de traiter des données (ouvrir, sauvegarder et modifier quoi ).
Ben pour ton problème, oui, tu peux calculer les distances entre les personnes et prendre la plus petite distance qui sera donc la personne la plus proche de ton candidat

Ah oui d'accord je comprends, et si mon fichier CSV pour enregistrer mes variables marchent très bien, mon problème résident juste dans le fait de comparer les donner de mon candidats avec les personnes ayant déjà réaliser le questionnaire ! Mais je vais essayer de regarder avec le système de vecteurs avec panda ! Merci

Non non les vecteurs c'est hors pandas, pandas c'est pour lire, filtrer etc.. des données, utilise numpy plutôt pour traiter des vecteurs, je suis sûr qu'il y a même des calculs de distances au sein de numpy (euclidien c'est sûr, pour les autres.. à confirmer)

Sous forums
  • Aide à l'achat Mac
  • Macintosh
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Steam Deck
  • Hardware
La vidéo du moment