num = float(input('输入一个数字:'))
num_sqrt = num ** 0.5
print('%0.3f 的平方根为 %0.3f' % (num, num_sqrt))
# 计算实数和复数平方根
# 导入复数教学模块
import cmath
num = int(input("请输入一个数字:"))
num_sqrt = cmath.sqrt(num)
print('{0} 的平方根为 {1:0.3f}+{2:0.3f}j'.format(num, num_sqrt.real, num_sqrt.imag))
另一个版本:先假设我们会用input读取一个输入,它是一个字符串格式的,然后数字常用的是 有小数点的浮点数float和整型int,再考虑可能输入带负号,那么求出的平方根是复数 complex, 所以可以分类讨论,下面的代码缺点是还没考虑到 long 型的。
可以依次输入 : -2.56 -9 1.44 16 来检验。
import cmath
# # 计算实数和复数平方根# # 导入复数数学模块 isinstance(num , (float,int) )
num = input('输入第一个数字:')
if num.__contains__('-') and num.__contains__('.'): # 负数、浮点数
num_sqrt = cmath.sqrt(float(num))
print('{0} 的平方根为 {1:0.3f}+{2:0.3f}j'.format(float(num), num_sqrt.real, num_sqrt.imag))
elif num.__contains__('-'): # # 负数、整数
num_sqrt = cmath.sqrt(int(num))
print('{0} 的平方根为 {1:0.3f}+{2:0.3f}j'.format(int(num), num_sqrt.real, num_sqrt.imag))
else:
if num.__contains__('.'): # 非负数、浮点数 整数
num_sqrt = float(num) ** 0.5
print(' %0.3f 的平方根为 %0.3f' % (float(num), num_sqrt))
else: # # 非负数、整数
num_sqrt = int(num) ** 0.5
print(' %0.3f 的平方根为 %0.3f' % (int(num), num_sqrt))
增加异常报错
import cmath
try:
num=float(input("请输入一个数字"))
except:
print("输入的数字格式不正确,退出")
else:
if num>=0:
num_sqrt=num**0.5
print(f"{num}的平方根是{num_sqrt:.3f}")
else:
num_sqrt=cmath.sqrt(num)
print(f"{num}的平方根是{num_sqrt.real:.3f}+{num_sqrt.imag:.3f}j")