déclaration en python [resolu] - Python - Programmation
Marsh Posté le 07-04-2020 à 15:41:22
Bonjour,
Tu peux utiliser numpy et sa méthode array.fill().
Citation : Sujet : déclarassion en python |
db__ a écrit : cela fonctionne parfaitement mais la déclaration est d'une lourdeur terrible |
Marsh Posté le 07-04-2020 à 16:11:53
je programme habituellement en perl, d'ailleurs je fais un portage perl -> python
en perl on a jamais de message : index out of range
pour éviter ce message en python je suis obligé de remplir le tableau à coup de append avec des valeurs inutiles. il ne semble même pas possible d'ajouter une valeur à un tableau par affectation directe.
même en C, une fois déclaré, un tableau n'a pas besoin d'être initialisé pour y accéder. Je ne vois que ada pour faire encore plus lourd
Marsh Posté le 07-04-2020 à 17:13:55
j'ai trouvé la solution
en fait au lieu d'une affectation, il faut faire un insert
ce qui donne
cbtx = [11]
cbty = [11]
cbtz = [11]
cbte = [11]
cbtn = [11]
cbth = [11]
fliste = "toto"
with open (fliste) as pfe :
ttligne = pfe.readlines ()
for tligne in ttligne :
tchiffre = tligne.split (';')
trou = int (tchiffre[0])
cbtx.insert (trou, float (tchiffre[1]))
cbty.insert (trou, float (tchiffre[2]))
cbtz.insert (trou, float (tchiffre[3]))
cbte.insert (trou, float (tchiffre[4]))
cbtn.insert (trou, float (tchiffre[5]))
cbth.insert (trou, float (tchiffre[6]))
ce qui est beaucoup plus léger
Marsh Posté le 08-04-2020 à 17:42:26
pour moi est déclaration tout le code nécessaire pour préparer une variable à être utilisable donc son initialisation si obligatoire.
en perl c'est simple, il n'y a rien à déclarer.
en C, on doit déclarer mais il n'est pas obligatoire d'initialiser.
en python il faut déclarer et initialiser dans le cas des listes en faisant attention de ne pas faire des tuples
Marsh Posté le 08-04-2020 à 18:13:39
db__ a écrit : en perl c'est simple, il n'y a rien à déclarer. |
Certes, mais "use strict" est plus que conseillé.
edit: Tu veux bien éditer le titre? Ca donne mal aux yeux.
Marsh Posté le 08-04-2020 à 19:18:42
quand on a besoin de use strict c'est qu'on ne sait pas programmer
je veux bien change le titre, j'attends les suggestions
Marsh Posté le 09-04-2020 à 10:34:56
db__ a écrit : |
Juste changer "déclarassion" en "déclaration", ça suffira
Marsh Posté le 09-04-2020 à 10:53:50
Harkonnen a écrit : |
Marsh Posté le 10-04-2020 à 15:38:44
j'espère que monsieur le baron sera satisfait
Marsh Posté le 10-04-2020 à 16:55:52
ça ira pour cette fois, vil sacripan
Marsh Posté le 10-04-2020 à 17:04:50
programmer en python est extrêmement perturbant
vive l'assembleur, un langage simple pour les vieux comme moi
Marsh Posté le 16-04-2020 à 23:19:09
en fait insert ne fonctionne pas comme une affectation mais comme un intercalaire donc ça décale tout ce qui vient après donc le mieux c'est de faire un insert sur le dernier élément du tableau puis faire des affectations. C'est tordu comme méthode.
je pense que python a été conçu par des polytechniciens pour des énarques
Marsh Posté le 07-04-2020 à 15:30:23
Bonjour
soit le code suivant
cbtx = [11]
cbty = [11]
cbtz = [11]
cbte = [11]
cbtn = [11]
cbth = [11]
i = 11
while i :
cbtx.append (0)
cbty.append (0)
cbtz.append (0)
cbte.append (0)
cbtn.append (0)
cbth.append (0)
i -= 1
fliste = "toto"
with open (fliste) as pfe :
ttligne = pfe.readlines ()
for tligne in ttligne :
tchiffre = tligne.split (';')
trou = int (tchiffre[0])
cbtx[trou] = float (tchiffre[1])
cbty[trou] = float (tchiffre[2])
cbtz[trou] = float (tchiffre[3])
cbte[trou] = float (tchiffre[4])
cbtn[trou] = float (tchiffre[5])
cbth[trou] = float (tchiffre[6])
cela fonctionne parfaitement mais la déclaration est d'une lourdeur terrible
n'y-a-t-il pas un moyen d'affecter aléatoirement des données à un tableau ?
faut-il absolument remplir une nouvelle valeur par append ?
Merci
Message édité par db__ le 10-04-2020 à 15:37:05
---------------
je suis né fatigué et fait pour me reposer