我写了一个小函数来检查两个值中哪一个最接近于零。我遇到的问题是最后的print语句:我希望它打印文本,然后是它确定的最接近的值。
def closestcheck(ylow, yhigh, ylist, xlist):
ynew = (ylow + yhigh) / 2
#The following 2 prints are purely to check the calculations are correct
print(ynew)
print(ylow,yhigh)
if ynew > 0:
print('The closest value of theta is' % ylow)
else:
print('The closest value of theta is' % yhigh)
closestcheck(y0[-1],y0[-2],y0,x0)
它会打印文本而不是数字
6.13910823576e-07
-3.46867223283e-06 4.69649387998e-06
theta的最接近值是
这个特定的语法在其他情况下有效但不在这里,我不确定为什么。解释为什么这不起作用以及如何解决它将非常感谢,谢谢!
答案 0 :(得分:3)
您尝试使用字符串模板,但您没有指定模板中填充变量的位置。
if ynew>0:
print('The closest value of theta is %f' % ylow)
else:
print('The closest value of theta is %f' % yhigh)
虽然你正在做这件事,但现在用%
字符串模仿奶奶的亚麻橱柜。建议改用:
y_closest = ylow if ynew > 0 else yhigh
print('The closest value of theta is {y}'.format(y=y_closest))