传递给NoneType.__format_的不支持格式字符串



我有一个计算特定公式测量值的程序。结果应该显示在控制台上,并显示一排解决方案。不幸的是,当我运行这个程序时,出现了错误。我试过使用zip(),但它没有帮助。

下面是Traceback错误:

File "W:/Labaratorni/micro/main.py", line 34, in main
print(f'T[C] = {temperature - 273.15:.2f} t R = {resistance:.3f}')
TypeError: unsupported format string passed to NoneType.__format__
下面是我的代码:
import numpy as np
K = 273.15
T = [1.4, 25, 72]
R = [3440, 1175, 453]

def make_solve(temperature_kalvin: float, temperatures: list, resistances: list):
matrix_a = []
for element in R:
matrix_a.append([1, np.log(element), pow(np.log(element), 3)])
matrix_b = np.array([1 / (t + K) for t in T])
solve = np.linalg.solve(np.array(matrix_a), matrix_b)
return solve

def resistance_from_temperature(temperature: float, parameter_a: float, parameter_b: float, 
parameter_c: float):
x = 1 / parameter_c * (parameter_a - 1 / temperature)
y = pow((pow((parameter_b / (3 * parameter_c)), 3) + pow(x / 2, 2)), .5)
result = np.exp((y - x / 2) ** (1 / 3) - (y + x / 2) ** (1 / 3)) / 7.3

def get_list_of_second_parameters():
solves = make_solve(K, T, R)
temperatures = np.linspace(0 + K, 100 + K, 101)
resistances = [resistance_from_temperature(temperature, solves[0], solves[1], solves[2]) for temperature in temperatures]
return temperatures, resistances

def main():
temperatures, resistances = get_list_of_second_parameters()
for temperature, resistance in zip(temperatures, resistances):
print(f'T[C] = {temperature - 273.15:.2f} t R = {resistance:.3f}')
input()
main()

在这种情况下,阻力是返回Nan,但问题在这一行

y =战俘((战俘((parameter_b/(3 * parameter_c)), 3) +战俘(x/2, 2)), 5)

没有计算y的值

电阻e_from_temperature的另一个问题是不返回result的值。

正如在注释中提到的,这个错误最常发生在试图打印的变量是None时。. Python不将其视为字符串,因此您需要使用str(var)函数进行转换(并确保变量实际上是字符串)。

最新更新