Partage
  • Partager sur Facebook
  • Partager sur Twitter

Les erreurs courantes en Python

Évitons de nous répéter

2 décembre 2015 à 13:06:42

Salut, j'ai besoin d'aide pour faire fonctionner un code.

voila l'erreur qu'il affiche lors de l'execution : 

  File "D:\J0b$\Server\Labo\program.py", line 8
    return "%02X" % n
         ^
IndentationError: expected an indented block


voila le code du programme en python 2.7

from random import *
import sys
import struct
import binascii


def toHex(n):
return "%02X" % n

def toHex8(n):
return "%08X" % n

def Generate_Random_Bytes(x):
rand_bytes = ""
for i in range(0,x):
byte = randint(0,255)
rand_bytes += chr(byte)
return rand_bytes

def WriteFile(filename,data):
with open(filename,"wb") as output:
output.write(data)

def getChar(x):
chars = ""
for n in range(0,8,2):
chars += chr(int(x[n:n+2],16))
return chars

def encryptFile(file_path,key):
with open(file_path,"rb") as file_input:
input = file_input.read()

if len(input) > 0x100000:
print "Error: File size should be less than 1mb."

while len(input)%4 != 0:
input += "\x00"

encrypted_file = ""
for i in range(0,len(input),4):
dword = struct.unpack(">i",input[i:i+4])
dword = dword[0] & 0xFFFFFFFF
if dword == 0:
encrypted_file += toHex8(0).decode("hex")
else:
encrypted_file += toHex8(dword ^ key).decode("hex")
#print encrypted_file
return encrypted_file

je compte sur vous pour m'aider

  • Partager sur Facebook
  • Partager sur Twitter
2 décembre 2015 à 13:19:24

Mad scientist a écrit:

Faudrait peut-être arreter de poster vos problèmes sur ce sujet, qui n'est pas fait pour ça, ce n'est pas un topic poubelle, …

…, ça devient pénible à force.

-
Edité par Mad scientist 2 décembre 2015 à 13:21:41

  • Partager sur Facebook
  • Partager sur Twitter
Un vrai cours de: (C | C++ | Haskell débutant | Haskell intermédiaire | Rust).
11 décembre 2015 à 9:30:03 - Message modéré pour le motif suivant : Message complètement hors sujet


10 janvier 2016 à 2:11:45

Bonjour est ce que quelqu'un aurait une idée de pourquoi j'ai ce problème s'il vous plaît ?
  • Partager sur Facebook
  • Partager sur Twitter
Loic
10 janvier 2016 à 5:52:24

Regarde la première ligne (indice: parenthèses). Il me semble que ce problème a déjà été expliqué ici (la flemme de chercher).

-
Edité par Mad scientist 10 janvier 2016 à 5:52:57

  • Partager sur Facebook
  • Partager sur Twitter
Un vrai cours de: (C | C++ | Haskell débutant | Haskell intermédiaire | Rust).
17 janvier 2016 à 16:00:35

Mad scientist a écrit:

Mad scientist a écrit:

Faudrait peut-être arreter de poster vos problèmes sur ce sujet, qui n'est pas fait pour ça, ce n'est pas un topic poubelle, …

…, ça devient pénible à force.

-
Edité par Mad scientist le 2 décembre 2015 à 13:21:41


lLolLic avant de poser une question, vérifie ton code sinon tu apprendras rien. Première ligne, il manque une parenthèse.
Et enlève ton str, cherche à savoir ce que te renvois un INPUT. Tu comprendras que ton str ne sert pas dans ce cas ci.

Si quelqu'un sait faire une petite fiche sur le "X" object is not subscriptable, je suis preneur !! 
  • Partager sur Facebook
  • Partager sur Twitter

Site personnel : Julien Gidel - AutoMatePHPresentation

17 janvier 2016 à 17:48:03

TypeError / "X" object is not (subscriptable | callable | iterable | …)

Exemple:

>>> x = 25
>>> a = x[0]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'int' object is not subscriptable

Pourquoi Python lève cette exception ?


