Bonsoir,

Je suis à l'université et nous avons actuellement un projet en cours, qui consiste à créer un programme en Python permettant de déterminer les coefficients stoechiométriques d'une équation chimique (en respectant bien évidemment les règles de conservation de la matière). On utilise pour cela la méthode de Gauss-Jordan. J'ai d'ailleurs bien vu le sujet de discussion précédent, traitant du même algorithme, mais je poste ici car le sujet a déjà été classé comme résolu.

Les données nécessaires sont fournies via les arguments entrés en ligne de commande.

Le programme se lance après avoir entré dans la console le code suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
python nom_fichier.py precision nbLignes nbColonnes liste_des_valeurs
liste_des_valeurs correspondant à l'ensemble des coefficients de la matrice de départ, séparés par des espaces.

Je commence donc par recueillir les différentes informations avec le code suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
import sys
precision = int(sys.argv[1])
nb_lignes = int(sys.argv[2])
nb_column = int(sys.argv[3])
valeurs = map(float,sys.argv[4:])
Jusque là, pas de problème
Je définis ensuite une fonction qui me permet de générer la matrice de travail :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
def create_matrix(valeurs, nb_column):
    """La fonction genere une matrice de travail dont les coefficients proviennent des valeurs entres en ligne de commande et etendue avec la matrice des zeros"""
    i = 0
    matrix = []
    while i in range(len(valeurs)):
        ligne = valeurs[i : i + nb_column]
        ligne.append(0.0)    # On ajoute un 0 en fin de chaque ligne, afin d'etendre la matrice de depart avec la matrice des zeros
        matrix.append(ligne)
        i += nb_column
    print matrix
 
print create_matrix(valeurs, nb_column)
C'est là que les problèmes arrivent puisque quand, pour vérifier ma fonction, je teste le programme, voici ce que la console (cmd.exe) m'affiche :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
C:\Users\***>C:\Python27\python.exe C:\Python27\projetinfo.py 1000 3 3 1 2 3
 4 5 6 7 8 9
[[1.0, 2.0, 3.0, 0.0], [4.0, 5.0, 6.0, 0.0], [7.0, 8.0, 9.0, 0.0]]
None
Je ne comprends pas d'où vient ce "None", il est d'autant plus gênant qu'il m'empêche de continuer à coder. J'aimerais savoir comment m'en débarrasser.

De plus, quand je teste la fonction dans la console IDLE de Python, la fonction ne me renvoie pas de none
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
>>> def create_matrix(valeurs, nb_column):
    """La fonction genere une matrice de travail dont les coefficients proviennent des valeurs entres en ligne de commande et etendue avec la matrice des zeros"""
    i = 0
    matrix = []
    while i in range(len(valeurs)):
        ligne = valeurs[i : i + nb_column]
        ligne.append(0.0)    # On ajoute un 0 en fin de chaque ligne, afin d'etendre la matrice de depart avec la matrice des zeros
        matrix.append(ligne)
        i += nb_column
    print matrix
 
 
>>> create_matrix([1,2,3,4,5,6,7,8,9],3)
[[1, 2, 3, 0.0], [4, 5, 6, 0.0], [7, 8, 9, 0.0]]
Mon PC tourne sous Windows Vista SP1 et j'utilise Python 2.7

J'espère que vous pourrez m'éclairer,

Merci d'avance,
Imazer