Python 错误:需要浮点参数,而不是dict

Python 错误:需要浮点参数,而不是dict,python,sympy,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.sy

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

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

正如已经在注释中指出的,您正在使用
%
格式化字符串,但您正在将字典作为参数传递
%float
需要一个float,但您给了它一个dict
Z

要解决此问题,您可以改用该方法,这样您的
file.write就变成了

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

您正在使用
%
进行字符串格式化,但在字符串中,您使用
%f
表示“我的变量将是一个浮点”,而实际上Z是一个dict。