Python utilise le Duck Typing, c'est à dire que le fait qu'un objet soit utilisable dans un contexte donné est déterminé par les comportements qu'il supporte plus que par son type (par exemple, un objet supportant l'accès à des éléments avec un index (subscriptable), un objet pouvant être appelé, comme une fonction, (callable), …).

L'erreur vient du fait que vous utilisez un objet ne supportant pas certains comportements attendus (par exemple vous essayez d'accéder à un élément ayant un certain index d'un objet de type int, comme dans le code donné en exemple).

Il faut donc s'assurer que les objets que l'on utilise supportent bien les comportements auquels on s'attend.

Comment modifier son code en conséquence ?

En utilisant des objets ayant un type approprié. Si je reprend l'exemple donné plus haut:

>>> x = [25]
>>> a = x[0]
25

Si vous êtes l'auteur de la classe, il faut que vous implémentez les méthodes spéciales nécessaires (voir le Data Model de Python donné dans les liens).


Plus d'informations:

-
Edité par Mad scientist 17 janvier 2016 à 20:04:31

  • Partager sur Facebook
  • Partager sur Twitter
Un vrai cours de: (C | C++ | Haskell débutant | Haskell intermédiaire | Rust).
17 janvier 2016 à 17:49:49

Bon clairement c'est améliorable, dites-moi si il y a des trucs que vous ne trouvez pas clairs.

Sinon jule04, tu as cité les mauvais messages. ^^

  • Partager sur Facebook
  • Partager sur Twitter
Un vrai cours de: (C | C++ | Haskell débutant | Haskell intermédiaire | Rust).
17 janvier 2016 à 20:04:13

TypeError

Exemple:

>>> 5 * range(2)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for *: 'int' and 'range'

Pourquoi Python lève cette exception ?

L'une des opérandes utilisée dans l'expression posant problème n'a pas le type attendu. Voir plus haut pour une explication d'un cas particulier (certainement le plus courant) de cette erreur.

Cette erreur indique souvent que vous essayez de faire quelque chose qui n'a pas de sens, comme dans l'exemple donné plus haut.

Comment modifier son code en conséquence ?

En utilisant une valeur ayant un type compatible avec ce qui est attendu.

>>> 5 * 2
10
  • Partager sur Facebook
  • Partager sur Twitter
Un vrai cours de: (C | C++ | Haskell débutant | Haskell intermédiaire | Rust).
15 février 2016 à 10:38:56

Bonjour a tous, je suis un debutant dans le developpement python. tout d'abord je tiens a m'excuser si je ne suis pas au bon endroit pour poser mon problème. le problème est le suivant: dans le but de faire communiquer deux ordinateurs j'ai fais deux scripts. Le premier,celui du client(qui fonctionne) et le second (server.py), celui du serveur qui me renvoit l'erreur suivante: "bash: ./server.py: /usr/local/bin/python3.5^M: bad interpreter: No such file or directory  "

ma question est: quelle est l'erreur et comment puis-je la resoudre. Merci d'avance
  • Partager sur Facebook
  • Partager sur Twitter
15 février 2016 à 12:14:20

Ce n'est pas vraiment une erreur de Python, mais plutôt bash qui n'a pas réussi à trouver l'interpréteur que tu lui a donné. À mon avis c'est parce que tu as des caractères (peut-être invisibles) en trop (^M).

Sinon on préfère généralement utiliser #!/usr/bin/env python3.5 pour localiser l'interpréteur de manière un peu plus portable. Parce que moi, mon interpréteur se trouve dans /usr/bin, pas /usr/local/bin.

-
Edité par Mad scientist 15 février 2016 à 12:18:59

  • Partager sur Facebook
  • Partager sur Twitter
Un vrai cours de: (C | C++ | Haskell débutant | Haskell intermédiaire | Rust).
15 février 2016 à 13:27:02

tout d'abord merci pour le tuyau j'ai essayer et le script me renvoit : " : No such file or directory "
  • Partager sur Facebook
  • Partager sur Twitter
15 février 2016 à 13:46:13

