这是Python中的某种错误吗

问题描述 投票:0回答:1

我是Python新手,也许这不是什么大问题,它一直让我感到困惑。 如果我的 if 语句是 y > 0.9999,为什么输出中有 1.0

from math import sin, pi

X = []
Y = []
x = 0
y = 0

while True:
    x += 1
    X.append(x)
    y = sin(x * pi / 180)
    Y.append(y)
    if y > 0.9999:
        print(f"breaking on y = {y}")
        break

    print(f"sin {x} degree = {y}")

print(f"List X = {X}")
print(f"List Y = {Y}")





output:
sin 1 degree = 0.01745240643728351
sin 2 degree = 0.03489949670250097
...
sin 89 degree = 0.9993908270190958
sin 90 degree = 0.9998476951563913
breaking on y = 1.0
List X = [0, 1, 2,... 89, 90]
List Y = [0.01745240643728351, 0.03489949670250097,... 0.9998476951563913, 1.0]

ChatGPT 并不真正知道为什么我会得到这个输出,所以也许你们中的一些人知道。 如果我输入 >= 它没有帮助

python compiler-errors output
1个回答
0
投票

因为您在 after 检查您的状况后打破了,请改为移动

Y.append(y)
after 测试/中断:

while True:
    x += 1
    X.append(x)
    y = sin(x * pi / 180)
    if y > 0.9999:
        print(f"breaking on y = {y}")
        break
    Y.append(y)
    print(f"sin {x} degree = {y}")
© www.soinside.com 2019 - 2024. All rights reserved.