2017-03-02 2 views
-1

Ich mag ein Programm, um die ideale Gas grafisch darzustellen zwei, aber die Shell diesen Fehler starten:IDEAL GASSES TypeError: Kann die Sequenz nicht mit Nicht-Int des Typs 'float' multiplizieren 3.4.4?

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

Das ist mein Programm:

#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 

Was kann ich tun? Ich benutze Python 3.4.4 in Windows 10. Ich möchte eine Grafik von P1 erhalten, die von P abhängt (und P geht von 0 bis 800), für jede Temperatur in der Liste T für jede Molare Lautstärke von Neon und Kripton in die Liste Vn. Warum kann ich diese Elemente der Liste nicht mit P multiplizieren und dividieren? Vielen Dank.

+0

Sie sollten Ihren Code eingeben, wo es sagte "Code hier eingeben". – user2357112

+0

Entschuldigung, ich habe den Code bereits gepostet. – Moneqz

Antwort

0

Ein wenig Debugging hilft einen langen Weg. Ändern Sie Ihre Funktion

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

Und läuft es druckt

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

Sie versuchen, mehrere ein list mit zwei floats, was natürlich nicht funktioniert. P = list(range(0, 800)), so müssen Sie einige Indexierung verwenden. Ich bin nicht sicher, was Sie tun möchten, aber als Beispiel, die folgenden Funktionen läuft gut für mich:

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