Tu as quoi en faisant env python3.5 (avec bash) ? Si tu n'as rien (No such file or directory), essaye de faire export PATH=$PATH:/usr/local/bin puis de relancer ton programme, ou bien env PATH=$PATH:/usr/local/bin ./server.py.

-
Edité par Mad scientist 15 février 2016 à 13:48:58

  • Partager sur Facebook
  • Partager sur Twitter
Un vrai cours de: (C | C++ | Haskell débutant | Haskell intermédiaire | Rust).
15 février 2016 à 14:08:50

Du coup j'hésitais entre faire une petite fiche pour ton problème ou pas, vu que ce n'est pas un problème uniquement lié à Python, mais bon.

Bad interpreter: No such file or directory

Exemple:

main.py:

#!/usr/local/bin/python3.5

# Du code
~ $ ./main.py
bash: ./main.py: /usr/local/bin/python3.5: bad interpreter: No such file or directory
~ $

D'où vient cette erreur ?

L'interpréteur que vous avez spécifié après le shebang n'existe pas sur votre système.

Comment modifier son code en conséquence ?

Il faut donner le chemin vers un interpréteur qui est présent sur votre système.

#!/usr/bin/python3.5

# Du code

Il existe une solution plus flexible, qui se base sur l'utilitaire env:

#!/usr/bin/env python3.5

# Du code

Avec cette solution, le premier interpréteur trouvé dans les dossiers présents dans la variable d'environnement $PATH sera lancé.

-
Edité par Mad scientist 15 février 2016 à 14:15:22

  • Partager sur Facebook
  • Partager sur Twitter
Un vrai cours de: (C | C++ | Haskell débutant | Haskell intermédiaire | Rust).
15 février 2016 à 18:09:24

Merci Mad

en faisant " env python3.5 " en bash, celui-ci lance l'interpreteur python3.5

-
Edité par n1116 15 février 2016 à 18:14:13

  • Partager sur Facebook
  • Partager sur Twitter
15 février 2016 à 19:13:13

n1116 a écrit:

en faisant " env python3.5 " en bash, celui-ci lance l'interpreteur python3.5

Oui.

-
Edité par Mad scientist 15 février 2016 à 19:13:53

  • Partager sur Facebook
  • Partager sur Twitter
Un vrai cours de: (C | C++ | Haskell débutant | Haskell intermédiaire | Rust).
18 février 2016 à 13:23:37

Bonjour a tous j'ai finalement resolus le problème Mad tu avais raison c'etait un problème du bash le fichier etait au format dos donc fallait le convertir

au format unix en tapant la commande suivante dans le bash : dos2unix server.py

merci

-
Edité par n1116 18 février 2016 à 13:24:44

  • Partager sur Facebook
  • Partager sur Twitter
18 février 2016 à 13:49:11

Ce qui explique le caractère invisible (^M -> Carriage return, retour à la ligne au format DOS -> Carriage return + Line feed, au format Unix -> Line feed).

Par contre vu que tu ne postait plus de réponse je pensais que ton problème était résolu, du coup je t'avais un peu oublié, désolé. :-°

  • Partager sur Facebook
  • Partager sur Twitter
Un vrai cours de: (C | C++ | Haskell débutant | Haskell intermédiaire | Rust).
18 février 2016 à 14:45:52

pas grave merci tout de même
  • Partager sur Facebook
  • Partager sur Twitter
18 février 2016 à 21:45:39

bonsoir a tous, en poursuivant mon apprentissage de python je suis tombé sur les Threads. Dans le but de resoudre le problème de fonction bloquantes,

et toujour dans la programmation reseau j'ai creé deux threards qui seront executés côté client. Le soucis c'est que malgré le soin que je porte a la vérification des indentations j'ai le message suivant:

class Threadreception(Thread):
    ^
IndentationError: expected an indented block

voici le code des threads:

class Threadreception(Thread):
    def __init__(self,connexion):
        Thread.__init__(self)
        self.connexion = connexion
           
    def run(self):
        while True:
            message_r = self.connexion.recv(1024).decode()
            print(message_r)
            if message_r in ["fin",""]:
                self.close()
               
                   
