IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Aide Programme Python


Sujet :

Python

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2013
    Messages : 6
    Points : 0
    Points
    0
    Par défaut Aide Programme Python
    Bonjour à tous, ayant un programme python à faire pour un projet demandé en cours, j'ai choisi de faire un programme qui créer un "tournoi de foot", j'ai alors commencé mon programme, je bloque à deux endroits :
    Il se trouve que j'ai fait deux programmes séparés, un programme principal traitant les matchs et les scores, et un second programme affichant dans une listbox les équipes à choisir, premièrement si vous pouvez m'aidez à fusionner les deux programmes ce serait vraiment sympa ! et le deuxième "problème" je vous l'expliquerais par la suite.

    Voici le programme principal :

    from __future__ import division
    from lycee import *
    import random
    from random import randint
    L=["Montpellier","PSG","ManchesterUnited","Arsenal","Juventus","Bayern","Dortmund","Barcelone"] # Liste représentant les équipes
    #Tour1A=[1,2,3,4] # Liste des équipes présentent au TOUR1A
    #Tour1B=[5,6,7,8] # Liste des équipes présentent au TOUR1B
    # Soit les matchs : 1 vs 5, 2 vs 6, 3 vs 7, 4 vs 8.

    def _demande (t):
    return randint (0,5)

    def Match (num,TourA,TourB):
    n=_demande("SCORE EQUIPE 1")
    p=_demande ("SCORE EQUIPE 2")
    while n==p :
    n=_demande("SCORE EQUIPE 1")
    p=_demande ("SCORE EQUIPE 2")
    if n>p :z=TourA [num]
    else : z=TourB [num]
    return z

    def championnat(Tour1A,Tour1B):
    Tour2A=[]
    Tour2B=[]

    for k in range (2):

    Tour2A.append (Match(2*k,Tour1A,Tour1B))
    Tour2B.append (Match(2*k+1,Tour1A,Tour1B))
    print 'Tour2A',Tour2A,'Tour2B',Tour2B

    Tour3A=[]
    Tour3B=[]

    for k in range (1):
    Tour3A.append (Match(2*k,Tour2A,Tour2A))
    Tour3B.append (Match(2*k+1,Tour2B,Tour2B))
    print 'Tour3A',Tour3A,'Tour3B',Tour3B
    Result=Match(0,Tour3A,Tour3B)
    return Result

    print championnat(['Montpellier','PSG','Manchester United','Arsenal'],['Juventus','Bayern','Dortmund','Barcelone'])


    et voici le programme de la listbox:


    from __future__ import division
    from lycee import *
    from Tkinter import *

    n_equip=16
    choix=[]
    choix.append(['1-Manchester United',0])
    choix.append(['2-Arsenal',0])
    choix.append(['3-Bayern Munich',0])
    choix.append(['4-Paris',0])
    choix.append(['5-Montpellier',0])
    choix.append(['6-Lyon',0])
    choix.append(['7-Real Madrid',0])
    choix.append(['8-Barcelone',0])
    choix.append(['9-Atletico Madrid',0])
    choix.append(['10-Inter Milan',0])
    choix.append(['11-Milan AC',0])
    choix.append(['12-Dortmund',0])
    choix.append(['13-Chelsea',0])
    choix.append(['14-Manchester City',0])
    choix.append(['15-Naples',0])
    choix.append(['16-Marseille',0])

    def affiche_liste(n):
    global listbox, choix
    for k in range (n):
    if choix[k][1]==0: coul1='orange';coul2='black'
    else: coul1='blue';coul2='white'
    listbox.itemconfig(k,background=coul1,foreground=coul2)
    fen.update()

    def clic(evt):
    global listbox, choix
    index = listbox.curselection()
    s=int(index[0])
    choix[s][1]=(choix[s][1]+1)%2
    affiche_liste(n_equip)

    def impr() :
    global listbox, choix, n_equip
    index = listbox.curselection()
    listbox.get(index)
    s=int(index[0])
    affiche_liste(n_equip)
    print(choix)
    fen.destroy()

    fen=Tk()
    listbox = Listbox(fen, width=50,height=n_equip)
    for k in range(n_equip):
    listbox.insert(k,choix[k][0])
    listbox.pack()
    affiche_liste(n_equip)
    listbox.bind('<ButtonRelease-1>',clic)
    bouton = Button(fen, text='Terminé', command=impr)
    bouton.pack()
    fen.mainloop()
    print "Equipes Séléctionnées",[1]


    Etant donné mon niveau assez médiocre, si vous pouvez utiliser les fonctions de base ce serait très gentil de votre part.

    A très vite j'espère, cordialement.

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 300
    Points : 6 780
    Points
    6 780
    Par défaut
    Salut,

    Pour être lisible, il faudrait que ton code soit entre balises code. Pour cela, édite ton post, sélectionne le code et clique sur l'icône #.

    Merci.

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2013
    Messages : 6
    Points : 0
    Points
    0
    Par défaut Re-programme
    Premier programme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    from __future__ import division
    from lycee import *
    import random
    from random import randint
    L=["Montpellier","PSG","Manchester United","Arsenal","Juventus","Bayern","Dortmund","Barcelone"] # Liste représentant les équipes
    #Tour1A=[1,2,3,4]    # Liste des équipes présentent au TOUR1A
    #Tour1B=[5,6,7,8]    # Liste des équipes présentent au TOUR1B
                    #Soit les matchs : 1 vs 5, 2 vs 6, 3 vs 7, 4 vs 8.
     
    def _demande (t):
        return randint (0,5)
     
    def Match (num,TourA,TourB):
            n=_demande("SCORE EQUIPE 1")     # n est la variable qui demande le score de l'équipe 1
            p=_demande ("SCORE EQUIPE 2")   # p est la variable qui demande le score de l'équipe 2
            while n==p :
                n=_demande("SCORE EQUIPE 1")
                p=_demande ("SCORE EQUIPE 2")
            if  n>p :z=TourA [num]
            else : z=TourB [num]
            return z
     
    def championnat(Tour1A,Tour1B):
        Tour2A=[]                       # On crée une liste vide
        Tour2B=[]
     
        for k in range (2):                   # On répète l'action 4 fois, synonyme des 4 matchs du TOUR1.
                Tour2A.append (Match(2*k,Tour1A,Tour1B))     # A la liste R1 on y ajoute les équipes gagnantes des matchs précédents.
                Tour2B.append (Match(2*k+1,Tour1A,Tour1B))
        print 'Tour2A',Tour2A,'Tour2B',Tour2B
     
        Tour3A=[]
        Tour3B=[]
     
        for k in range (1):
            Tour3A.append (Match(2*k,Tour2A,Tour2A))
            Tour3B.append (Match(2*k+1,Tour2B,Tour2B))
        print 'Tour3A',Tour3A,'Tour3B',Tour3B
        Result=Match(0,Tour3A,Tour3B)
        return Result
     
    print championnat(['Montpellier','PSG','Manchester United','Arsenal'],['Juventus','Bayern','Dortmund','Barcelone'])
    Second programme:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    from __future__ import division
    from lycee import *
    from Tkinter import *
     
    # voir également http://www.jchr.be/python/tkinter.htm
     
    n_equip=16
    choix=[]
    choix.append(['1-Manchester United',0])
    choix.append(['2-Arsenal',0])
    choix.append(['3-Bayern Munich',0])
    choix.append(['4-Paris',0])
    choix.append(['5-Montpellier',0])
    choix.append(['6-Lyon',0])
    choix.append(['7-Real Madrid',0])
    choix.append(['8-Barcelone',0])
    choix.append(['9-Atletico Madrid',0])
    choix.append(['10-Inter Milan',0])
    choix.append(['11-Milan AC',0])
    choix.append(['12-Dortmund',0])
    choix.append(['13-Chelsea',0])
    choix.append(['14-Manchester City',0])
    choix.append(['15-Naples',0])
    choix.append(['16-Marseille',0])
     
    def affiche_liste(n):
        global listbox, choix
        for k in range (n):
            if choix[k][1]==0: coul1='orange';coul2='black'
            else: coul1='blue';coul2='white'
            listbox.itemconfig(k,background=coul1,foreground=coul2)
            fen.update()
     
    def clic(evt):
        global listbox, choix
        index = listbox.curselection()
        s=int(index[0])
        choix[s][1]=(choix[s][1]+1)%2
        affiche_liste(n_equip)
     
    def impr() :
        global listbox, choix, n_equip
        index = listbox.curselection()
        listbox.get(index)
        s=int(index[0])
        affiche_liste(n_equip)
        print(choix)
        fen.destroy()
     
    fen=Tk()
    listbox = Listbox(fen, width=50,height=n_equip)
    for k in range(n_equip):
        listbox.insert(k,choix[k][0])
    listbox.pack()
    affiche_liste(n_equip)
    listbox.bind('<ButtonRelease-1>',clic)
    bouton = Button(fen, text='Terminé', command=impr)
    bouton.pack()
    fen.mainloop()
    print "Equipes Séléctionnées",[1]

  4. #4
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2013
    Messages : 6
    Points : 0
    Points
    0
    Par défaut Re
    S'il vous plaît pourriez vous me répondre, c'est pour le bac, je dois rendre mon programme lundi, vous m'aideriez fortement ! Cordialement !

  5. #5
    Membre éprouvé

    Homme Profil pro
    Ingénieur
    Inscrit en
    Août 2010
    Messages
    654
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2010
    Messages : 654
    Points : 1 150
    Points
    1 150
    Par défaut
    Salut,

    Ta question est un peu vague. Par fusionner, est-ce que tu entends rassembler dans un même .py les deux codes? Je ne vois pas vraiment où est le problème dans ce cas.

    Faire deux modules séparés (comme c'est le cas) me semble plus judicieux. Je trouve plus propre d'avoir un module gérant l'interface séparé du reste. Dans ce cas tu peux aisément faire appel à l'ensemble des fonctions et classes définies ton premier programme dans le second.

    Exemple simple:

    Tu as program1.py et program2.py

    program1.py:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    def fonction_test()
        # Ne fais rien
        pass
    program2.py:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    import program1
     
    # Appel la fonction "fonction_test" de program1.py
    program1.fonction_test()
    Après ta question était peut être: "comment lancer mes fonctions depuis l'interface créée?" Soit un peu plus explicite sur ce qui te bloque vraiment.

    Bon courage,

    Ju

  6. #6
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2013
    Messages : 6
    Points : 0
    Points
    0
    Par défaut Re
    Enfaite j'aimerai utiliser les équipes choisi dans ma listbox, dans le programme principal, par exemple si je choisi 'Montpellier','Paris', 'Manchester',et 'Bayern' dans la listbox, j'aimerai que le programme principal crée le 'tournoi' pour ces 4 équipes là...

  7. #7
    Expert éminent

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 300
    Points : 6 780
    Points
    6 780
    Par défaut
    Salut,
    Comme dit par Julien N on ne sait pas trop ce que tu appelles fusionner.

    Est-ce que tu veux utiliser la sélection d'équipe dans la listbox pour remplacer le choix aléatoire fait dans le premier script ou bien veux-tu utiliser l'interface pour afficher les résultats des matchs, auquel cas il faudra rajouter quelques widgets pour cela.

    Malgré tout, on peut déjà faire quelques remarques.

    - Ne pas faire d'import inutiles
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    from __future__ import division # A supprimer des deux scripts
    from lycee import *             # A supprimer des deux scripts
    import random                   # A supprimer
    - Rejeter sans pitié de pareilles horreurs:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
            if choix[k][1]==0: coul1='orange';coul2='black'
            else: coul1='blue';coul2='white'
    - Faire respirer le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    def affiche_liste(n):
        global listbox, choix
        for k in range(n):
            if choix[k][1] == 0: 
                coul1='orange'
                coul2='black'
     
            else:
                coul1='blue'
                coul2='white'
     
            listbox.itemconfig(k, background=coul1, foreground=coul2)
            fen.update()
    - Dans le premier script, ligne 35:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
        for k in range (1): # sans doute un 2 à la place du 1
    - Dans le code l'interface, on comprend qu'il s'agit d'une sélection, mais elle n'est pas préservée et le print final:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    print "Equipes Séléctionnées", [1]
    ne print rien du tout d'utile. Si le but est de retourner la liste des équipes sélectionnées, tu peux le faire avec un set, comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    ...
    choix.append(['15-Naples',0])
    choix.append(['16-Marseille',0])
     
    selection = set([])
     
    ...
     
    def clic(evt):
        global listbox, choix, selection
        index = listbox.curselection()
        s = int(index[0])
        selection = selection ^ set([s])
     
    ...
     
    print "Equipes Séléctionnées", selection
    De cette façon il sera possible de désélectionner en cas d'erreur.

    Voilà pour un début.

  8. #8
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2013
    Messages : 6
    Points : 0
    Points
    0
    Par défaut Re
    Dans un premier temps je voudrais utiliser la sélection d'équipe dans la listbox pour remplacer le choix aléatoire fait dans le premier script, et dans un deuxième temps j'aurai aimer faire comme tu viens de le dire, afficher les résultats dans des widgets, mais vu mon niveau je ne pense pas y arriver donc, on va se concentrer sur la première chose !

  9. #9
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2013
    Messages : 6
    Points : 0
    Points
    0
    Par défaut Programme
    J'ai réussi a l'aide de VinsS à récupérer dans une liste les numéros des équipes que j'ai sélectionné dans la listbox, et ensuite j'ai copié/collé le programme qui doit générer les matchs a la suite de celui de la listbox, pour pouvoir utiliser mes numéro d'équipe dans le programme générant les matchs et ainsi afficher a la fin le gagnant parmis les équipes sélectionnés, mais le programme ne fonctionne pas, la listbox et l'autre programme fonctionne toujours de manière indépendante. Cordialement

Discussions similaires

  1. [Python 2.X] Aide Programme Python
    Par KarimAJ dans le forum Général Python
    Réponses: 0
    Dernier message: 19/08/2014, 12h07
  2. Aide programmation python
    Par LauraRL dans le forum Général Python
    Réponses: 3
    Dernier message: 03/01/2014, 15h34
  3. Aide programmation Python; Jeu de blackjack
    Par toniobuteau dans le forum Général Python
    Réponses: 1
    Dernier message: 03/10/2012, 06h21
  4. Aide programmation python récursivité
    Par bibi34 dans le forum Général Python
    Réponses: 2
    Dernier message: 29/11/2010, 00h29
  5. aide programme python!
    Par ano33 dans le forum Général Python
    Réponses: 4
    Dernier message: 28/04/2010, 16h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo