Bonsoir,
Ayant un DM d'info à réaliser sur python, je me suis retrouvé dans l’embarra en découvrant que mon école utilise python 2.7 alors que j'ai installé python 3.4 (et pas trouver de moyen rapide de passer au 2.7). Je n'arrive pas à faire marcher une simple classe qui pourtant fonctionnait correctement sur python 2.7 il me semble:
class Graphe ():
def __init__(self) :
self.graphe={}
def inserSommet(self, s):
if s not in self.graphe.keys():
self.gaphe[s]={}
def inserArete(self, x, y, p):
if x!=y:
self.graphe[x][y]=p
self.graphe[y][x]=p
D'après mes recherches, en passant de la version 2.7 à 3.4 : ".keys()", ".values()" et ".items()" ne rapportent plus des listes et il faut donc passer par "list(graphe.keys())". Néanmoins ça ne passe pas et je ne comprend pas pourquoi, avec ce code :
class Graphe ():
def __init__(self) :
self.graphe={}
def inserSommet(self, s):
if s not in list(self.graphe.keys()):
self.gaphe[s]={}
def inserArete(self, x, y, p):
if x!=y:
self.graphe[x][y]=p
self.graphe[y][x]=p
g=Graphe()
g.inserSommet('A')
g.inserSommet('B')
g.inserArete('A','B',2)
print (g.graphe['A']['B'])
print (g.graphe)
J'obtiens une erreur :
self.gaphe[s]={}
AttributeError: 'Graphe' object has no attribute 'gaphe'
Quelqu'un pourrait m'éclairer sur le sujet ? Sans pouvoir définir de classe je ne peux même pas commencer à travailler sur ce que j'ai à faire (et la en plus ce n'est que le début de la classe) 
Message édité le 06 mai 2016 à 21:53:24 par Pierre282