class Threademission(Thread):
    def __init__(self,connexion):
        Thread.__init__(self)
        self.connexion = connexion
           
    def run(self):
        while True:
            message_s = input("message: ")
            self.connexion.send(message_s.encode())
            if message_s in ["fin",""]:
                self.close()

ma question est : pourquoi j'obtiens ce message alors que les indentations sont (a mon avis) respectées?

  • Partager sur Facebook
  • Partager sur Twitter
18 février 2016 à 23:11:35

Tu te trompes d'endroit pour poster. Ici c'est un lieu où on vient simplement regarder les erreurs courantes. Si tu ne trouves pas la réponse, alors c'est sur le forum principal qu'il faut poster ta question.
  • Partager sur Facebook
  • Partager sur Twitter
Précepte: Le mieux est l'ennemi du bien
19 février 2016 à 0:03:51

Re-bonjour, dans le cadre d'un projet en ISN on a décidé de faire une petite calculatrice qui fait étude de fonction, statistiques etc... On y a intégré une interface graphique en .py. Le soucis c'est que j'aimerais lancer mon interface graphique depuis mon application est ce que vous pouvez m'aider svp? J'ai cherché sur google mais je ne retombe que sur des erreurs. Prenons un exemple. Si mon fichier a pour chemin 

C:\\Users\\Moi\\Documents\\Visual Studio\\Projets\\Exercice 1.py

quelles lignes de commande devrais je intégrer pour ouvrir le fichier dans une console python ? Je suis débutant alors âmes charitables aidez moi :D

Merci.

-
Edité par lLolLic 19 février 2016 à 0:04:12

  • Partager sur Facebook
  • Partager sur Twitter
Loic
19 février 2016 à 0:21:06

@Loic: J'aimerai bien t'aider, mais apparemment tu ne sait pas lire :o. REGARDE LE MESSAGE JUSTE AVANT LE TIEN
  • Partager sur Facebook
  • Partager sur Twitter
Précepte: Le mieux est l'ennemi du bien
Anonyme
19 février 2016 à 0:23:41

Ô pauvre petit post-it, piétiné par ces ignares illettrés - incapables qu'ils sont, de lire les règles d'un forum ou ne serait-ce que le premier message d'un sujet - et abandonné par la modération... smiley

  • Partager sur Facebook
  • Partager sur Twitter
19 février 2016 à 2:31:40

Je n'avais pas lu le dernier message en effet. Mais c'est cool d'avoir redirigé un "ignare illétré". Bonne continuation
  • Partager sur Facebook
  • Partager sur Twitter
Loic
24 février 2016 à 14:31:49

Bonjour à tous, j'ai une erreur dans mon petit programme. Je reproduisais l'exemple du cours sur les structures conditionnels, forme complète if, else, et elif dont voici l'exemple : 

>>> a = 5

>>> if a > 0: # Si a est positif

...    print("a est positif.")

... if a < 0: # a est négatif

...    print("a est négatif.")

Mais le problème c'est que dès je fais entrée après la ligne 3 cela me met une erreur et je ne comprend pas puisque dans la ligne 3 que j'ai recopié je vois pas ce qui pourrais gêner. Voici ce que cela me met :   

J'ai bien compris qu'il y avait une erreur de syntaxe à la ligne 3 mais je ne vois pas du tout laquelle. 

Je vous remercie par avance de vos explications ^^ 

-
Edité par thuringwethilmit 24 février 2016 à 14:36:32

  • Partager sur Facebook
  • Partager sur Twitter
11 mars 2016 à 2:09:21

Bonjour à tous !!

Je suis en apprentissage de python.

Voici un bout très simple de code que j'ai écrit:

# Programme écrit en Python3   
# Il permet de savoir si trois longueur peuvent former un triangle et les caractéristique de celui-ci (rectangle, isocèle ou équilatéral)

print("Veuillez saisir les données suivantes : ")

a = int(input("Premier coté : "))
b = int(input("Deuxième coté : "))
c = int(input("Troisième coté : "))


