while循环中的print语句查询

2024-09-30 01:34:21 发布

您现在位置:Python中文网/ 问答频道 /正文

在下面的代码中,我认为我写的东西会导致它在每次迭代后打印yxu1和xu0的值,但是我什么也没有得到

为什么代码运行时不打印任何内容

G = 6.6741*10**-11
r_e = 6371000
r_m = 1737100
M_e = 5.9722*10**24
M_m = 7.3420*10**22
R = 3.8440*10**8
w =  2.6617*10**-6

def f(x):
     return (G*M_e)/x**2 - (G*M_m)/(R-x)**2 - w**2 * x

x_0=2*10**8
x_1=2.2*10**8

i=1

while i<=10 and abs(x_1-x_0)<abs(x_1)*1e-15:
    y=x_1-f(x_1)*(x_1-x_0)/(f(x_1)-f(x_0))
    x_0=x_1
    x_1=y
    i+1
    print (y,x_0,x_1)

Tags: and代码内容returndefabsprintwhile
1条回答
网友
1楼 · 发布于 2024-09-30 01:34:21

第二个条件abs(x_1-x_0)<abs(x_1)*1e-15是while循环第一次迭代之前的False。这就是为什么不执行print语句的原因

可能你想要第二个条件abs(x_1-x_0)>1e-15

此外,您的代码并不是一个最小的工作示例,因为没有定义常量(?)G、M\u e、M\u M、R和w

相关问题 更多 >

    热门问题