Bonjour,
Ce bout de programme récursif avec la variable locale truc fonctionne comme je le veux
J'aurais en fait besoin de remplacer la variable truc (une valeur entière), par une classe dont la valeur entière serait truc.reste. À cause de la récursivité, je crée une copie de l'instance truc2 en truc, histoire de "localiser" l'instance. Pourtant ça ne marche pas. Ci-dessous le programme qui ne marche pas :
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 compteur=0 def recurs(truc,chemin): global compteur if truc==0 and chemin==5: compteur+=1 print("fin") elif truc==0 and chemin!=5: compteur+=1 print("reste nul mais pas bon chemin") else: for i in range(0,2): compteur+=1 print(truc, " ", chemin," ",i," compteur : ", compteur) recurs(truc-1, chemin+i) recurs(9,0)
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 import copy global compteur compteur=0 class Objet: def __init__(self,reste): self.reste=reste def coup(truc): truc.reste-=1 return truc truc=Objet(9) def recurs(truc2,chemin): truc=copy.copy(truc2) global compteur if truc.reste==0 and chemin==5: compteur+=1 print("fin") elif truc.reste==0 and chemin!=5: compteur+=1 print("reste nul mais pas bon chemin") else: for i in range(0,2): compteur+=1 print(truc.reste, " ", chemin," ",i," compteur : ", compteur) recurs(coup(truc), chemin+i) recurs(truc,0)
Partager