如何使用变量

时间:2016-12-01 01:07:55

标签: python printing

我写了一个小函数来检查两个值中哪一个最接近于零。我遇到的问题是最后的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的最接近值是

这个特定的语法在其他情况下有效但不在这里,我不确定为什么。解释为什么这不起作用以及如何解决它将非常感谢,谢谢!

1 个答案:

答案 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))