Bonjour à tous,

Ayant été très bien informé la précédente fois que j'ai demandé de l'aide ici, je reviens à nouveau à la charge.

On m'a donné la mission d'écrire un petit programme en python qui fait appel à des fonctions en C. Ne connaissant rien du tout au python je bute sur des bêtises et étant pressé par le temps, il me faut un coup de pouce

Voici le code C:

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
 
typedef struct
{
    int cols;      
    int rows;      
    bool**dot;     
} matrix;
 
int show(const matrix* data)
{
	int i,j;
 
	for( i = 0 ; i < data->rows ; i++ )
	{
		for ( j = 0 ; j < data->cols ; j++ )
		{
			if( data->dot[i][j] == true )
				printf("true ");
			else	
				printf("false ");
		}
		printf("\n");
	}
        return 1;
}
Et le code Python correspondant

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
 
from c_types import *
 
def myFunction(py_matrix):
 
	class Matrix(Structure):
		_fields_ = [("cols",c_int),
                            ("rows",c_int),
                            ("dot",POINTER(POINTER(c_bool)))]
 
	c_matrix = Matrix()
	c_matrix.cols = c_int(len(py_matrix))
	c_matrix.rows = c_int(len(py_matrix[0]))
 
	for i in range(c_matrix.rows):
    	        for j in range(c_matrix.cols):
       		        c_matrix.dot[i][j] = py_matrix[i][j]
 
	return show(c_matrix)
La ou ça pose soucis c'est à la ligne 17 dans le code python.

L'idée serait de pouvoir écrire en python
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
mat = [[0,1,1] , [0,0,1] ]
myFunction(mat)
1 correspondant à vrai et 0 à faux (Non vous n'êtes pas idiot c'est le reglement qui dit d'être clair ^^).

Comment je peux me débrouiller pour copier ma matrice en python vers ma structure qui sera adéquat pour ma fonction C ?

Merci de vos réponses, et bon dev !