s1 = (a ** 2) + (b ** 2)
s2 = (a ** 2) + (c ** 2)
s3 = (b ** 2) + (c ** 2)

t = a ** 2
t1 = b ** 2
t2 = c ** 2


if (a < 0):
    a = int(input("Veuillez de nouveau entré ce coté mais positif cette fois : "))
elif (b < 0):
    b = int(input("Veuillez de nouveau entré ce coté mais positif cette fois : "))
elif (c < 0):
    c = int(input("Veuillez de nouveau entré ce coté mais positif cette fois : ")



if a == b or a == c or b == c :  <== ICI
    print("Ce triangle est isocèle.")
elif (a == b) & (a == c):
    print("Ce triangle est équilatéral.")
elif (s1 == t2) or (s2 == t1) or (s3 == t):
    print("Ce triangle est rectangle.")

Lorsque j'exécute mon programme, l'interpréteur python me dit, là où j'ai écris ICI, SyntaxError : Invalid Syntax

Je ne comprends pas pourquoi.

Pouvez vous m'aider ?

  • Partager sur Facebook
  • Partager sur Twitter
11 mars 2016 à 3:10:56

Problème déjà traité ici.
  • Partager sur Facebook
  • Partager sur Twitter
Un vrai cours de: (C | C++ | Haskell débutant | Haskell intermédiaire | Rust).
9 mai 2016 à 9:33:54

Bonjour à tous, j'ai dû créer un programme pour un projet bac isn

or dès la 1ere classe du programme l'image arriere plan (que nous avons crée avec le logiciel gimp) ne s'affiche pas, et nous ne trouvons pas l'erreur cela marque "   raise RuntimeError('Too early to create image')

quelqu'un saurait il nous aider sur ce qu'il y aurait à transformer

from tkinter import *
import random
import time

class Jeu:
    def _init_(self):
        self.tk = Tk()
        self.tk.title("albert s'echappe")
        self.tk.resizable(0, 0)
        self.tk.wm_attributes("-topmost", 1)
        self.canvas = Canvas(self.tk, width=500, height=500, \
                highlightthickness=0)
        self.canvas.pack()
        self.tk.update()
        self.hauteur_canevas = 500
        self.largeur_canevas = 500
        self.ap = PhotoImage(file="arriere-plan.gif")
        larg = self.ap.width()
        haut = self.ap.height()
        for x in range(0, 5):
            for y in range(0, 5):
                self.canvas.create_image(x * larg, y * haut, \
                        image=self.ap, anchor='nw')
        self.creations = []
        self.enfonction = True

    def boucle_principale(self):
        while 1:
            if self.enfonction == True:
                for creation in self.creations:
                    creation.deplacer()
                self.tk.update_idletasks()
                self.tk.update()
                time.sleep(0.01)

class Coords:
    def _init_(self, x1=0, y1=0, x2=0, y2=0):
        self.x1=x1
        self.y1=y1
        self.x2=x2
        self.y2=y2

def dans_x(co1, co2):
    if (co1.x1 > co2.x1 and co1.x1 < co2.x2) \
            or(co1.x2 > co2.x1 and co1.x2 < co2.x2) \
            or(co2.x1 > co1.x1 and co2.x1 < co1.x2) \
            or(co2.x2 > co1.x1 and co2.x2 < co1.x1):
        return True
    else:
        return False

def dans_y(co1, co2):
    if (co1.y1 > co2.y1 and co1.y1 < co2) \
            or(co1.y2 > co2.y1 and co1.y2 < co2.y2) \
            or(co2.y1 > co1.y1 and co2.y1 < co1.y2) \
            or(co2.y2 > co1.y1 and co2.y2  <co1.y1):
        return True
    else:
        return False

def collision_gauche(co1, co2):
    if dans_y(co1, co2):
        if co1.x1 <= co2.x2 and co1.x1 >= co2.x1:
            return True
    return False

def collision_droite(co1, co2):
    if dans_y(co1, co2):
        if co1.x2 >= co2.x1 and co1.x2 <=co2.x2:
            return True
    return False

def collision_haut(co1, co2):
    if dans_x(co1, co2):
        if co1.y1 <= co2.y2 and co1.y1 >= co2.y1:
            return True
    return False

def collision_bas(y, co1, co2):
    if dans_x(co1, co2):
        y_calc = co1.y2 + y
        if y_calc >= co2.y1 and y_calc <= co2.y2:
            return True
    return False

class Creation:
    def _init_ (self, jeu):
        self.jeu = jeu
        self.finjeu = False
        self.coordonnees = None
    def deplacer(self):
        pass
    def coords(self):
        return self.coordonnees

class CreationPlateForme(Creation):
    def _init_(self, jeu, image_photo, x, y, largeur, hauteur):
        Creation._init_(self, jeu)
        self.image_photo = image_photo
        self.image = jeu.canevas.create_image(x, y, \
                image=self.image_photo, anchor='nw')
        self.coordonnees = Coords(x, y, x + largeur, y + hauteur)

class CreationPersonnage(Creation):
    def _init_(self, jeu):
        Creation._init_(self, jeu)
        self.images_gauche = [
            PhotoImage(file="fil-G1.gif"),
            PhotoImage(file="fil-G2.gif"),
            PhotoImage(file="fil-G3.gif")
        ]
        self.images_droite = [
            PhotoImage(file="fil-D1.gif"),
            PhotoImage(file="fil-D2.gif"),
            PhotoImage(file="fil-D3.gif")
        ]
        self.image = jeu.canvas.create_image(200, 470, \
            image=self.images_gauche[0], anchor='nw')
        self.x = -2
        self.y = 0
        self.image_courante = 0
        self.ajout_image_courante = 1
        self.compte_sauts = 0
        self.derniere_heure = time.time()
        self.coordonnees = Coords()
        jeu.canvas.bind_all('<KeyPress-Left>', self.tourner_a_gauche)
        jeu.canvas.bind_all('<KeyPress-Right>', self.tourner_a_droite)
        jeu.canvas.bind_all('<space>', self.sauter)

def tourner_a_gauche(self, evt):
    if self.y == 0:
        self.x = -2

def tourner_a_droite(self, evt):
    if self.y == 0:
        self.x = 2

def sauter(self, evt):
    if self.y == 0:
        self.y = -4
        self.compte_sauts = 0

def animer(self):
    if self.x != 0 and self.y == 0:
        if time.time() - self.derniere_heure > 0.1:
            self.derniere_heure = time.time()
            self.image_courante += self.ajout_image_courante
            if self.image_courante >= 2:
                self.ajout_image_courante = -1
            if self.image_courante <=0:
                self.ajout_image_courante = 1
    if self.x < 0:
        if self.y != 0:
            self.jeu.canvas.itemconfig(self.image, \
                image=self.images_gauche[2])
        "else:"
        self.jeu.canvas.itemconfig(self.image, \
                image=self.images_gauche[self.image_courante])
    elif self.x > 0:
                if self.y != 0:
                    self.jeu.canvas.itemconfig(self.image, \
                    image=self.image_droite[2])
                else:
                    self.jeu.canvas.itemconfig(self.image, \
                        image=self.images_droite[self.image_courante])

def coords(self):
    xy = self.jeu.canvas.coords(self.image)
    self.coordonnees.x1 = xy[0]
    self.coordonnees.y1 = xy[1]
    self.coordonnees.x2 = xy[0] + 27
    self.coordonnees.y2 = xy[1] + 30
    return self.coordonnees

def deplacer(self):
    self.animer()
    if self.y < 0:
        self.compte_sauts += 1
        if self.compte_sauts > 20:
            self.y = 4
    if self.y > 0:
        self.compte_sauts -= 1
    co = self.coords()
    gauche = True
    droite = True
    haut = True
    bas = True
    tombe = True
    if self.y > 0 and co.y2 >= self.jeu.hauteur_canevas:
        self.y = 0
        bas = False
    elif self.y < 0 and co.y1 <= 0:
        self.y = 0
        haut = False
    if self.x > 0 and co.x2 >= self.jeu.largeur_canevas:
        self.x = 0
        droite = False
    elif self.x < 0 and co.x1 <= 0:
        self.x = 0
        gauche = False
    for creation in self.jeu.creations:
        if creation == self:
            continue
        co_creation = creation.coords()
        if haut and self.y < 0 and collision_haut(co, co_creation):
            self.y = -self.y
            haut = False
        if bas and self.y > 0 \
                and collision_bas(self.y, co, co_creation):
            self.y = co_creation.y1 - co.y2
            if self.y < 0:
                self.y = 0
            bas = False
            haut = False
        if bas and tombe and self.y == 0 \
                and co.y2 < self.jeu.hauteur_canevas \
                and collision_bas(1, co, co_creation):
            tombe = False
        if gauche and self.x < 0 and collision_gauche(co, co_creation):
            self.x = 0
            gauche = False
            if creation.finjeu:
                self.jeu.enfonction = False
        if droite and self.x > 0 and collision_droite(co, co_creation):
            self.x = 0
            droite = False
            if creation.finjeu:
                self.jeu.enfonction = False
    if tombe and bas and self.y == 0 \
            and co.y2 < self.jeu.hauteur_canevas:
        self.y = 4
    self.jeu.canvas.move(self.image, self.x, self.y)

class CreationPorte(Creation):
    def _init_(self, jeu, image_photo, x, y, largeur, hauteur):
        Creation._init_(self, jeu)
        self.image_photo = image_photo
        self.image = jeu.canvas.create_image(x, y, \
                image=self.image_photo, anchor='nw')
        self.coordonnees = Coords(x, y, x + (largeur / 2), y + hauteur)
        self.finjeu = True

jeu = Jeu()
plateforme1 = CreationPlateForme(jeu, PhotoImage(file="plate-forme1.gif"), \
    0, 480, 100, 10)
plateforme2 = CreationPlateForme(jeu, PhotoImage(file="plate-forme1.gif"), \
    150, 440, 100, 10)
plateforme3 = CreationPlateForme(jeu, PhotoImage(file="plate-forme1.gif"), \
    300, 400, 100, 10)
plateforme4 = CreationPlateForme(jeu, PhotoImage(file="plate-forme1.gif"), \
    300, 160, 100, 10)
plateforme5 = CreationPlateForme(jeu, PhotoImage(file="plate-forme2.gif"), \
    175, 350, 66, 10)
plateforme6 = CreationPlateForme(jeu, PhotoImage(file="plate-forme2.gif"), \
    50, 300, 66, 10)
plateforme7 = CreationPlateForme(jeu, PhotoImage(file="plate-forme2.gif"), \
    170, 120, 66, 10)
plateforme8 = CreationPlateForme(jeu, PhotoImage(file="plate-forme3.gif"), \
    45, 60, 66, 10)
plateforme9 = CreationPlateForme(jeu, PhotoImage(file="plate-forme3.gif"), \
    170, 250, 32, 10)
plateforme10 = CreationPlateForme(jeu, PhotoImage(file="plate-forme3.gif"), \
    230, 200, 32, 10)
jeu.creations.append(plateforme1)
jeu.creations.append(plateforme2)
jeu.creations.append(plateforme3)
jeu.creations.append(plateforme4)
jeu.creations.append(plateforme5)
jeu.creations.append(plateforme6)
jeu.creations.append(plateforme7)
jeu.creations.append(plateforme8)
jeu.creations.append(plateforme9)
jeu.creations.append(plateforme10)
porte = CreationPorte(jeu, PhotoImage(file="portel.gif"), 45, 30, 40, 35)
jeu.creations.append(porte)
personnage = CreationPersonnage(jeu)
jeu.creations.append(personnage)
jeu.boucle_principale()

  • Partager sur Facebook
  • Partager sur Twitter
9 mai 2016 à 9:35:59

le programme consiste en un personnage qui saute de plateforme en plateforme afin d'atteindre une sortie situé en haut du canevas
  • Partager sur Facebook
  • Partager sur Twitter