2016-05-10 45 views
-2

密度、終端の速度と粘性を計算できるプログラムを作成しようとしています。 私はそれらを分けて、ユーザーが理解しやすいようにしました。他の関数内から関数を呼び出す方法

フローは次のとおりです。 これはかなり簡単ですが、density()関数が呼び出されたとき、denCouldを計算するためのものですか?コードは以下の通りで、エラーもそうです。

import sys 

DEF terminalvelandviscocalc(MS、DS、PA): インポート数学M masssteel = MS diametersteel = DS projectarea = PA termvelo = m.sqrt((2 * masssteel * 9.81)として/(粘性係数は、粘性係数(密度* projectarea * 0.5)) visco =((masssteel * 9.8) - ((4.0/3.0)*(diametersteel/2)** 3)* 9.8 *密度))/(6 * mpi */2)* termvelo) print '末端速度は%.2f'%termvelo print '粘度は%.2f'%visco return termvelo return visco エラー:

termvelo=m.sqrt((2*masssteel*9.81)/(density*projectarea*0.5)) 
TypeError: unsupported operand type(s) for *: 'function' and 'float' 
+2

あなたを_calling_ 'density'はありません... – Selcuk

答えて

2

density機能で、まだラインでは、変数として使用termvelo=m.sqrt((2*masssteel*9.81)/(density*projectarea*0.5))

あなたは()でそれを呼び出し、それが予期している3つの引数を提供する必要があります(私は彼らにarg1arg2arg3と呼ばれるあなたは、あなたのコードから正しい変数名を使用する必要があります。):

termvelo=m.sqrt((2*masssteel*9.81)/(density(arg1, arg2, arg3)*projectarea*0.5))

関連する問題