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 :

probleme d'execution d'un programme


Sujet :

Python

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Avril 2017
    Messages : 9
    Points : 4
    Points
    4
    Par défaut probleme d'execution d'un programme
    Voila j'ai un programme qui en appelle un autre

    voila le prorgramme:
    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
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
     
    import lceb
     
     
    mode='123'
    opok2 = False # True lorsque le nombre saisi est correct
    while not opok2: # Tant que le nombre n'est pas parmi 1,2,3
        print("Taper le '1' pour le mode normal, le '2' pour le mode opération et enfin le '3' pour le mode ordre")
        nbbis = input() # On demande un opérateur
        if nbbis in mode: # l'opérateur entré est valide
            opok2 = True
    if nbbis == 1:
        lceb.lceb()
     
    #le programme mode:
    def lire_mode():
     
        mode='123'
        opok = False # True lorsque le nombre saisi est correct
        while not opok: # Tant que le nombre n'est pas parmi 1,2,3
            print("Taper le '1' pour le mode normal, le '2' pour le mode opération et enfin le '3' pour le mode ordre")
            nb = input() # On demande un opérateur
            if nb in mode: # l'opérateur entré est valide
                opok = True
            return nb
     
    #et le programme lceb()
    from random import randint
    from random import shuffle
    import time
    from itertools import permutations, product
     
    def lceb():
     
     
        # Construction de la liste de nombres autorisés
        nombres = []
        nombres.extend(range(1,11)) # Tous les chiffres de 1 à 10
        nombres.extend(range(1,11)) # Tous les chifffres de 1 à 10
        nombres.extend([25,50,75,100]) # une fois chaque multiple de 25 jusqu'à 100
        # Liste contruite par les 3 lignes précédentes
        #nombres = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ,1 ,2 ,3 ,4 ,5 ,6 ,7 ,8 ,9 ,10, 25, 50, 75, 100]
     
        # Liste des 4 opérateurs
        ops = '*+/-'
     
        # Avant le tirage la liste des nombres tirés au sort est vide
        current_list=[]
     
        ##Definition de l'objectif - Tirage des 6 nombres
     
        # Objectif et tirage pour le jeu normal :
        obj=randint(100,999) # 100 <= Objectif < 1000
        current_list = tirage(nombres)
     
     
        # Sauvegarde de la liste initiale pour la recherche automatique de solution
        saved_current_list = list(current_list) 
        ##Début du jeu
        print('\t# Tirage initial :' ,current_list, '- objectif :', obj, '#')
        print()
     
     
        win = False # Le joueur n'a pas encore gagné
        play = True # Le jeu est en cours
        ##Le joueur commence
        coups = 0 # Nombre de coups joués
        while len(current_list)!=1 and not win and play : # tant que la liste n'est pas vide, la solution n'a pas été trouvée, le joueur n'a pas interrompu le jeu...
            print(Joueur, ', entrez votre opération ou "f" si terminé ou "h" pour voir les règles:')
     
            # Lecture du premier terme de l'opération
            nbok = False
            nb1, play, current_list = lire_nombre(play, coups, current_list)              
            if not play: break # Si le joueur a souhaité arreter le jeu
     
            # Lecture de l'opérateur
            op, play = lire_operateur(play, coups, ops)    
            if not play: break
     
            # Lecture du second terme de l'opération
            nbok = False
            nb2, play, current_list = lire_nombre(play, coups, current_list)  
            if not play: break  # Si le joueur a souhaité arreter le jeu
     
            # Calcul de l'opération choisie par le joueur
            res = operations(nb1,nb2,op) 
            if type(res) is str: # division non entière ou soustraction négative
                print('opération non valide, reprenez')
                current_list.append(nb1) # on remet dans la liste les nombres saisis
                current_list.append(nb2)
                continue  
     
            if res == obj: # si la solution est trouvée
                win=True # Le joueur a gagné
     
            # Affichage de l'opération saisie    
            print('\t\t###', nb1, op, nb2, '=' , res, '###' )
            print()    
            coups+=1 # on incrémente le nombre de coups
            current_list.append(res) # on ajoute le résultat courant à la liste
            if (len(current_list) != 1):
                print('\t# Tirage courant :' ,current_list, '- objectif :', obj, '#')
     
     
        if win: # si c'est gagné
            print()    
            print('### GAGNE en ', coups, ' coups : LE COMPTE EST BON !!! ###')
        else: # si c'est perdu
            # on cherche le nombre le plus proche de l'objectif
            # on fabrique une liste qui contient les ecarts avec l'objectif (en valeur absolue)    
            diff = [abs(x - obj) for x in current_list]
            # on cherche le minimum de cette liste
            mini = min(diff)
            print('### PERDU !!! Vous avez atteint ', current_list[diff.index(mini)], '(objectif :', obj,') ###')
     
    #voici les prog annexe au cas ou
    # Lecture de l'opérateur parmi + - / *
    def lire_operateur(play, coups, ops):   
        opok = False # True lorsque l'opérateur saisi est correct
        while not opok: # Tant que l'opérateur n'est pas parmi + - / ! p *
            print('\t', coups+1, " : [* + - /] " '?', end='')
            op = input() # On demande un opérateur
            if op in ops: # l'opérateur entré est valide
                opok = True
            elif op == 'f': #Si f est entré
                play = False #On stoppe le jeu
                break
            elif op == 'h':
                os.startfile("consigne lceb.pdf")
        return op, play      # On retourne l'opérateur choisi et si le jeu continue ou pas
     
    # Lecture d'un nombre           
    def lire_nombre(play, coups, current_list):
        nbok = False # True lorsque le nombre saisi est correct
        while (not nbok): # Tant que le nombre saisi n'est pas correct
            print('\t', coups+1, ' : ', current_list, ' ? ', end='')
            nb1=input() # On demande le nombre
            if nb1 == 'f': # Si f est entré
                play = False # On stoppe le jeu
                break
            if nb1 == 'h':
                os.startfile("consigne lceb.pdf")
                nbok = False
            if nb1.isdigit(): # si la chaine de caractères saisie est un nombre
                nb1 = int(nb1) # Conversion de la chaine de caractère en entier
                if nb1 in current_list: # si ce nombre est dans la liste
                    nbok = True
                    current_list.pop(current_list.index(nb1)) # on retire le nombre de la liste du tirage courant
        return nb1, play, current_list # On retourne le nombre, si le jeu continue ou non, et le tirage courant
     
    # Tirage au sort des 6 nombres proposés
    def tirage(nombres):
        current_list = []
        shuffle(nombres) # on mélange la liste des nombres autorisés dans le jeu
        for i in range(1,7):
            current_list.append(nombres[i]) # on prend les 6 premiers
        return current_list # On retourne les 6 nombres
     
    ## definitions des fonctions (4 opérations)
    def operations(a,b,op):    
        if op =='*': # Multiplication
            return(int(a*b))
        elif op == '/': # Division
            if a%b==0: # si le résultat de la division est entier
                return(int(a/b))
            else:
                return('Division non entière') # Si la division n'est pas entière, on retourne une chaine de caractères
        elif op =='+': # Addition
            return(int(a+b))
        elif op == '-': # Soustraction
            if a>b: # si le résultat de la soustraction est positif
                return(int(a-b))
            else:
                return('Soustraction négative ou nulle') # Si la soustraction est négative, on retourne une chaine de caractères
        else:
            return None

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Salut,

    Si vous ne décrivez pas le problème, çà ne va pas aider... D'autant que vous avez découpé votre programme en "module".

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Avril 2017
    Messages : 9
    Points : 4
    Points
    4
    Par défaut
    en gros j'essaie de faire un mode console sur le programme, j'ai fait deux autres prog aussi
    Et je voudrais les appeler mais ça ne marche pas j'arrive pas à exucter les autre prog dans le prg console

  4. #4
    Expert éminent
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    3 817
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 817
    Points : 7 110
    Points
    7 110
    Par défaut
    Rien que ligne 12 on voit déjà un problème... Vous comparez une chaîne de caractères à un entier.

    Bonne journée.

    P.S Merci de faire un effort sur l'orthographe, même si vous êtes sur votre téléphone, faîtes un effort de relecture.
    Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
    La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Avril 2017
    Messages : 9
    Points : 4
    Points
    4
    Par défaut
    Et comment puis je faire pour appeler un programmer qui se trouve dans un dossier alors que mon programme est dans un autre dossier

  6. #6
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Salut,

    Citation Envoyé par grobient Voir le message
    Et comment puis je faire pour appeler un programmer qui se trouve dans un dossier alors que mon programme est dans un autre dossier
    Comme vous utilisez "import" votre truc n'est pas un programme mais un module. Il y a des choses à savoir pour les utiliser. Et des tutos. ont été écrits pour présenter ce qu'on peut faire (ou pas) et comment...

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

Discussions similaires

  1. Réponses: 2
    Dernier message: 19/03/2010, 16h36
  2. probleme d'execution d'un programme
    Par SYRENE dans le forum C++Builder
    Réponses: 1
    Dernier message: 25/06/2008, 07h37
  3. probleme d'execution d'un programme
    Par back63 dans le forum Visual C++
    Réponses: 11
    Dernier message: 21/11/2006, 22h45
  4. Réponses: 20
    Dernier message: 23/06/2006, 20h49
  5. [Kylix] Probleme d'execution de programmes...
    Par yopziggy dans le forum EDI
    Réponses: 19
    Dernier message: 03/05/2002, 14h50

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