CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Python - mettre le contenu d'une liste a une exponentielle précise

mistoen
mistoen
Niveau 9
14 octobre 2015 à 22:13:38

Bonjour à tous,

J'apprends la programmation en Python et je fais face à un petit souci.
La situation est la suivante:
Je dois modéliser (matplotlib.pyplot) le résultat d'une équation contenant deux éléments que je dois faire varier.
Je crée donc deux listes vides, pour lesquelles je lance chacune une petite for loop afin de générer 4 nombres qui seront ensuite placés dans lesdites listes, puis transférées dans un dictionnaire. Je ferais plus tard appel à ce dictionnaire dans l'équation que je modélise.
Je dois, pour faire les choses correctement, et ce au sein de la for loop, transformer les valeurs insérées dans ma liste en exponentielles -3.

Le problème se situe ici: je ne trouve pas de solution pour transformer toutes les valeurs x contenues dans une liste en des valeurs x toutes à une exponentielle précise.

Ci-dessous mes lignes de code, afin de représenter mon idée (l'erreur que j'obtiens ici est la suivante: "can't multiply sequence by non-int of type 'float'") :

import numpy as np
import math as mt

Ci = []
Co = []
for ci in range(100, 400, 80):
Ci.append(ci)
Ci[-1] = Ci*mt.exp(-3)

for co in range(150, 450, 80):
Co.append(co)
Ci[-1] = Ci*mt.exp(-3)

dico_ion_K = {"z":1, "ci":Ci, "co":Co, "p":1.96e-10}
dico_ion_Ca = {"z":1, "ci":Ci, "co":Co, "p":0.79e10-5}

Une idée ?

mistoen
mistoen
Niveau 9
14 octobre 2015 à 22:22:39

J'ai pas pensé à vérifier l'indentation sur mon c/c mais ma boucle est indentée correctement dans mon fichier.

Carapucelle
Carapucelle
Niveau 17
14 octobre 2015 à 22:24:48

Bah déjà Ci[-1] ça existe pas

mistoen
mistoen
Niveau 9
14 octobre 2015 à 22:31:41

Si, Ci est ma liste, Ci[-1] est la dernière entrée dans ma liste. C'est la même chose que faire Ci[0], Ci[1], etc.
Qui de toute façon est retourné correctement si je fais un print.

Carapucelle
Carapucelle
Niveau 17
14 octobre 2015 à 22:40:07

Bah tu m'apprends quelque chose. :hap:

Mais donc dans ta boucle tu transformes ta liste en liste de liste ?

Je comprends pas ce que t'essayes de faire. :( A quelle ligne ça te dit que y'a une erreur ?

Pseudo supprimé
Pseudo supprimé 14 octobre 2015 à 22:41:51

[ x**constante for x in liste ] c'est ça que tu veux faire non ?

mistoen
mistoen
Niveau 9
14 octobre 2015 à 22:47:42

L'erreur se situe au niveau de la transformation du contenu de ma liste Ci:
Ci[-1] = Ci*mt.exp(-3)

J'avais pas pensé à ça _bluepoint, j'essaie de suite.

Edit:

for ci**np.exp-3 in range(100, 400, 80):
Ci.append(ci)

A la ligne 'for ci**np.exp-3 in range(100, 400, 80):'
SyntaxError: can't assign to operator

Message édité le 14 octobre 2015 à 22:49:06 par mistoen
Carapucelle
Carapucelle
Niveau 17
14 octobre 2015 à 23:15:45

Mais je comprends pas ce que tu cherches à avoir dans ta liste au final ? [100*exp(-3),180*exp(-3), etc.] ?

Si c'est ça tu fais Ci.append(ci*exp(-3))

Message édité le 14 octobre 2015 à 23:17:01 par Carapucelle
Pseudo supprimé
Pseudo supprimé 14 octobre 2015 à 23:16:31

Bon, explique en français courant ce que tu veux faire

Pseudo supprimé
Pseudo supprimé 14 octobre 2015 à 23:17:36

Oui pasque ça veut rien dire transformer une valeur en exponentielle -3 ( ou alors c'est une fonction constante)

mistoen
mistoen
Niveau 9
14 octobre 2015 à 23:20:18

Omg, c'était si évident... Oui c'était exactement ça.
J'ai pris l'habitude de détailler mes fonctions et je suis complètement passé à côté.
Merci !

Pseudo supprimé
Pseudo supprimé 14 octobre 2015 à 23:23:33

Euh, kouah ?

AlphaCygni
AlphaCygni
Niveau 10
14 octobre 2015 à 23:24:14

Je crois que c'était bien une fonction constante

Carapucelle
Carapucelle
Niveau 17
14 octobre 2015 à 23:27:51

Le mystère restera entier.

mistoen
mistoen
Niveau 9
14 octobre 2015 à 23:28:09

Je ne saurais pas vous dire, ça fait des années que je n'ai pas fais de maths/résolu d'équations. Je ne connais pas encore très bien le vocabulaire lié

Mais la réponse de Carapucelle étant la bonne (autant dans l'explication de mon "objectif" que dans la solution).

Message édité le 14 octobre 2015 à 23:31:49 par mistoen
Sous forums
  • Aide à l'achat Mac
  • Création de Jeux
  • Linux
  • Création de sites web
  • Programmation
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment