在Python上编码计算器

因此,我试图对一个使用5位数字进行运算的计算器进行编程,然后检查其间隔.这是代码:

def CR5(x):
  x=float('%s' % float('%.5g' % x))
  x="{:.4e}".format(x)
  return x

这似乎工作得很好,除了答案是字符串形式,但这在现阶段不是问题.但是,当我尝试检查时间间隔时,得到以下信息:

码:

def interval(x):
   x=float(CR5(x))
   a=x-1
   b=x+1
   while float(CR5(a))!= x:
       a=float(CR5((a+x)/2))
   while float(CR5(b))!= x:
       b=float(CR5((b+x)/2))
   return a, b

x == 4时的结果:

(4.0, 4.0)

而我尝试获取(3.9999,4.0001).

知道我做错了什么吗?谢谢!

解决方法:

您正在运行while循环,直到a和x相等为止,而实际上您正在寻找中间值等于x的情况.您应该这样编写循环:

while float(CR5((a+x)/2.0))!= x:

while float(CR5((b+x)/2.0))!= x:

x = 4的结果:

(3.9999, 4.0001)
上一篇:56. 合并区间


下一篇:56. 合并区间(java)