错误:需要float参数,而不是dict

时间:2014-09-18 09:27:05

标签: python sympy

我正在尝试将输出写入文件。

import time
start_time = time.clock()
import os
completeName = os.path.abspath("New Volume (F:)/New Innings/eigenvalues .txt")
file = open("eigenvalues.txt", "w")
import sympy as sp
from sympy.matrices import *
k1,k2,k3,k4,k5,x,z = sp.symbols('k1,k2,k3,k4,k5,x,z')
I=Matrix([[-k5*(k1+k3),k2,k3*x+k4],[k2,-k2,0],[-k3*z,0,-k3*x-k4]])
Z=I.eigenvals()
print Z
file.write("%float\n" % Z)
file.close()
print time.clock() - start_time, "seconds"

但我收到与

对应的错误
file.write("%float\n" % Z)

TypeError: float argument required, not dict

1 个答案:

答案 0 :(得分:1)

正如评论中已经指出的那样,您使用%格式化字符串,但是您将字典作为参数传递。 %float期待浮动,但你已经给它一个字典Z

要解决此问题,您可以改用.format方法,以便file.write成为

file.write("{}\n".format(Z))