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 :
liste_des_valeurs correspondant à l'ensemble des coefficients de la matrice de départ, séparés par des espaces.
Code : Sélectionner tout - Visualiser dans une fenêtre à part python nom_fichier.py precision nbLignes nbColonnes liste_des_valeurs
Je commence donc par recueillir les différentes informations avec le code suivant :
Jusque là, pas de problème
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:])
Je définis ensuite une fonction qui me permet de générer la matrice de travail :
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
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)
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.
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
De plus, quand je teste la fonction dans la console IDLE de Python, la fonction ne me renvoie pas de none
Mon PC tourne sous Windows Vista SP1 et j'utilise Python 2.7
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]]
J'espère que vous pourrez m'éclairer,
Merci d'avance,
Imazer
Partager