2017-03-02 4 views
-1

Je veux faire un programme pour représenter graphiquement deux gaz idéal, mais la coquille lancer cette erreur:GAINS IDÉAUX TypeError: impossible de multiplier la séquence par un non-int de type 'float' 3.4.4?

line 10, in P1 
    return (P*(Vn[c]))/(T[c2]) 
TypeError: can't multiply sequence by non-int of type 'float' 

Voici mon programme:

#Prueba de gráfica de gas ideal con volumen molar 
import numpy as np 
from matplotlib import pyplot as plt  
#Sea Vn=miu/densidad... VnNeón=16.82 ml/mol, VnCriptón=32.23 ml/mol 
Vn=[16.82,32.23] 
T=[0.01,60,137,258] 
c=0 #contador del material 
c2=0 #contador temperatura 
def P1(P): #Función de P: 
    return (P*(Vn[c]))/(T[c2]) 
P= list(range(0,800)) 
while c<=1: 
    while c2<=3: 
     print(P1(P),Vn[c],T[c2]) 
     c2=c2+1  
    c=c+1 

Que pouvais-je faire? J'utilise Python 3.4.4 dans Windows 10. Je veux obtenir un graphique de P1 qui dépend de P (et P va de 0 à 800), pour chaque température dans la liste T pour chaque Volume Molaire de Neon et Kripton dans la liste Vn. Pourquoi je ne peux pas multiplier et diviser ces éléments de la liste par P? Merci beaucoup.

+0

Vous étiez censé entrer votre code où il dit « entrez le code ici ». – user2357112

+0

Désolé, j'ai déjà posté le code. – Moneqz

Répondre

0

Un petit débogage aide un long chemin. Changer votre fonction

def P1(P): #Función de P: 
    print(type(P), type(Vn[c]), type(T[c2])) 
    return (P*(Vn[c]))/(T[c2]) 

Et en cours d'exécution, il imprime

<class> 'list' <class 'float'> <class 'float'>

Vous essayez de multiples un list avec deux floats, qui ne fonctionne évidemment pas. P = list(range(0, 800)), vous devrez donc utiliser une indexation. Je ne sais pas ce que vous voulez faire, mais, à titre d'exemple, les fonctions suivantes fonctionne bien pour moi:

def P1(P): #Función de P: 
    #   | just added an index here 
    return (P[0]*(Vn[c]))/(T[c2])