所以我想编写一个程序来说明函数 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
