注册 登录
编程论坛 Python论坛

[Python求助帖]有大佬能帮我看看为什么这些代码不能正常输出结果吗?

一个小萌新 发布于 2020-05-03 11:47, 2711 次点击
代码本意是想用来解方程,但是输出却总是无解。
程序代码:
x = -100.000000
left = x+1
right = x*2
total = 0
while x<= 100.00:
    mid = left - right
   
    if left == right:
        print("x = " +x+"   "  +mid)
        total = total + 1
    x = x + 0.001
   

if total == 0:
    print("The equatioon doesn't have a solution.")
elif total == 1:
    print("The equatioon only have a solution.")
else:
    print("There are %d solutions in total.",total)


只有本站会员才能查看附件,请 登录
6 回复
#2
wp2319572020-05-03 13:28
浮点数不能用==来判断是否一致
#3
一个小萌新2020-05-03 16:48
回复 2楼 wp231957
可是即使改成这样还是不行
程序代码:
while x<= 100.00:
    mid = left - right
   
    if mid < 0.001 and mid > -0.001:
        print("x = " +x+"   "  +mid)
        total = total + 1
    x = x + 0.001
#4
hq002020-05-03 17:55
没改之前的程序,left和right在循环外赋值,所以不管循环多少次,left和right都不变,total肯定为0
修改后的程序,还是如此,mid不会变化的,total也不会变,所以无解。
#5
一个小萌新2020-05-03 21:22
回复 4楼 hq00
谢谢,可是为什么输出的数据这么诡异,如果我想让它好看一点该怎么办
程序代码:
x = -100.000000

total = 0
while x<= 100.00:
    left = x+1
    right = x*2
    mid = left - right
   
    if mid < 0.001 and mid > -0.001:
        print("x = " +str(x) +"   "  +str(mid))
        total = total + 1
    x = x + 0.001
   

if total == 0:
    print("The equatioon doesn't have a solution.")
elif total == 1:
    print("The equatioon only have a solution.")
else:
    print("There are " + str(total)+" solutions in total.")

只有本站会员才能查看附件,请 登录
#6
hq002020-05-03 22:04
保留6位小数:
print("x = " +str(x) +"   "  +str(mid))换成
print("x = %f"  %x + "    mid = %f" %mid)
#7
一个小萌新2020-05-04 08:25
回复 6楼 hq00
谢谢大佬
1