Bonjour,
J'ai un petit problème sur un projet de résolution du jeu du taquin étant débutant.
Voici ma fonction "invert" qui me permet d'inverser 2 cases, a_table est une liste de liste, cell1 et cell2 des listes de longueur 2 (coordonées)
Le problème est que lorsque je fais intervenir cette fonction, elle me renvoie bien la bonne liste avec les bonnes cases inversées, mais modifie aussi la liste mise en entrée.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 def invert(a_table,cell1,cell2): table=a_table mem=table[cell1[0]][cell1[1]] table[cell1[0]][cell1[1]]=table[cell2[0]][cell2[1]] table[cell2[0]][cell2[1]]=mem return(table)
Ici les 2 prints ne renvoient pas le même résultat avec table devenu égal à new_table.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 print(table) new_table=invert(table,cell1,cell2) print(table)
Quand j'insère des prints dans "invert", a_table se modifie en même temps que table. Je ne vois pas pourquoi et de plus en quoi cela influe sur mon argument d'entrée en dehors de la fonction "invert", je pensais que ce qui se passait dans une fonction était délimité à cette fonction.
A quoi cela est dû, où est mon erreur?, comment remédier à cela?
Merci beaucoup,
Partager