我正在尝试将输出写入文件。
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
答案 0 :(得分:1)
正如评论中已经指出的那样,您使用%
格式化字符串,但是您将字典作为参数传递。 %float
期待浮动,但你已经给它一个字典Z
。
要解决此问题,您可以改用.format
方法,以便file.write
成为
file.write("{}\n".format(Z))