正数使用num**0.5
,负数使用cmath.sqrt(num)
# coding: utf-8
# filename : test.py
# author by : liukai
# time : 2019年8月21日13:41:37
'''
函数功能:判断一个数是否为非负数,然后返回平方根
1. 正数直接输出
2. 负数输出复数
'''
def sqrt():
num = float(input('please input one num:'))
if num >=0:
num_sqrt = num**0.5
print('{0}的平方根为{1:0.3f}'.format(num,num_sqrt))
else:
import cmath
num_sqrt = cmath.sqrt(num)
print('{0}的平方根为{1:0.3f}+{2:0.3f}j'.format(num,num_sqrt.real,num_sqrt.imag))
sqrt()
sqrt()
效果:
please input one num:-9
-9.0的平方根为0.000+3.000j
如果是复数,使用cmath.sqrt(complex(num_real,num_imag))
import cmath
def sqrt():
num_real = float(input('请输入实部:'))
num_imag = float(input('请输入虚部:'))
num_sqrt = cmath.sqrt(complex(num_real,num_imag))
print('{0}+{1}j的平方根为{2:0.3f}+{3:0.3f}j'.format(num_real,num_imag, \
num_sqrt.real,num_sqrt.imag))
sqrt()
sqrt()
效果
请输入实部:9
请输入虚部:-9
9.0+-9.0j的平方根为3.296+-1.365j