Skip to main content
 首页 » 编程设计

python之为什么 sqrt(xt) 不能正常工作值错误 : math domain error

2025年05月04日9sky-heaven

所以我想编写一个程序来说明函数 2^n -15 = xt 中 n 的解是什么,其中 n 是一个正整数,xt 是一个平方数。但这不起作用:

from math import sqrt 
n = 0 
def is_square(x): 
    answer = sqrt(x) 
    return answer.is_integer() 
 
while True: 
    n += 1 
    xt = 2 ^ n - 15 
    if is_square(xt): 
        print(xt) 

错误是这样说的:

Traceback (most recent call last): 
  File "C:/Users/NemPl/Desktop/Python/Python programi/M/P #1.py", line 9, in <module> 
    if is_square(xt): 
  File "C:/Users/NemPl/Desktop/Python/Python programi/M/P #1.py", line 4, in is_square 
    answer = sqrt(x) 
ValueError: math domain error 

请您参考如下方法:

当您对 sqrt 的参数是负数时,可能会发生此错误。

math.sqrt 函数无法计算负数的平方。

您可以对负数使用 cmath 库:

import cmath 
print (cmath.sqrt(-2)) 
>>> 1.4142135623730951j