为什么 python 不退出脚本?

Why python doesn't exit the script?

我有以下简单的 python 程序用二分法求方程的根:

from numpy import exp
#
def fun(x):
  return 5.0+4.0*x-exp(x)
#
a=3
b=10.0
eps=1.0e-15
#
fa=fun(a)
fb=fun(b)
#
if fa*fb>0:
  print("wrong interval!!!",fa,fb)
  exit()
#
iter=1
while (b-a)>eps:
  c=(a+b)/2.0
  fc=fun(c)
  if fc==0:
    print("x = ",c)
    exit()
  if fc*fa>0:
    a=c
    fa=fc
  else:
    b=c
    fb=fc
  iter+=1
#
print("x = ",c)
print("accuracy = ",'{:.2e}'.format(b-a))
print("f(",c,") =",fun(c))
print(iter," iterations needed")

如果我把 a 放在错误的间隔中(比如 a=3),它会说这是错误的间隔,但无论如何它都会继续给出(显然)错误的结果和四行

ERROR:root:Invalid alias: The name less can't be aliased because it is another magic command.

而且,内核死了(我正在使用 jupyter)。你能帮帮我吗?

这可能是因为您需要在 if 语句完成后添加一个 else 语句来说明如果它为假则执行此操作,否则执行其余代码。

你应该使用 sys.exit("optional custom message") 而不是 exit()

这引发了一个 SystemExit 异常,而 exit() 仅在解释器的上下文中才有意义。

import sys
# logic here
if "something bad":
    sys.exit("optional custom message")

区别这里有详细说明!