level 4
-----代码-----------------------------------
Unprotect[Sqrt];
Sqrt[x_] := x^(1/2) /; Im[x] >= 0;
Sqrt[x_] := -(x)^((1/2)) /; Im[x] < 0;
----------------------------------------------
这样定义之后, 如果输入确切的复数, 确实实现了要求. 比如Sqrt[-2 I]=-1+I

但是如果输入一个未知数y, 然后再用Replace来对y赋值, 结果却又回到了之前的结果...