ValueError: отрицательное число не может быть увеличено до дробной мощности

Когда я попробовал это в терминале

>>> (-3.66/26.32)**0.2 

Я получил следующую ошибку

 Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: negative number cannot be raised to a fractional power 

Тем не менее, я могу сделать это в два этапа:

 >>> (-3.66/26.32) -0.13905775075987842 >>> -0.13905775075987842 ** 0.2 -0.6739676327771593 

Почему это поведение? Каков способ решить эту проблему в одной строке?

Приведение к власти имеет приоритет над унарным знаком минус.

Таким образом, у вас есть -(0.13905775075987842 ** 0.2) и не (-0.13905775075987842) ** 0.2 как вы ожидаете:

 >>> -0.13905775075987842 ** 0.2 -0.6739676327771593 >>> (-0.13905775075987842) ** 0.2 Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: negative number cannot be raised to a fractional power 

Если вы хотите, чтобы он работал, вы должны написать (-3.66/26.32 + 0j)**0.2

 >>> (-3.66/26.32 + 0j)**0.2 (0.5452512685753758+0.39614823506888347j) 

Или переключите Python 3, как указано @TimPietzcker.

Переключитесь на Python 3, который автоматически продвигает результат на комплексное число:

 >>> (-3.66/26.32)**0.2 (0.5452512685753758+0.39614823506888347j)