我写了这段代码
def partE():
e = 3 * 10 // 3 + 10 % 3
print("e).", e)
partE()
当我尝试运行它时,python会返回此错误消息。我不懂为什么。有人可以解释一下吗?非常感谢你!
Traceback (most recent call last):
File "C:/Users/Crisa/PycharmProjects/untitled/homeworkchap3.py", line 30, in <module>
partD()
File "C:/Users/Crisa/PycharmProjects/untitled/homeworkchap3.py", line 27, in partD
d = sqrt(4.5 - 5.0) + 7 * 3
ValueError: math domain error
答案 0 :(得分:3)
您的追踪表示您正在向math.sqrt()
函数传递负数:
>>> from math import sqrt
>>> sqrt(4.5 - 5.0)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: math domain error
>>> sqrt(-1.0)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: math domain error
不要那样做。根据定义,数字的平方始终为正数,因此要再次获得平方根,必须传递正数。
请注意,您发布的例外与您发布的代码无关。该代码工作得很好:
>>> def partE():
... e = 3 * 10 // 3 + 10 % 3
... print("e).", e)
...
>>> partE()
('e).', 11)