[resolu] déclaration en python

déclaration en python [resolu] - Python - Programmation

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 ?  [:psychokwak]  
Merci

Message cité 1 fois
Message édité par db__ le 10-04-2020 à 15:37:05

---------------
je suis né fatigué et fait pour me reposer
Reply

Marsh Posté le 07-04-2020 à 15:30:23   

Reply

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


 :??:


---------------
C'est en écrivant n'importe quoi qu'on devient n'importe qui.
Reply

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


---------------
je suis né fatigué et fait pour me reposer
Reply

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


---------------
je suis né fatigué et fait pour me reposer
Reply

Marsh Posté le 08-04-2020 à 14:49:33    

P.S.
Déclaration !


---------------
http://www.ypikay.com
Reply

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


---------------
je suis né fatigué et fait pour me reposer
Reply

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é. :o

 

edit: Tu veux bien éditer le titre? Ca donne mal aux yeux.


Message édité par rat de combat le 08-04-2020 à 18:14:05
Reply

Marsh Posté le 08-04-2020 à 19:18:42    

quand on a besoin de use strict c'est qu'on ne sait pas programmer :D
je veux bien change le titre, j'attends les suggestions

Message cité 1 fois
Message édité par db__ le 08-04-2020 à 19:19:11

---------------
je suis né fatigué et fait pour me reposer
Reply

Marsh Posté le 09-04-2020 à 10:34:56    

db__ a écrit :


je veux bien change le titre, j'attends les suggestions


Juste changer "déclarassion" en "déclaration", ça suffira


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 09-04-2020 à 10:53:50    

Harkonnen a écrit :


Juste changer "déclarassion" en "déclaration", ça suffira


 
 :lol:  :lol:  


---------------
Configurations type du moment : https://forum.hardware.fr/hfr/Hardw [...] 1331_1.htm  https://www.jouannetphotographe.com
Reply

Marsh Posté le 09-04-2020 à 10:53:50   

Reply

Marsh Posté le 10-04-2020 à 15:38:44    

j'espère que monsieur le baron sera satisfait :sol:


---------------
je suis né fatigué et fait pour me reposer
Reply

Marsh Posté le 10-04-2020 à 16:55:52    

ça ira pour cette fois, vil sacripan


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 10-04-2020 à 17:04:50    

programmer en python est extrêmement perturbant :D
vive l'assembleur, un langage simple pour les vieux comme moi :sol:


---------------
je suis né fatigué et fait pour me reposer
Reply

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 :sol:


Message édité par db__ le 16-04-2020 à 23:19:45

---------------
je suis né fatigué et fait pour me reposer
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed