2017-03-02 2 views
-1

나는 프로그램이 이상적인 가스를 그래프로 만들고 싶어하지만, 쉘이 오류를 시작 :IDEAL GASSES TypeError : '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' 

이 내 프로그램입니다 :

#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 

나는 무엇을 할 수 있습니까? 나는 창 10에서 파이썬 3.4.4를 사용하고있다. P (그리고 P는 0에서 800까지)에 의존하는 P1 그래프를 얻고 싶다. 네온 및 Kripton의 각 몰량에 대한 목록 T의 각 온도 목록 Vn. 왜 나는 목록의 요소를 P로 곱하고 나눌 수 없습니까? 정말 고마워요.

+0

"enter code here"라는 코드를 입력해야합니다. – user2357112

+0

죄송합니다, 이미 코드를 게시했습니다. – Moneqz

답변

0

약간의 디버깅이 먼 길을 돕습니다.

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

에 기능을 변경하고 그것을 실행하는 당신은 분명히 작동하지 않는 두 floats, 여러 list에 노력하고

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

를 인쇄합니다. P = list(range(0, 800))이므로 색인을 사용해야합니다. 당신이 무엇을하고 싶은지 잘 모르겠지만, 예를 들어, 다음 함수들은 저에게 잘 돌아갑니다.

관련 문제