TypeError:%支持的操作数类型:' NoneType'并且'漂浮'

时间:2017-01-22 08:24:56

标签: python python-3.x

if 1:
T1=300
P1=1
h1=462
s1=4.42
hf=29
sf=0.42
print("The inlet conditions to compressor are 1atm pressure & 300K")
Wi=(T1*(s1-sf))-(h1-hf)
P2= input("What is the final compression pressure? ")
T2= input("What is the final compression temperature? ")
h2= float(input("From graph, enthalpy at point 2 is "))
s2= float(input("From graph, entropy at point 2 is "))
y= float((h1-h2)/(h1-hf))
W= float((T1*(s1-s2))-(h1-h2))
Wf= float(W/y)
FOM= float(Wi/Wf)
print("")
print("Yield= %f") %(y)
print("Work reqd per unit mass of gas compressed= %f KJ/kg") %(W)
print("Work reqd per unit mass of gas liquified= %f KJ/kg") %(Wf)
print("Figure of Merit= %f") %(FOM)

压缩机的入口条件是1atm压力& 300K 什么是最终压缩压力? 20 什么是最终压缩温度? 300 从图中可以看出,点2处的焓为432 从图中,点2处的熵是2.74

收益率=%f Traceback(最近一次调用最后一次):   文件"",第19行,in     打印("收益率=%f")%(y) TypeError:%支持的操作数类型:' NoneType'并且'浮动'

2 个答案:

答案 0 :(得分:1)

您应该在字符串上应用%格式,但目前您正在None上应用它(print函数返回的值)。为了使你的代码有效,你应该这样做:

print("Yield= %f" % (y)) 
#                 ^ moved inside `(...)` of print

而不是:

print("Yield= %f") %(y)

答案 1 :(得分:1)

您的问题出现在代码的最后4行。这些语句中的每个表达式都需要括号()。您无法在%函数上应用print,因为它会返回None

您的最后4行代码应该是

print(("Yield= %f") % (y))
print(("Work reqd per unit mass of gas compressed= %f KJ/kg") %(W))
print(("Work reqd per unit mass of gas liquified= %f KJ/kg") %(Wf))
print(("Figure of Merit= %f") %(FOM))